Networking
通過簡單路由器機器的 IP 表
我一直在為自己設置一個路由器,主要用於 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