【发布时间】:2015-03-29 15:24:21
【问题描述】:
我正在尝试绕过一个非常严格的防火墙,该防火墙会阻止除端口 80 和 443 之外的所有内容,并且显然甚至会使用 DPI 来阻止 VPN。为此,我正在尝试使用 obfsproxy 混淆 OpenVPN 流量。这是我的设置:
服务器
obfsproxy obfs2 --dest=127.0.0.1:16080 --shared-secret=[secret] server 0.0.0.0:3389 正在运行。
lsof -i :3389 显示
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
obfsproxy 1341 root 3u IPv4 14396 0t0 TCP *:3389 (LISTEN)
OpenVPN Server 在 TCP 16080 上运行,Access Server 控制台可访问,一切正常。
客户
编辑:obfsproxy是通过pip获取的python版本。
sudo obfsproxy obfs2 --shared-secret=[secret] socks 127.0.0.1:443 在 OSX 10.9.5 的终端窗口中运行。
尝试使用“Tunnelblick”与以下 client.ovpn 进行连接:
setenv FORWARD_COMPATIBLE 1
client
server-poll-timeout 4
nobind
pull
remote [Server-IP] 3389 tcp
route [Server-IP] 255.255.255.255 net_gateway
socks-proxy-retry
socks-proxy 127.0.0.1 443
dev tun
dev-type tun
ns-cert-type server
reneg-sec 604800
sndbuf 100000
rcvbuf 100000
auth-user-pass
comp-lzo no
verb 3
setenv PUSH_PEER_INFO
# Certs...
问题
Tunnelblick 不断尝试连接,并且客户端的 obfsproxy shell 在此期间不断打印以下行:2015-01-30 15:52:42,508 [ERROR] Invalid SOCKS command: '3'。所以,至少在客户端,Tunnelblick 似乎找到了 obfsproxy,但就我而言。我该如何解决这个问题或至少获得更多调试信息?
更新
obfsproxy 客户端在启动后还会在第一行打印2015-01-30 15:39:36,431 [ERROR] Invalid SOCKS version: '71'。这似乎是在以下 python 脚本中创建的:http://pydoc.net/Python/obfsproxy/0.2.7/obfsproxy.network.socks5/。 Obfsproxy 似乎需要 Socks5。我正在尝试弄清楚如何让我的 VPN 客户端与 Socks5 通信,到目前为止,我找不到更多关于如何强制版本的信息。
更新 2
Viscosity 客户端有更多的日志输出,它打印recv_socks_reply: Socks proxy returned bad reply。它也不会导致 obfsproxy 中的invalid version 错误,但是它仍然无法连接,obfsproxy 打印invalid socks command 3。此外,我尝试使用与 torbrowser OSX 发行版(2.4.6 alpha 2)捆绑在一起的旧 obfsproxy 二进制文件,我认为它不是 python 版本。粘度中的相同行为,proxy returned bad reply。
【问题讨论】:
-
尝试通过 PIP 安装 obfsproxy,它似乎包含了对 socks5 的支持
-
谢谢。一旦有时间,我会再次研究它——不过这可能需要一点时间。
-
顺便说一句:仅仅因为 PIP 下的 obfsproxy 支持 SOCKS5,并不意味着它可以与 OpenVPN 一起使用 :(
-
哦,我现在通过再次阅读我的问题可以看到:>客户端>编辑:obfsproxy是通过pip获得的python版本。 -> 即 pip 版本不能解决我的问题。我认为这是客户端和 obfsproxy 之间的通信 - 袜子似乎并没有那么标准化。