如何安装和配置simple-obfs服务端

技术 185685 次围观 141 次吐槽

Howto

本文的主要内容是,在已经安装完 Shadowsocks-libev 服务端的情况下,如何手动安装和配置 simple-obfs,以及在此过程中的排错。

首先,使用本站提供的一键脚本安装 Shadowsocks-libev 服务端

2017 年 10 月 14 日更新
Shadowsocks 一键安装脚本(四合一)已经支持在安装 Shadowsocks-libev 时可选安装 simple-obfs 服务端。
※ 注意:脚本仅支持在 autoconf 版本大于或等于 2.67 的系统里安装。
Shadowsocks 一键安装脚本(四合一)

CentOS下shadowsocks-libev一键安装脚本
Debian 下 Shadowsocks-libev 一键安装脚本

其次,手动安装和配置 simple-obfs 服务端

下文以 CentOS 7 的操作为范例。
在用一键脚本安装完 Shadowsocks-libev 服务端的前提下,安装 simple-obfs 服务端所需的依赖包都已安装完毕。
有可能还需要安装一下 git 命令。

# Debian / Ubuntu
apt-get install -y git
# CentOS / Fedora / RHEL
yum install -y git

下载和安装 simple-obfs

cd /opt
git clone https://github.com/shadowsocks/simple-obfs.git
cd simple-obfs
git submodule update --init --recursive
./autogen.sh
./configure --disable-documentation
make && make install

需要特别注意的是,autogen.sh 脚本的配置限制了 autoconf 的版本不能低于 2.67。
如何查看默认 autoconf 的版本号?

autoconf --version

CentOS 7 的 autoconf 版本为 2.69,符合条件。

以下为在 CentOS 6 的操作步骤。
CentOS 6 的 autoconf 版本为 2.63,因此需要用到 EPEL 的 autoconf268 依赖包。

yum install -y autoconf268

然后修改 autogen.sh 内容,将

autoreconf --install --force

修改为

autoreconf268 --install --force

还有一点,在 CentOS 6 下编译出现 error: ev.h: No such file or directory 错误时,原因如下:
CentOS 6 下 ev.h 位于 /usr/include/libev/ev.h,因此需要修改以下代码里关于 ev.h 路径定义的地方。

src/local.h
src/server.h

找到 #include <ev.h> 这一行,修改为 #include <libev/ev.h> 即可通过编译。

一般情况下安装完成后,二进制文件的路径位于

/usr/local/bin/obfs-local
/usr/local/bin/obfs-server

重新配置文件

重新配置 Shadowsocks-libev 的配置文件 /etc/shadowsocks-libev/config.json
添加如下

"plugin":"obfs-server",
"plugin_opts":"obfs=http"

特别注意:请认真参考以下范例,method 那行最后不要缺少逗号,不然启动会报错。
范例如下:

{
    "server":"0.0.0.0",
    "server_port":your_server_port,
    "password":"your_password",
    "timeout":300,
    "method":"your_encryption_method",
    "plugin":"obfs-server",
    "plugin_opts":"obfs=http"
}

然后重新启动 Shadowsocks-libev 即可。

确认 ss-server 和 obfs-server 进程已经正常启动。
命令如下:

ps -ef | grep -v grep | grep "server"

输出结果参考:

/usr/local/bin/ss-server -u -c /etc/shadowsocks-libev/config.json -f /var/run/shadowsocks-libev.pid
/usr/local/bin/obfs-server --obfs http

Windows 客户端的使用方法:
1、下载最新 Windows 客户端
Windows 客户端下载网址:
https://github.com/shadowsocks/shadowsocks-windows/releases

2、下载 obfs-local.zip
下载网址:
https://github.com/shadowsocks/simple-obfs/releases
下载后,解压出来的文件一定要和 Windows 客户端的 exe 文件放在同一文件夹下

3、客户端配置,如下图

插件:obfs-local
插件选项:obfs=tls
插件参数:obfs-host=www.bing.com
插件选项和插件参数根据你服务端上的配置选择用 http 或者 tls,obfs-host 随便你用什么网址都行。

转载请注明:秋水逸冰 » 如何安装和配置simple-obfs服务端

发表评论
取消评论
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
表情

