我试图绕过一个非常严格的防火墙,它屏蔽了除了端口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服务器运行在TCP 16080上,访问服务器控制台是可访问的,一切看起来都很好。
客户端
编辑: obfsproxy是通过pip获得的python版本。
sudo obfsproxy obfs2 --shared-secret=[secret] socks 127.0.0.1:443运行在OSX10.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外壳在此期间一直打印以下行: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。此外,我尝试使用一个与torbrowser OSX发行版(2.4.6 alpha 2)捆绑在一起的旧的obfsproxy二进制文件,我认为它不是python版本。粘度相同的行为,proxy returned bad reply。
发布于 2015-04-17 20:28:48
发布于 2015-09-22 01:36:18
我有一个“无效的袜子命令:'3'”的问题。使用wireshark,我看到“命令3”是一个UdpConnect,实际上,我对OpenVPN的配置是udp,这是推荐的,但不是由obfsproxy支持的。我可以看到你的Tunnelbrick上有tcp。也许隧道砖不支持TCP?或者对于我的OpenVPN版本(2.3.6),我需要有“”行,也许它已经改变了?
我也有“无效袜子版本xx”的问题。套接字版本是socks服务器上的第一个字节发送。可能有人试图使用错误的协议连接您的客户。
在Mac上使用wireshark,您可能会看到在您的情况下发生了什么。
https://stackoverflow.com/questions/28231030
复制相似问题