温馨提示×

Ubuntu iptables如何实现端口转发

小樊
47
2025-03-04 04:16:31
栏目: 智能运维
Ubuntu服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在 Ubuntu 系统中,你可以使用 iptables 命令来实现端口转发。以下是一个基本的步骤指南:

  1. 打开终端

  2. 确保 iptables 已安装

    sudo apt update
    sudo apt install iptables
    
  3. 启用 IP 转发: 编辑 /etc/sysctl.conf 文件,找到并取消注释以下行:

    net.ipv4.ip_forward=1
    

    然后运行以下命令使更改生效:

    sudo sysctl -p
    
  4. 设置端口转发规则: 假设你想将外部端口 8080 转发到内部 IP 地址 192.168.1.100 的端口 80,可以使用以下命令:

    sudo iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.100:80
    sudo iptables -t nat -A POSTROUTING -p tcp -d 192.168.1.100 --dport 80 -j MASQUERADE
    

    解释:

    • -t nat:指定使用 NAT 表。
    • -A PREROUTING:在 PREROUTING 链中添加规则。
    • -p tcp --dport 8080:匹配 TCP 协议,目标端口为 8080。
    • -j DNAT --to-destination 192.168.1.100:80:将数据包的目标地址和端口修改为 192.168.1.100:80。
    • -A POSTROUTING:在 POSTROUTING 链中添加规则。
    • -p tcp -d 192.168.1.100 --dport 80:匹配 TCP 协议,目标地址为 192.168.1.100,目标端口为 80。
    • -j MASQUERADE:进行源地址转换(SNAT),以便返回的数据包能够正确路由回外部网络。
  5. 保存 iptables 规则: 为了确保重启后规则仍然有效,可以使用 iptables-persistent 工具来保存规则。

    sudo apt install iptables-persistent
    sudo netfilter-persistent save
    sudo netfilter-persistent reload
    

完成以上步骤后,你的端口转发规则应该已经生效。你可以通过访问外部 IP 地址的 8080 端口来测试端口转发是否正常工作。

请注意,这些步骤假设你的系统有一个外部 IP 地址,并且你的网络配置允许进行端口转发。如果你在云服务器上操作,还需要确保安全组或防火墙规则允许相应的流量通过。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读:Ubuntu iptables如何进行端口转发

0