私はLinuxに初めて触れました。私はたくさんの記事を読んでいますが、私の設定で問題を見つけることができず、助けが必要です。
私は2つのインターフェースを備えたDebian PCを持っています:
ens192
- 10.20.30.0/26 デフォルトゲートウェイens256
- 10.10.10.8/29
ルータ10.20.30.40(デフォルト)と10.10.10.10を使用する2つのインターネットプロバイダがあります。
10.10.10.10ルーターを介してのみTCP / 443およびTCP / 8080トラフィックを送信したいと思います。他のすべての通信は10.20.30.40を介して行う必要があります。
追加しました
80 special
行って/etc/iproute2/rt_tables
走る
sudo ip route add table 80 10.10.10.8/29 dev ens256 scope link src 10.10.10.12
sudo ip route add table 80 default dev ens256 via 10.10.10.10
sudo iptables -t mangle -N markports
sudo iptables -t mangle -I PREROUTING 1 -j CONNMARK --restore-mark
sudo iptables -t mangle -I OUTPUT 1 -m mark --mark 0 -j markports
sudo iptables -t mangle -I OUTPUT 2 -j CONNMARK --save-mark
sudo iptables -t mangle -A markports -p tcp --dport 443 -j MARK - set-mark 0x80
sudo ip rule add fwmark 0x80 lookup 80
sudo iptables -t nat -I POSTROUTING 1 -m mark --mark 0x80 -j MASQUERADE
しかし、まだ動作しません!何を変えるべきですか?
答え1
iptables/rules/routingについてまだ学んでいるので、私のアドバイスを受けてください。ただし、設定したパス/テーブルを適用するための「ipルール」がありません。
たとえば、次のようなことがうまくいくと思います。
ip rule add iif lo ipproto tcp dport 80 lookup 80
ip rule add iif lo ipproto tcp dport 443 lookup 80
詳しくは、この質問をご覧ください。特定のインターフェイスを介したポートトラフィックのルーティング