Firewalld 配置端口转发方法
在开始设置之前,请检查系统是否安装和启用 Firewalld 防火墙。其后,具体配置流程如下。
1. 将系统内核 IP 转发参数设为开启。
# 查询有无开启 IP 转发(若返回数值 0 则表示未开启) sysctl -n net.ipv4.ip_forward # 开启 IP 转发 echo "net.ipv4.ip_forward = 1" | tee --append /etc/sysctl.conf sysctl -p # 重启系统(建议,但非必需) reboot
2. Firewalld 添加 IP 伪装设置(这里添加设置到 public
默认区域)。
# 查询有无设置 IP 伪装 firewall-cmd --zone=public --query-masquerade # 添加 IP 伪装设置 firewall-cmd --permanent --zone=public --add-masquerade # 取消 IP 伪装设置(如果之后要移除设置) firewall-cmd --permanent --zone=public --remove-masquerade # 使设置生效 firewall-cmd --reload
3. Firewalld 配置端口转发(这里添加设置到 public
默认区域)。
# 先开放转发端口访问 firewall-cmd --permanent --zone=public --add-port=8080/tcp # 转发到本机其它端口(示例将 8080 端口流量转发到 9090 端口) firewall-cmd --permanent --zone=public --add-forward-port=port=8080:proto=tcp:toport=9090 # 转发到其它主机相同端口(示例将 8080 端口流量转发到 12.34.56.78 主机 8080 端口) firewall-cmd --permanent --zone=public --add-forward-port=port=8080:proto=tcp:toaddr=12.34.56.78 # 转到到其它主机指定端口(示例将 8080 端口流量转发到 12.34.56.78 主机 9090 端口) firewall-cmd --permanent --zone=public --add-forward-port=port=8080:proto=tcp:toport=9090:toaddr=12.34.56.78 # 使设置生效 firewall-cmd --reload
如果之后要移除端口转发,修改之前的添加命令,将其中的 --add-forward-port
参数改为 --remove-forward-port
即可。
补充:其它防火墙(Iptables 和 UFW)端口转发方法可参考这篇文章。