×

CentOS7一键增加删除防火墙端口

hqy hqy 发表于2019-05-17 18:01:03 浏览2827 评论0

抢沙发发表评论

简介:本文介绍CentOS7上安装shadowsocks后,关于防火墙的处理。 

CentOS7上防火墙变成了firewalld,而非iptables,所以操作上也不太一样。尤其是安装完shadowsocks之后,发现添加的端口不起作用了。原因就是防火墙把那个端口毙了。 

firewalld默认的配置文件有:/usr/lib/firewalld,这个是系统的尽量不要修改。用户的在/etc/firewalld/zones下的public.xml。可以手动编辑添加,也可以用命令:


添加端口

# firewall-cmd --zone=public --add-port=6022/tcp --permanent

# firewall-cmd --zone=public --add-port=6022/udp --permanent

1

2

删除一个端口

# firewall-cmd --zone=public --remove-port=6022/tcp --permanent

# firewall-cmd --zone=public --remove-port=6022/udp --permanent

1

2

之后运行firewall-cmd --reload或firewall-cmd --complete-reload重启就ok了。一般运行前者即可.


一键增加删除端口

本脚本已上传至github,欢迎使用fork.


为此我写了个脚本,新建文件myport,注意不要带后缀:


#!/bin/bash

num=$#

ok=0

if [ ${num} != 2 ]; then

    echo 'error:you must input two parmas, first is add or remote, second is port number'

    exit 0

fi


case $1 in


add)

firewall-cmd --zone=public --add-port=$2/tcp --permanent

firewall-cmd --zone=public --add-port=$2/udp --permanent

ok=1

;;


remove)

firewall-cmd --zone=public --remove-port=$2/tcp --permanent

firewall-cmd --zone=public --remove-port=$2/udp --permanent

ok=1

;;


*)

echo 'first params must be "add" or "remove"' 

;;


esac

if [ ${ok} == 1 ]; then

firewall-cmd --reload

firewall-cmd --zone=public --list-all

fi

exit 0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

将脚本增加可执行权限,然后mv到/usr/local/sbin目录即可!


使用示例

增加端口:

myport add 4444

删除端口 :

myport remove 4444

1

2

3

4

脚本编写过程中的注意事项

关于变量,第一次赋值时不带符号,第二次赋值时也不需要带符号,第二次赋值时也不需要带符号,直到使用时才带$号;

关于shell脚本里的if else,if和[]之间一定要带个空格,然后[]里的表达式两端也要带个空格.

shell里的switch语句,;;表示break的意思,*)表示default意思。esac是switch结束标志。

设置防火墙端口区间

每次修改shadowsocks,用本脚本还嫌麻烦的话,那可以增加端口区间:


firewall-cmd --zone=public --add-port=4400-4600/udp --permanent

firewall-cmd --zone=public --add-port=4400-4600/tcp --permanent

1

2

这样4400-4600这个区间的端口都是允许的。


当然也可以直接编辑public.xml,在里面增加:


  <port protocol="udp" port="4400-4600"/>

  <port protocol="tcp" port="4400-4600"/>

1

2

参考: 

1. CentOS7下使用firewall 

2. CentOS 7 使用iptables替换自带的firewall

--------------------- 

作者:yanzi1225627 

来源:CSDN 

原文:https://blog.csdn.net/yanzi1225627/article/details/51470962 

版权声明:本文为博主原创文章,转载请附上博文链接!


打赏

本文链接:https://www.kinber.cn/post/745.html 转载需授权!

分享到:


推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

 您阅读本篇文章共花了: 

群贤毕至

访客