使用 obfsproxy 配合 OpenVPN 进行反网络流量分类

由于众所周知的原因,我们通过 ssh 或者 VPN 连接出去的网络流量并不总是可靠的,流量含有易于识别的特征码,很容易被捕获并进行封锁。因此,为了应对此种情况,有必要对网络流量的特征码加以混淆,绕过封锁。

本文主要参考自比尔盖子的博客

我的情况和比尔盖子略有不同,我的客户端系统是 Windows,也有 Linux。当然,都是大同小异。

obfsproxy 的配置基于以下条件:

服务端 IP: 198.58.106.44

VPN 服务端监听端口: 53

obfsproxy 服务端监听端口: 3389

obfsproxy 客户端监听端口: 1984

请根据自己的情况和需求调整。

服务器端的配置:

/etc/openvpn/server.conf 加入以下一行:

1
local 127.0.0.1

接着配置 obfsproxy 的服务器端:

首先自己通过各种方法在服务器安装好 obfsproxy,由于我的 CentOS 源里面没有,因此我是编译安装的。接着在 screen 或者 nohup 运行:

1
# obfsproxy obfs2 --dest=127.0.0.1:53 server 0.0.0.0:3389

以上一行也可加入到 /etc/rc.local 中,以便开机启动。

之后让防火墙放行 3389 端口。至此,服务器端位置完毕。

客户端的配置很简单,只需要在配置文件加入:

1
2
remote 127.0.0.1 1984
route 198.58.106.44 255.255.255.255 net_gateway

之后在客户端安装 obfsproxy。Windows 客户端可以直接下载 tor 的 bundle,在 apps 文件夹中有 obfsproxy 的命令行程序。

之后只需要在 Linux 终端或者 Windows 的 cmd 中运行(记得定位到 apps 目录):

1
# obfsproxy obfs2 --dest=198.58.106.44:3389 client 127.0.0.1:1984

OK 了,尽情享受吧。