「CentOS」Firewall流量转发
# 安装 firewall
一般 centos 都自带有,如果没有就安装
yum install firewalld
systemctl enable firewalld # 开机自启
systemctl start firewalld
# 准备工作
开启路由转发
vim /etc/sysctl.conf
# 修改或添加 net.ipv4.ip_forward = 1
sysctl -p # 让内核参数立即生效
开启防火墙流量伪装功能
firewall-cmd --zone=public --permanent --add-masquerade
# 设置转发
开放入站端口
# 开放8080 tcp和udp端口
firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --add-port=8080/udp --permanent
# 转发本地
常用于对外暴露高位端口号转发到实际端口,如外网暴露一个 12345 端口来访问服务器的 3306 的 MySQL 数据库端口
模板
firewall-cmd --add-forward-port=port=入站端口号:proto=tcp:toport=目标端口号 --permanent # tcp
firewall-cmd --add-forward-port=port=入站端口号:proto=udp:toport=目标端口号 --permanent # udp
例子
firewall-cmd --add-forward-port=port=12345:proto=tcp:toport=3306 --permanent
firewall-cmd --add-forward-port=port=12345:proto=udp:toport=3306 --permanent
# 转发远程
常用于流量中转
模板
firewall-cmd --add-forward-port=port=入站端口号:proto=tcp:toaddr=目标IP:toport=目标端口号 --permanent # tcp
firewall-cmd --add-forward-port=port=入站端口号:proto=udp:toaddr=目标IP:toport=目标端口号 --permanent # udp
例子
firewall-cmd --add-forward-port=port=8080:proto=tcp:toaddr=119.28.28.28:toport=53 --permanent
firewall-cmd --add-forward-port=port=8080:proto=udp:toaddr=119.28.28.28:toport=53 --permanent
# 重载配置文件
firewall-cmd --reload
# 手动修改配置文件
除了上述通过命令行的方式设置转发,也可通过配置文件的方式,用命令行添加的设置也会来到这里
vim /etc/firewalld/zones/public.xml
firewall-cmd --reload # 重载配置文件
# 参考资料
上次更新: 2022/01/06, 13:24:19