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의 모든 트래픽이 내 OpenVPN을 통과할 eth0 인터페이스를 통과하도록 하는 시드박스로 사용할 계획입니다. 그런 다음 wlan0 인터페이스를 VPN의 영향을 받지 않게 두려고 합니다. 공개 포트를 사용하여 공개 no-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라우팅에는 사용하지 마십시오 . 그것은 내 애완 동물의 불만입니다. 라우팅에는 라우팅 테이블을 사용합니다. 그것이 바로 그들이 하는 일입니다.

관련 정보