好得大恩 大佬有话说 :
【教程】防火墙转发—firewalld简单介绍
本帖最后由 好得大恩 于 2024-3-17 01:32 编辑
转发前准备工作
1、Linux启用IP转发功能
echo "net.ipv4.ip_forward=1">>/etc/sysctl.conf
sysctl -p
2、firewalld 开启源地址转换
firewall-cmd–add-masquerade –permanent
firewall-cmd –reload
3、firewalld在转发前记得放行对应端口
firewall-cmd –permanent –add-port= <转发端口>/tcp
–add-forward-port 转发流量
1、命令行方式
此方式不支持转发IPV6流量
转发IPV6流量需要使用firewalld富规则
firewall-cmd –zone=public –add-forward-port=port=<源端口号>:proto=<协议>:toaddr=<目标服务器IP>:toport=<目标端口号> –permanent
# 刷新防火墙规则
firewall-cmd –reload
firewalld 命令会持久化在 /etc/firewalld/zones/public.xml 文件中
firewalld 转发命令容易写错,建议直接修改配置文件
2、firewalld 配置文件方式
可以通过修改firewalld配置文件,进行转发配置,等价于命令行(推荐使用此方式)
配置文件 /etc/firewalld/zones/public.xml
单端口转发 7007端口 转发 xxx.xxx.xxx.xxx 的 3306端口
批量端口转发 7007-7999端口 转发 xxx.xxx.xxx.xxx 的 6379端口
<?xml version="1.0" encoding="utf-8"?>
<zone>
<short>Public</short>
<masquerade/>
<forward-port port="7007" protocol="tcp" to-port="3306" to-addr="xxx.xxx.xxx.xxx"/>
<forward-port port="7007-7999" protocol="tcp" to-port="6379" to-addr="xxx.xxx.xxx.xxx"/>
</zone>
修改之后记得重启firewalld防火墙或者刷新防火墙规则
systemctl restart firewalld
firewall-cmd –reload
firewalld富规则转发流量
可以转发IPV4,也可以转发IPV6,这里介绍转发IPV6流量
#开启ipv6源地址转换
firewall-cmd –permanent –add-rich-rule=’rule family=ipv6 masquerade’
#firewalld富规则转发ipv6
firewall-cmd –permanent –add-rich-rule="rule family="ipv6"forward-port port="源端口" protocol="tcp" to-port="目标端口" to-addr="""
可以通过修改firewalld配置文件,进行转发配置,等价于命令行
<?xml version="1.0" encoding="utf-8"?>
<zone>
<short>Public</short>
<rule family="ipv6">
<forward-port port="源端口" protocol="tcp" to-port="目标端口" to-addr=""/>
</rule>
<rule family="ipv6">
<masquerade/>
</rule>
</zone>
hankhu 大佬有话说 :
写的很好,不过我喜欢脚本