Направьте eth0 на tun0 (OpenVPN) и оставьте wlan0 без изменений

Направьте eth0 на tun0 (OpenVPN) и оставьте wlan0 без изменений

В настоящее время у меня есть Raspberry Pi Model B+ v1.2 (и я планирую приобрести Raspberry Pi 4 после того, как решу эти проблемы). У меня есть сетевой интерфейс eth0, подключенный к моему маршрутизатору через кабель Ethernet, и у меня есть wlan0, подключенный к тому же маршрутизатору через Wi-Fi.

Я планирую использовать этот Raspberry Pi в качестве seedbox, где я хочу, чтобы весь трафик от qBittorrent-nox проходил через интерфейс eth0, который будет проходить через мой OpenVPN, а затем я хочу оставить интерфейс wlan0 незатронутым VPN, чтобы я мог получить доступ к веб-интерфейсу qBittorrent-nox с моего публичного адреса no-ip с моим открытым портом. (Примечание: мой 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для маршрутизации. Это моя любимая мозоль. Используйте таблицы маршрутизации для маршрутизации. Они для этого и нужны.

Связанный контент