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

技术 185683 次围观 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. 插件选项如果要把 http 改为 tls,是不是只需要将"plugin":"/usr/local/bin/obfs-server --obfs http" 中的 http改为tls,还有请问他们之间有什么区别,推荐用哪种,多谢!
    wanting2年前 (2017-10-12)回复
  2. 什么都不说,只想感谢大佬。用了一年的脚本了。
    lingongbing2年前 (2017-10-12)回复
  3. 蓝灯不能用了.租了一个阿里云的东京服务器.版本centos 7.2 .服务器这边都是正常的. 用ss客户端就是用不了
    汪洋大海2年前 (2017-10-12)回复
  4. 最后安装时提示: [[email protected]_v1 simple-obfs]# make && make install make: *** No targets specified and no makefile found. Stop.
    飞鱼2年前 (2017-10-12)回复
    • 这是之前的某个步骤出的问题。请仔细看错误提示信息,尝试着去搜索一下。
      秋水逸冰2年前 (2017-10-12)回复
  5. android咋办啊?
    话说android手机怎么办?2年前 (2017-10-12)回复
    • Android有插件啊,就在Github上搜索simple-obfs-android,然后去release那里下载个apk文件回来安装一下,就能在影梭里的插件那里调用了。
      秋水逸冰2年前 (2017-10-12)回复
      • 感谢大大,搞定了。
        话说android手机怎么办?2年前 (2017-10-12)回复
  6. 请问,这个支持 Shadowsocks Python版 吗?
    scse2年前 (2017-10-12)回复
  7. (GCP centOS7.0 ) 按照步骤安装完成了,输出只有这个(/usr/local/bin/ss-server -u -c /etc/shadowsocks-libev/config.json -f /var/run/shadowsocks-libev.pid) 请问哪里出了问题! 服务器目前不能用了。。。
    一直用你的脚本2年前 (2017-10-11)回复
    • 首先你要确认一下是否编译安装成功,也就是那两个执行文件是否存在,其次再考虑别的原因。
      秋水逸冰2年前 (2017-10-11)回复
      • 存在的! 我用surge配置obfs后可以正常起飞! 感谢秋水兄的脚本! 给我们这些外行人非常非常多的便利!
        一直用你的脚本2年前 (2017-10-11)回复
  8. debian-7.0-x86-minimal下,貌似还需要加上 ln -s /usr/local/bin/obfs-server /usr/bin
    tesla2年前 (2017-10-10)回复
  9. 请问Windows客户端好像是需要插件的,如何安装相关插件?
    Bugoo2年前 (2017-10-10)回复
  10. 请问客户端怎么配置?
    ddddd2年前 (2017-10-10)回复
  11. 大佬,我的 /usr/local/bin/obfs-server /usr/local/bin/obfs-local 存在了,重启ss也成功了 输入ps -ef | grep -v grep | grep "server" 无任何输出信息正常吗
    黄鱼鱼2年前 (2017-10-09)回复
    • 不正常。
      秋水逸冰2年前 (2017-10-10)回复
    • 你要先重启ss,如果ps -ef | grep -v grep | grep "server"没有任何信息,说明你ss就没起来
      xeeleer2年前 (2017-10-10)回复
  12. windows是不是还没有obfs客户端?希望更新下客户端的使用。
    MMi2年前 (2017-10-09)回复
    • Windows 客户端参考网址:https://github.com/shadowsocks/shadowsocks-windows/releases
      秋水逸冰2年前 (2017-10-09)回复
  13. CentOS 6走完教程,重启SS提示: Starting Shadowsocks-libev: 2017-10-09 11:32:45 ERROR: 9:0: Expected , before " [失败]
    YY2年前 (2017-10-09)回复
    • 编译安装没问题的话,那就可能是配置文件写错了,仔细检查一下,比如多了或者少了逗号,中文逗号之类的。 另外,以下这两个文件存在,才能算是编译安装正确完成。 /usr/local/bin/obfs-server /usr/local/bin/obfs-local
      秋水逸冰2年前 (2017-10-09)回复
      • 那两个文件存在。直接复制"plugin":"/usr/local/bin/obfs-server --obfs http"到配置文件最后就无法启动,去掉这行SS又能启动了。
        YY2年前 (2017-10-09)回复
        • 记得原来倒数第二行(加密一栏)加个逗号 "method":"your_encryption_method", "plugin":"/usr/local/bin/obfs-server --obfs http"
          MyWang2年前 (2017-10-10)回复
          • 感谢大神!成功启动!原来是这么个小失误!
            YY2年前 (2017-10-10)回复
  14. 能把它整合到Shadowsocks-libev里面去吗?安装的时候就一起安装了,另外客户端支持吗?
    An2年前 (2017-10-09)回复
    • 就是因为不能整合进一键脚本,所以才单独成文的。 因为这个对环境的依赖,尤其是 autoconf 版本不能低于2.67比较头疼。以及在CentOS 6下安装还会有ev.h路径判断问题。
      秋水逸冰2年前 (2017-10-09)回复
  15. 我不管我就是要评论
    a2年前 (2017-10-09)回复