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 の影響を受けないようにして、開いているポートを使用してパブリック 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。これは私の個人的な悩みです。ルーティングにはルーティング テーブルを使用してください。それがルーティング テーブルの役割です。

関連情報