具有两个接口的两个 Dante 代理服务器实例

具有两个接口的两个 Dante 代理服务器实例

我在我的 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/1defaulttun0接口添加了规则;但是当我尝试这些并测试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.

相关内容