温馨提示×

Linux防火墙如何配置端口转发

小樊
94
2025-02-17 15:43:15
栏目: 智能运维
Linux服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在Linux系统中,可以使用iptables或firewalld来实现端口转发。以下是两种方法的详细步骤:

方法一:使用iptables

  1. 安装iptables(如果尚未安装)

    sudo apt-get update
    sudo apt-get install iptables
    
  2. 配置端口转发规则 假设你想将外部端口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
    
  3. 启用IP转发(如果尚未启用) 编辑/etc/sysctl.conf文件,确保以下行未被注释:

    net.ipv4.ip_forward=1
    

    然后应用更改:

    sudo sysctl -p
    
  4. 保存iptables规则 使用iptables-persistent工具来保存规则,以便在系统重启后仍然有效。

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

方法二:使用firewalld

  1. 安装firewalld(如果尚未安装)

    sudo apt-get update
    sudo apt-get install firewalld
    
  2. 启动并启用firewalld服务

    sudo systemctl start firewalld
    sudo systemctl enable firewalld
    
  3. 配置端口转发规则 假设你想将外部端口8080转发到内部IP地址192.168.1.100的端口80。

    sudo firewall-cmd --permanent --zone=public --add-forward-port=port=8080:proto=tcp:toaddr=192.168.1.100:toport=80
    
  4. 重新加载firewalld配置

    sudo firewall-cmd --reload
    

验证端口转发

你可以使用netstatss命令来验证端口转发是否生效。

sudo netstat -tuln | grep 8080

sudo ss -tuln | grep 8080

你应该能看到类似以下的输出,表明端口8080已经被转发到192.168.1.100的端口80:

tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN

通过以上步骤,你就可以成功配置Linux防火墙的端口转发功能。

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

推荐阅读:Debian防火墙端口转发方法

0