我试图绕过一个非常严格的防火墙来阻止除端口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
粘性客户端有更多的日志输出,它打印recv_socks_reply: Socks proxy returned bad reply
。它也不会导致obfsproxy中的invalid version
错误,但它仍然无法连接,obfsproxy打印invalid socks command 3
。此外,我尝试使用旧的obfsproxy二进制文件,它与torbrowser OSX发行版(2.4.6 alpha 2)捆绑在一起,我认为这不是python版本。粘度中的行为相同,proxy returned bad reply
。
答案 0 :(得分:0)
答案 1 :(得分:0)
我有那个"对于无效的SOCKS命令:' 3'"问题。使用wireshark,我看到"命令3"是一个UdpConnect,事实上,我的OpenVPN配置是udp,建议使用,但不支持obfsproxy。 我可以看到你在你的Tunnelbrick conf上有tcp。也许tunnelbrick不支持TCP?或者对于我的OpenVPN版本(2.3.6),我需要有" proto tcp-client"线,也许它改变了?
我也有过#34;无效的SOCKS版本xx"问题。套接字版本是在socks服务器上发送的第一个字节。有人可能会尝试使用错误的protocole连接您的客户端。
在Mac上使用wireshark,你可能会看到你的情况发生了什么。