设为首页收藏本站

BC Morning Updates

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 30|回复: 0

OpenWrt 路由器编译使用 Simple-obfs for shadowsocks-libev 混淆插件

[复制链接]
发表于 2019-9-24 05:20:50 | 显示全部楼层 |阅读模式
本帖最后由 瀚文 于 2019-9-24 05:27 编辑

这里可以下载编译好的 Simple-obfs for OpenWrt shadowsocks-libev:
https://software-download.name/2014/shadowsocks-libev-polarssl-ar71xx-ipk-latest/

编译、使用环境:
  • 操作系统: Ubuntu 64 bit
  • OpenWrt版本: 18.06.1
  • 路由器: NetGear WNDR4300

怎样下载OpenWrt DK

您可以下载已编译的SDK,也可以使用“make menuconfig”命令自行编译
如果编译 ipk 所使用的 OpenWrt 版本和路由器的 OpenWrt 版本不同,那么可能会有兼容性问题。为了确保兼容, 我们在同一个页面下载 imagebuilder 和 SDK
今天是2018年9月24日,适合于WNDR4300路由器 的 SDK 下载地址为:http://downloads.openwrt.org/releases/18.06.1/targets/ar71xx/nand/

先决条件:
请参阅OpenWrt Buildroot页面以安装所需的软件以在SDK上构建软件包
注意:在某些主机上,需要安装ccache包

Ubuntu 下编译 simple-obfs ipk 详细过程
  • 安装 ccache
    1. sudo apt-get install ccache
    复制代码

  • 下载 OpenWrt-SDK
    1. cd ~/Downloads
    2. wget http://downloads.openwrt.org/releases/18.06.1/targets/ar71xx/nand/openwrt-sdk-18.06.1-ar71xx-nand_gcc-7.3.0_musl.Linux-x86_64.tar.xz

    3. tar -xf openwrt-sdk-18.06.1-ar71xx-nand_gcc-7.3.0_musl.Linux-x86_64.tar.xz
    4. mv openwrt-sdk-18.06.1-ar71xx-nand_gcc-7.3.0_musl.Linux-x86_64 openwrt-sdk
    5. cd openwrt-sdk-nand
    复制代码

  • 添加 feeds
    1. git clone https://github.com/shadowsocks/openwrt-feeds.git package/feeds
    复制代码

  • 获取 simple-obfs Makefile
    1. git clone https://github.com/aa65535/openwrt-simple-obfs.git package/simple-obfs
    复制代码

  • 最大化控制台,否则可能有错误
    include/toplevel.mk:136: recipe for target 'menuconfig' failed

  • 选择要编译的包 Network -> shadowsocks-libev
    1. make menuconfig
    复制代码


    选择 Network ---> 回车进入, 选择 simple-obfs
  • 开始编译
    1. make package/simple-obfs/compile V=99
    复制代码

把 openwrt-sdk-nand/packages/mips_24kc/base 下的 simple-obfs_0.0.5-3_mips_24kc.ipk 复制到 imagebuilder/packages 目录下就可以编译进翻墙固件

OpenWrt 路由器安装 simple-obfs
  1. scp simple-obfs.ipk root@192.168.1:/tmp/
  2. ssh root@192.168.1.1
  3. cd /tmp/
  4. opkg install simple-obfs
复制代码


查看一下 simple-obf客户端 obfs-local 参数:

  1. obfs-local -h

  2. simple-obfs 0.0.5
  3. maintained by Max Lv

  4. usage:

  5. obfs-local

  6. -s <server_host>           Host name or IP address of your remote server.
  7. -p <server_port>           Port number of your remote server.
  8. -l <local_port>            Port number of your local server.
  9. --obfs <http|tls>          Enable obfuscating: HTTP or TLS (Experimental)

  10. --obfs-host <host_name>    Hostname for obfuscating (Experimental).
  11. --obfs-uri <uri_path>      HTTP path uri for obfuscating (Experimental).

  12. [-a <user>]                Run as another user.
  13. [-f <pid_file>]            The file path to store pid.
  14. [-t <timeout>]             Socket timeout in seconds.
  15. [-c <config_file>]         The path to config file.
  16. [-n <number>]              Max number of open files.
  17. [-b <local_address>]       Local address to bind.


  18. [--fast-open]              Enable TCP fast open.
  19.                         with Linux kernel > 3.7.0.
  20. [--mptcp]                  Enable Multipath TCP on MPTCP Kernel.

  21. [-v]                       Verbose mode.
  22. [-h, --help]               Print this message.
复制代码


OpenWrt路由器配置 simple-obfs obfs-local ss-redir
  1. # 登录 OpenWrt 路由器
  2. root@192.168.1.1

  3. cd /etc/
  4. cp shadowsocks.json shadowsocks.nobfs.json
  5. vi shadowsocks.json
  6. # 改成类似如下的值:

  7. {
  8.     "server": "32.kige.com",
  9.     "server_port": 80,
  10.     "password": "killgfw",
  11.     "local_port": 7654,
  12.     "method": "chacha20-ietf-poly1305",
  13.     "timeout": 600,
  14.     "fast_open": true,
  15.     "plugin": "obfs-local",
  16.     "plugin_opts": "obfs=http;obfs-host=32.kige.com;fast-open"
  17. }
复制代码






深刻simple-obfs 客户端 obfs-local 参数用法
  • "server": "32.kige.com"
      服务端地址,这里写了域名,也可以写 IP 地址
  • "server_port": 80
      还记得吗,没有使用混淆数据插件 simpe-obfs 时,我们默认的 server_port 是 1098,那时的1098端口是可以自定义的,现在的 80 端口是固定的
      因为 obfs-local 要把数据发送到服务端 nginx http 服务监听的 80 端口,如果你写成 87 端口,nginx 是接收不到数据的,那么客户端和服务就无法交换数据,何谈翻墙
      明显,这里  obfs-local 在和服务端交换数据时在站前面,shadowsocks-libev 客户端 ss-redir 隐在后面
  • "local_port": 7654
    这是 ss-redir 在本地监听的端口,可以自定义,只要和 /usr/bin/ss-firewall-asia  转发数据的端口一致就可以了
    iptables 把需要加密和混淆的数据发到路由器 7654 端口,ss-redir 收到后和再和 obfs-local 一起加密和混淆数据,再由 obfs-local 发送到 32.kige.com:80
  • "method": "chacha20-ietf-poly1305"
      升级版数据加密算法,被检测出数据特征的概率较小
      如果用 xchacha20-ietf-poly1305 则更为安全,是目前最安全的加密算法,不过可能比 chacha20-ietf-poly1305 消耗更多的计算资源
  • "fast_open": true
    操作系统开启 TCP fast_open 后才能在 config.json | shadowsocks.json 中设置
      "fast_open": true
TFO开启成功以后,数据交换的速度会更快一点
相关资源:

Source: fanqiang.software



来自群组: 有关互联网及电子商务
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|BC Morning Website ( Best Deal Inc. 001 )  

GMT-8, 2019-10-13 15:40 , Processed in 0.081252 second(s), 23 queries .

Supported by Bestdeal Online

© 2008-2019 BestDeal Online Inc.

快速回复 返回顶部 返回列表