Linux 上通过 socks 代理进行 Openvpn

Linux 上通过 socks 代理进行 Openvpn

我希望这是发布此文的正确地方。

基本上,我尝试通过 socks 代理运行 vpn。现在这在 Windows 7 中对我来说运行良好,但当我在 Linux 中尝试时,它失败了

Code:
Mon Jun 17 23:26:26 2013 [<redacted>] Inactivity timeout (--ping-restart), restarting
Mon Jun 17 23:26:26 2013 SIGUSR1[soft,ping-restart] received, process restarting
Mon Jun 17 23:26:26 2013 Restart pause, 10 second(s)

我已经使用 Ubuntu 12.x、13.x 和 Debian 7.0 进行了测试。我已经使用存储库中的默认 openvpn 2.2 和编译 2.3 进行了测试。但最终还是出现了同样的错误。

这是我的配置文件。

client
dev tun0
proto tcp
socks-proxy 127.0.0.1 9050
remote <redacted> 1194
resolv-retry infinite
nobind

auth-user-pass p.auth
auth-retry nointeract

ca [inline]

tls-client
tls-auth [inline]
ns-cert-type server

keepalive 10 30
cipher AES-256-CBC
# tls-ciphers currently disabled due to OpenVPN bug.     
# Will hopefully be re-enabled with version 2.3.2.
#tls-cipher TLSv1:!ADH:!SSLv2:!NULL:!EXPORT:!DES:!LOW:!MEDIUM:@STRENGTH
persist-key
persist-tun
comp-lzo
tun-mtu 1500
mssfix
verb 3

完整的错误信息

Mon Jun 17 23:25:25 2013 ROUTE_GATEWAY 192.168.1.1/255.255.255.0 IFACE=eth0 HWADDR=00:0c:29:8c:91:9a
Mon Jun 17 23:25:25 2013 TUN/TAP device tun0 opened
Mon Jun 17 23:25:25 2013 TUN/TAP TX queue length set to 100
Mon Jun 17 23:25:25 2013 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Mon Jun 17 23:25:25 2013 /sbin/ifconfig tun0 46.246.35.126 netmask 255.255.255.0 mtu 1500 broadcast 46.246.35.255
Mon Jun 17 23:25:26 2013 /sbin/route add -net 127.0.0.1 netmask 255.255.255.255 gw 192.168.1.1
Mon Jun 17 23:25:26 2013 /sbin/route add -net 0.0.0.0 netmask 128.0.0.0 gw 46.246.35.1
Mon Jun 17 23:25:26 2013 /sbin/route add -net 128.0.0.0 netmask 128.0.0.0 gw 46.246.35.1
Mon Jun 17 23:25:26 2013 /sbin/route add -net 46.246.35.2 netmask 255.255.255.255 gw 192.168.1.1
Mon Jun 17 23:25:26 2013 Initialization Sequence Completed
Mon Jun 17 23:26:26 2013 [pw.openvpn.ipredator.se] Inactivity timeout (--ping-restart), restarting
Mon Jun 17 23:26:26 2013 SIGUSR1[soft,ping-restart] received, process restarting
Mon Jun 17 23:26:26 2013 Restart pause, 10 second(s)
Mon Jun 17 23:26:36 2013 Socket Buffers: R=[87380->131072] S=[16384->131072]
Mon Jun 17 23:26:36 2013 Attempting to establish TCP connection with [AF_INET]127.0.0.1:9050 [nonblock]
Mon Jun 17 23:26:36 2013 TCP connection established with [AF_INET]127.0.0.1:9050
Mon Jun 17 23:26:41 2013 recv_socks_reply: TCP port read timeout expired: Operation now in progress (errno=115)
Mon Jun 17 23:26:41 2013 /sbin/route del -net 46.246.35.2 netmask 255.255.255.255
Mon Jun 17 23:26:41 2013 /sbin/route del -net 127.0.0.1 netmask 255.255.255.255
Mon Jun 17 23:26:41 2013 /sbin/route del -net 0.0.0.0 netmask 128.0.0.0
Mon Jun 17 23:26:41 2013 /sbin/route del -net 128.0.0.0 netmask 128.0.0.0
Mon Jun 17 23:26:41 2013 Closing TUN/TAP interface
Mon Jun 17 23:26:41 2013 /sbin/ifconfig tun0 0.0.0.0
Mon Jun 17 23:26:43 2013 SIGTERM[soft,init_instance] received, process exiting

通过socks连接后的路由表。

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         46.246.35.1     128.0.0.0       UG    0      0        0 tun0
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0
46.246.35.0     0.0.0.0         255.255.255.0   U     0      0        0 tun0
46.246.35.2     192.168.1.1     255.255.255.255 UGH   0      0        0 eth0
127.0.0.1       192.168.1.1     255.255.255.255 UGH   0      0        0 eth0
128.0.0.0       46.246.35.1     128.0.0.0       UG    0      0        0 tun0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0

对于我来说,使用 Linux 和 socks 确实非常重要,而我对这个问题真的一无所知。任何帮助都将不胜感激,在此先行致谢!

答案1

你的代理是 SOCKS5 代理吗?还是 SOCKS4 代理?

我刚刚遇到了完全相同的问题,并将其归结为以下事实(尽管没有记录),OpenVPN 仅支持 SOCKS5 代理

值得一提的是,SOCKS4 标头较长,因此TCP port read timeout expired当 OpenVPN 连接时,我的代理正在等待其他数据并超时()。

相关内容