已有评论 (141)

  1. 这个obfs-server前后版本是不是不兼容啊?还是Shadowsocks前后版本不兼容啊?就在刚刚,我部署了很多很多服务器(有搬瓦工、hostdare、woothosting、alpharacks),win客户端用的是4.0.7版本的,参数配置格式如下:
    argiops1年前 (2018-03-09)回复
  2. autogen.sh 在哪里修改 找不到位置???
    jaiwie1年前 (2018-01-31)回复
  3. 大佬,我都安装完了,然后显示这个,SS手机端无法使用,插件已经开,求解 [[email protected] ~]# ps -ef | grep -v grep | grep "server" root 1055 1 0 05:33 ? 00:00:00 /usr/local/bin/ss-server -uv -c /etc/shadowsocks-libev/config.json -f /var/run/shadowsocks-libev.pid root 1056 1055 0 05:33 ? 00:00:00 /usr/local/bin/obfs-server --obf s http root 1315 1 0 05:33 ? 00:00:00 python /usr/local/shadowsocks/se rver.py -c /etc/shadowsocks-r/config.json -d start
    秋水是大佬1年前 (2018-01-26)回复
  4. 貌似libev版是不默认用tcp fast open的。建议开启吗?
    Cielovia1年前 (2018-01-23)回复
  5. 秋大,这样是成功了吗? [email protected]:~# ps -ef | grep -v grep | grep "server" root 21826 1 1 Jan18 ? 00:00:09 /usr/local/bin/ss-server -uv -c /etc/shadowsocks-libev/config.json -f /var/run/shadowsocks-libev.pid root 21827 21826 0 Jan18 ? 00:00:00 /usr/local/bin/obfs-server --obfs http
    wpaygp1年前 (2018-01-19)回复
    • 对的,这就表示已经成功安装并启动进程了。
      秋水逸冰1年前 (2018-01-19)回复
  6. dalao,请问如下obfs error是什么情况?SS端口用的是80 INFO: using tcp fast open INFO: plugin "obfs-server" enabled INFO: initializing ciphers... xchacha20-ietf-poly1305 INFO: tcp server listening at 127.0.0.1:40645 [simple-obfs] INFO: obfuscating enabled [simple-obfs] INFO: tcp port reuse enabled [simple-obfs] ERROR: bind: Permission denied [simple-obfs] ERROR: Could not bind [simple-obfs] ERROR: bind() error ERROR: plugin service exit unexpectedly
    nero1年前 (2017-12-27)回复
    • [simple-obfs] ERROR: bind: Permission denied 这个应该是权限的问题
      林和Lurking1年前 (2018-01-12)回复
  7. 从v0.0.5版开始官方已提供windows预编译程序,这个repo imgk/simple-obfs-Cygwin已经不再跟进了
    catdot1年前 (2017-12-25)回复
  8. 我的ss是用的libev版的,使用的是比较新的加密算法,在不开启obfs的时候是完全正常的。在开启了obfs之后,测试发现延迟有些下降(约25%),但是一二十分钟之后代理就无法正常地翻过墙了,一切连接都被切断了,是不是现在obfs的特征已经可以被识别了啊?请前辈指点一下。
    林和Lurking1年前 (2017-12-12)回复
    • 这个问题我已经自己解决了,关键在于: 要选择80或者443二者之一,因为这是网页连接的默认端口,而使用别的端口流量的异常特征太过明显,就会被切断。 自己实测结果显示,选择http的时候使用80端口效果明显好于443端口。
      林和Lurking1年前 (2018-01-12)回复
  9. 由于***原因,被迫购入vps已经3天,各种摆弄,Reinstall了N次系统,在这里学习了不少乱七八糟的知识,感觉自己更无知了,没遇到什么难题,感谢博主的分享。
    懒贼半中1年前 (2017-11-29)回复
  10. 请问obfs服务器端怎么更新为最新的版本呢?重新执行一下所有的步骤可以吗?
    haha1年前 (2017-11-26)回复
  11. 不错哦!
    小萌希奥1年前 (2017-11-14)回复
  12. 请问在ubuntu上拿shadowsocks-libev做客户端应该怎么配置混淆呢,是不是还要额外下载什么东西做混淆客户端
    lg0v01年前 (2017-11-12)回复
  13. 原因是libcurl冲突了,已自行解决了,谢谢~
    一曲长歌辞烟雨1年前 (2017-11-12)回复
  14. 这个obfs-local.exe是64位程序?我电脑装的还是32位的系统,有没有什么办法能用上这个。
    haseoxth1年前 (2017-11-06)回复
  15. "plugin": "obfs-server", "plugin_opts": "obfs=http" 一直是这样写,原来在libev的github上翻到的,应该没什么区别吧,好久没跟进了。
    Me21年前 (2017-11-03)回复