Networking

通過簡單路由器機器的 IP 表

  • January 29, 2013

我一直在為自己設置一個路由器,主要用於 dns+dhcp 功能(與很多虛擬機有關)。我有兩個介面 eth0 和 eth1。Eth0 可以看作是 WAN,而 eth1 用於內部網路。

這是我目前在啟動時執行的 IPtables 規則,並且在轉發時效果很好。

#!/bin/sh

PATH=/usr/sbin:/sbin:/bin:/usr/bin

#
# delete all existing rules.
#

iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X

# Always accept loopback traffic
iptables -A INPUT -i lo -j ACCEPT

iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth0 -j DNAT --to 10.3.193.185


iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
iptables --append FORWARD --in-interface eth1 -j ACCEPT


# Enable routing.
echo 1 > /proc/sys/net/ipv4/ip_forward

這是我已經厭倦添加但不起作用的規則。

iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth0 -j DNAT --to 10.3.193.185

我也有多個網路(埠 80)伺服器,那麼我將如何進行埠轉發?

如果您只是嘗試將在埠 80 上到達路由器的流量轉發到某個內部伺服器的埠 80,則需要以下一系列預路由和轉發規則才能使埠轉發工作。

iptables -t nat -A PREROUTING -p tcp -i eth0  --dport 80 --sport 1024:65535 -j DNAT --to 10.3.193.185:80

iptables -A FORWARD -p tcp -i eth0 -o eth1 -d 10.3.193.185 --dport 80 --sport 1024:65535 -m state --state NEW -j ACCEPT

iptables -A FORWARD  -o eth0 -m state  --state NEW,ESTABLISHED,RELATED -j ACCEPT

iptables -A FORWARD -i eth0 -m state  --state ESTABLISHED,RELATED -j ACCEPT

引用自:https://serverfault.com/questions/473582