3

私のubuntuにあるものは次のとおりです。

eth0(local) = 192.168.1.1/24 attemp to be gateway for local network
eth1(net1) = 192.168.2.2/24 gateway is 192.168.2.1 is a DSL 1
eth2(net2) = 192.168.3.2/24 gateway is 192.168.3.1 is a DSL 2

私が欲しいのは:

port 22,53,80,443 force to use only through eth1
port 6881 to 6889 and other ports force to use only through eth2

iptablesでルールを作成する方法は?

ありがとうございました。

4

2 に答える 2

2

ラズベリーパイ3モデルbの別のIPアドレスにポートフォワードする必要があり、これが私がそれを達成した方法です。

sudo vi /etc/sysctl.conf

行のコメントを解除します

net.ipv4.ip_forward=1

sysctlをリロードするか、ラズベリーパイを再起動します

sudo sysctl -p /etc/sysctl.conf

次に、次のiptablesコマンドを実行します

iptables -t nat -A PREROUTING -i eth1-p tcp --dport 22 -j DNAT --to-destination 192.168.0.198:22
iptables -t nat -A PREROUTING -i eth1-p tcp --dport 53 -j DNAT --to-destination 192.168.0.198:53
iptables -t nat -A PREROUTING -i eth1-p tcp --dport 80 -j DNAT --to-destination 192.168.0.198:80
iptables -t nat -A PREROUTING -i eth1-p tcp --dport 443 -j DNAT --to-destination 192.168.0.198:443

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
于 2016-07-22T06:23:06.473 に答える
1

経由する必要があるパッケージをマークしますeth1

iptables -A PREROUTING -i eth0 -t mangle -p tcp --dports 22,53,80,443 -j MARK --set-mark 1

eth1.outマークされたパッケージをルーティングするルールを追加します。

echo "201 eth1.out" >> /etc/iproute2/rt_tables
ip rule add fwmark 1 table eth1.out

マークされたすべてのパッケージをeth1次の方法でルーティングします。

/sbin/ip route add default via 192.168.2.1 dev eth1 table eth1.out

他のすべてを経由してルーティングしますeth2

/sbin/ip route add default via 192.168.3.1 dev eth2 

MARKルールが機能しない場合は、を使用してみてくださいCONNMARK

于 2011-03-08T11:05:37.153 に答える