Firewall的使用手记,端口转发

一直以来对Firewall感觉都不太好,因为小白时期让这东西没少折腾,但是近期发现Firewall的功能还是非常强大,有很多可以学习的东西。

对于端口转发这个需求,需要这样操作操:

 

1.首先放行端口,如果你有宝塔可以直接放,跳过这一步:

firewall-cmd --add-port=8800/tcp --permanent
firewall-cmd --add-port=8800/udp --permanent

2.开启一个意义不明的功能(伪装功能?),没它你不能端口转发:

firewall-cmd --add-masquerade --permanent

3.添加规则(这两个规则的意思是,将本机8800端口的UDP和TCP数据转发到1.1.1.1的9090上):

firewall-cmd --add-forward-port=port=8800:proto=udp:toaddr=1.1.1.1:toport=9090 --permanent
firewall-cmd --add-forward-port=port=8800:proto=tcp:toaddr=1.1.1.1:toport=9090 --permanent

4.重载规则,使其生效:

firewall-cmd --reload

5.如果你想要删除一个规则,相当于把add换成了romove,之后重载规则才生效:

firewall-cmd --remove-forward-port=port=8800:proto=udp:toaddr=1.1.1.1:toport=9090--permanent

6.一些常用的工具性命令

查看已有规则:firewall-cmd --list-all
查看开放端口:firewall-cmd --list-ports

 

还有一种带有zone的用法,我不太了解,先记录下吧:

firewall-cmd --permanent --zone=public --add-forward-port=port=533:proto=tcp:toport=3306:toaddr=1.1.1.1

 

firewall-cmd --permanent --zone=public --add-forward-port=port=533:proto=tcp:toport=3306:toaddr=1.1.1.1

 

最后,如果你始终不能转发成功,检查下这里

vi /etc/sysctl.conf

然后添加

net.ipv4.ip_forward = 1

保存后,使用sysctl -p使其生效。

 

如果后期想修改,但是觉得命令麻烦,可以直接访问/etc/firewalld/zones/public.xml修改,然后重启

firewall-cmd --complete-reload

 

 

 

点赞
  1. 欧文斯说道:
    Google Chrome Windows 10

    端口转发效率很低,远不如 Nginx Stream 转发

    1. lark说道:
      Google Chrome Windows 10

      Nginx Stream还没试过

      之前用过frp,体感下来和这个firewall这个效率差不多,不过firewall总体省事一点

发表评论

电子邮件地址不会被公开。必填项已用 * 标注