在Debian系统上,可以使用 firewalld
或 iptables
进行端口转发。以下是具体的步骤:
sudo apt-get update
sudo apt-get install firewalld
sudo systemctl start firewalld
sudo systemctl enable firewalld
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
为了使更改在重启后生效,可以将以下内容添加到 /etc/sysctl.conf
文件中:
net.ipv4.ip_forward=1
然后运行:
sudo sysctl -p
sudo vi /etc/firewalld/zones/public.xml
在 zone
标签内添加以下内容(根据你的实际需求修改 to-port
和 to-addr
的值):
<zone name="public">
<rule family="ipv4">
port protocol value="tcp" port value="本地端口" forward-port to-addr value="远程IP" to-port value="远程端口" />
port protocol value="udp" port value="本地端口" forward-port to-addr value="远程IP" to-port value="远程端口" />
</rule>
</zone>
例如,将本地端口12345转发到远程IP的80端口:
<zone name="public">
<rule family="ipv4">
port protocol value="tcp" port value="12345" forward-port to-addr value="远程IP" to-port value="80" />
port protocol value="udp" port value="12345" forward-port to-addr value="远程IP" to-port value="80" />
</rule>
</zone>
sudo systemctl restart firewalld
sudo apt-get update
sudo apt-get install iptables
sudo systemctl start iptables
sudo systemctl enable iptables
sudo iptables -F
sudo iptables -X
echo -e "net.ipv4.ip_forward=1" | sudo tee /etc/sysctl.conf
sudo sysctl -p
sudo iptables -t nat -A PREROUTING -p tcp --dport 本地端口 -j DNAT --to-destination 远程IP:远程端口
sudo iptables -t nat -A POSTROUTING -j MASQUERADE
例如,将本地端口8080转发到远程IP的80端口:
sudo iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 远程IP:80
sudo iptables -t nat -A POSTROUTING -j MASQUERADE
iptables-persistent
):sudo netfilter-persistent save
sudo netfilter-persistent reload
通过以上步骤,你应该能够在Debian系统上成功配置端口转发。