將 eth0 路由到 tun0 (OpenVPN) 並使 wlan0 不受影響

將 eth0 路由到 tun0 (OpenVPN) 並使 wlan0 不受影響

我目前有一個 Raspberry Pi Model B+ v1.2(我計劃在解決這些問題後獲得 Raspberry Pi 4)。我的網路介面 eth0 透過乙太網路電纜連接到我的路由器,我的 wlan0 透過 Wi-Fi 連接到同一台路由器。

我計劃使用這個 Raspberry Pi 作為種子箱,我希望來自 qBittorrent-nox 的所有流量都通過 eth0 接口,該接口將通過我的 OpenVPN,然後我想讓 wlan0 接口不受 VPN 的影響,所以我能夠使用我的開放連接埠從我的公共無IP 位址存取qBittorrent-nox WebUI。 (注意:我的VPN不允許連接埠轉送)

我看過很多關於 IP 表路由的帖子,但我不太明白如何實現我想要的。

我運行了“ip route show”命令,結果如下:

0.0.0.0/1 via 10.28.10.5 dev tun0
default via 192.168.1.1 dev eth0 proto dhcp src 192.168.1.26 metric 202
default via 192.168.1.1 dev wlan0 proto dhcp src 192.168.1.27 metric 303
10.28.10.1 via 10.28.10.5 dev tun0
10.28.10.5 dev tun0 proto kernel scope link src 10.28.10.6
103.231.91.74 via 192.168.1.1 dev eth0
128.0.0.0/1 via 10.28.10.5 dev tun0
192.168.1.0/24 dev eth0 proto dhcp scope link src 192.168.1.26 metric 202
192.168.1.0/24 dev wlan0 proto dhcp scope link src 192.168.1.27 metric 303

以下是我的“ifconfig”命令結果:

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.26  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::f96:bfff:cd6d:d1d6  prefixlen 64  scopeid 0x20<link>
        inet6 2404:4408:23f4:5500:c127:7182:abfb:5e26  prefixlen 64  scopeid 0x0<global>
        ether b8:27:eb:61:19:70  txqueuelen 1000  (Ethernet)
        RX packets 911757  bytes 1126311222 (1.0 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 449193  bytes 64017695 (61.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 123  bytes 12608 (12.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 123  bytes 12608 (12.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1500
        inet 10.28.10.6  netmask 255.255.255.255  destination 10.28.10.5
        inet6 fe80::c6ba:27ae:2226:dfa2  prefixlen 64  scopeid 0x20<link>
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 100  (UNSPEC)
        RX packets 467058  bytes 552751583 (527.1 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 253762  bytes 16534884 (15.7 MiB)
        TX errors 0  dropped 102112 overruns 0  carrier 0  collisions 0

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.27  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::65b8:5d35:c9e6:b85f  prefixlen 64  scopeid 0x20<link>
        inet6 2404:4408:23f4:5500:cfd3:d82:7d0b:93ce  prefixlen 64  scopeid 0x0<global>
        ether 00:c0:ca:84:7d:51  txqueuelen 1000  (Ethernet)
        RX packets 22208  bytes 23412831 (22.3 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 364  bytes 43145 (42.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

任何幫助表示讚賞。先致謝!

答案1

您希望不同的程式有不同的路徑(qBittorrent-box 與其他程式)。

最簡單的方法是創建一個網絡命名空間(該網站上有很多問題解釋瞭如何做到這一點),eth0如果您不需要eth0其他東西,可以移入其中,或者將其連接到主網絡通過veth-pair 訪問網絡命名空間,然後使用策略路由(google)將從veth-pair-end 發出的任何內容路由到eth0.

請不要用於iptables路由。這是我的一個小煩惱。使用路由表進行路由。這就是他們的目的。

相關內容