我在我的 Linux 机器上运行着 2 个 Dante 服务器实例,其中一个实例danted
应该通过以太网电缆将我连接到互联网,另一个实例sockd
应该通过 OpenVPN 连接将我连接到互联网。
第一个,danted
配置为使用我的以太网电缆(ens33):
internal: ens33 port=1080
external: ens33
第二个,sockd
配置为使用 OpenVPN 接口(tun0):
internal: ens33 port=2080
external: tun0
Dante 服务器配置正确,当 OpenVPN 未连接时,danted
可以正常工作,但是当 OpenVPN 连接时,danted
不再起作用。当我检查它的日志时,我只看到连接超时。
当 OpenVPN 未连接时,我的路由表如下所示:
default via 192.168.1.1 dev ens33 src 192.168.1.10 metric 202
default via 192.168.1.1 dev ens33 proto dhcp metric 20001
169.254.0.0/16 dev ens33 scope link metric 1000
192.168.1.0/24 dev ens33 proto kernel scope link src 192.168.1.10 metric 1
192.168.1.0/24 dev ens33 proto dhcp scope link src 192.168.1.10 metric 202
当 OpenVPN 连接时,它看起来像这样:
0.0.0.0/1 via 10.123.58.1 dev tun0
default via 192.168.1.1 dev ens33 src 192.168.1.10 metric 202
default via 192.168.1.1 dev ens33 proto dhcp metric 20001
10.123.58.0/23 dev tun0 proto kernel scope link src 10.123.58.65
128.0.0.0/1 via 10.123.58.1 dev tun0
169.254.0.0/16 dev ens33 scope link metric 1000
openvpn.server.wan.ipaddress via 192.168.1.1 dev ens33
192.168.1.0/24 dev ens33 proto kernel scope link src 192.168.1.10 metric 1
192.168.1.0/24 dev ens33 proto dhcp scope link src 192.168.1.10 metric 202
因此,OpenVPN 向我的表添加了 4 条新路由。我尝试过单独删除这些规则,或者也删除了ip route flush dev tun0
规则0/1
并default
为tun0
接口添加了规则;但是当我尝试这些并测试sockd
代理服务器时,我的 IP 是我的以太网电缆的 IP,而不是 OpenVPN 的服务器 IP。
我不知道如何解决这个问题,我已经在 Google 上搜索了很多次了,我认为这是一项简单的任务,因为 Dante 代理服务器只绑定到外部连接。
赏金摘要:
我尝试使用我的接口的 IPv4 地址而不是接口名称,例如我使用 192.168.1.10 而不是 ens33,使用 10.123.58.1 而不是 tun0,但没有解决问题(我知道每次重新连接时 OpenVPN 的内部地址都会发生变化)。
我在 Dante 配置中指定了外部(传出)接口,所以从我的理解来看,它实际上不应该使用 Ubuntu 的路由表,它不是只监听传入的连接并将它们转发到外部接口吗?我不明白为什么 OpenVPN 添加的路由会给我带来问题,尽管我可以轻松地 ping 本地网络上的计算机,但我已经检查过了我的 iptables () 中没有添加防火墙规则iptables -n -v -L
。
以下是我测试 SOCKS 服务器时的日志:
[18:18] Testing Started.
Proxy Server
Address: 192.168.1.10:1080
Protocol: SOCKS 5
Authentication: NO
[18:18] Starting: Test 1: Connection to the Proxy Server
[18:18] IP Address: 192.168.1.10
[18:18] Connection established
[18:18] Test passed.
[18:18] Starting: Test 2: Connection through the Proxy Server
[18:18] Authentication was successful.
[18:49] Error : the proxy server cannot establish connection to www.google.com:80
Error = 0x06 (Timeout).
Please confirm that the target host address is correct.
The error may also indicate that the proxy server is not operating properly.
[18:49] Test failed.
[18:49] Testing Finished.
目标主机地址是正确的,我已经按照上面说的检查了 dante-server 的日志,并且可以看到 google.com 的 IP 地址:
Aug 26 19:01:11 (1629988271.706256) danted[106897]: info: pass(2): tcp/connect ]: 0 -> 192.168.1.15.9786 192.168.1.10.1080 -> 0, 0 -> 192.168.1.10.9786 142.250.186.174.443 -> 0: connect timeout. Session duration: 31s
当OpenVPN断开连接时,成功的连接如下所示:
Aug 26 19:06:18 (1629988578.802869) danted[106897]: info: pass(2): tcp/connect ]: 0 -> 192.168.1.15.9796 192.168.1.10.1080 -> 0, 0 -> 192.168.1.129.9796 142.250.185.238.443 -> 0: local client closed. Session duration: 10s
我的问题是关于 Dante-SOCKS5-Server 的,尽管我尝试过 Squid-HTTPS-Server 并且遇到了同样的问题:
My question is specific about Dante-SOCKS5-Server, although I have tried Squid-HTTPS-Server and I had the same issue with it:
[05:40] Starting: Test 1: Connection to the Proxy Server
[05:40] IP Address: 192.168.1.10
[05:40] Connection established
[05:40] Test passed.
[05:40] Starting: Test 2: Connection through the Proxy Server
[06:40] Error : the proxy server cannot establish connection with 142.250.186.174:443
The error indicates that the target host is down or unreachable.
Please try to use another host and/or port as a test target.
The proxy server reply header is:
HTTP/1.1 503 Service Unavailable
Server: squid/4.10
Mime-Version: 1.0
Date: Thu, 26 Aug 2021 16:36:40 GMT
Content-Type: text/html;charset=utf-8
Content-Length: 3438
X-Squid-Error: ERR_CONNECT_FAIL 110
Vary: Accept-Language
Content-Language: en
[06:40] Test failed.
[06:40] Testing Finished.