iptables
是 Linux 系統中用于配置內核防火墻的一個命令行工具。使用 iptables
可以實現端口轉發(Port Forwarding),即將一個端口的流量重定向到另一個端口。以下是實現端口轉發的基本步驟:
首先,確保你的系統啟用了 IP 轉發功能。編輯 /etc/sysctl.conf
文件,找到并修改以下行:
net.ipv4.ip_forward=1
然后運行以下命令使更改生效:
sudo sysctl -p
使用 iptables
命令配置端口轉發規則。假設你想將外部端口 8080 的流量轉發到內部服務器的端口 80,可以使用以下命令:
sudo iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.100:80
解釋:
-t nat
:指定使用 NAT 表。-A PREROUTING
:在 PREROUTING 鏈添加規則。-p tcp
:指定協議為 TCP。--dport 8080
:指定目標端口為 8080。-j DNAT
:指定目標地址轉換(Destination Network Address Translation)。--to-destination 192.168.1.100:80
:指定目標地址和端口。為了確保重啟后規則仍然有效,需要保存 iptables
規則。不同的 Linux 發行版可能有不同的方法來保存規則。
sudo iptables-save > /etc/iptables/rules.v4
sudo service iptables save
或者使用 firewall-cmd
(如果使用的是 firewalld):
sudo firewall-cmd --permanent --add-forward-port=port=8080:proto=tcp:toport=80:toaddr=192.168.1.100
sudo firewall-cmd --reload
使用以下命令驗證規則是否已正確添加:
sudo iptables -t nat -L -v -n
你應該能看到類似以下的輸出,表明規則已成功添加:
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 DNAT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8080 to:192.168.1.100:80
通過以上步驟,你應該能夠成功配置 iptables
實現端口轉發。