Linux防火墙及开发端口管理

查看防火墙是否开启

1
systemctl status firewalld

若没有开启则是关闭状态

1
systemctl start firewalld   # 关闭则start改为stop

查看所有开启的端口

1
2
3
firewall-cmd --list-ports

# 注:启动防火墙后,默认没有开启任何端口,需要手动开启端口

防火墙开启端口访问

1
2
3
4
5
6
7
8
9
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=2379-2380/tcp --permanent
firewall-cmd --zone=public --add-port=80/tcp --add-port=8080/tcp --permanent
# 命令含义:
# --zone #作用域
# --add-port=80/tcp #添加端口,格式为:端口/通讯协议; 开放范围端口用-连接; 使用多个add-port同时开放多个端口
# --permanent #永久生效,没有此参数重启后失效

# 注:开启后需要重启防火墙才生效

重启命令

1
firewall-cmd --reload

其他常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
firewall-cmd --state                          ##查看防火墙状态,是否是running
firewall-cmd --reload ##重新载入配置,比如添加规则之后,需要执行此命令
firewall-cmd --get-zones ##列出支持的zone
firewall-cmd --get-services ##列出支持的服务,在列表中的服务是放行的
firewall-cmd --query-service ftp ##查看ftp服务是否支持,返回yes或者no
firewall-cmd --add-service=ftp ##临时开放ftp服务
firewall-cmd --add-service=ftp --permanent ##永久开放ftp服务
firewall-cmd --remove-service=ftp --permanent ##永久移除ftp服务
firewall-cmd --add-port=80/tcp --permanent ##永久添加80端口
firewall-cmd --remove-port=80/tcp --permanent ##永久移除80端口
firewall-cmd --zone=public --list-ports ##查看已开放的端口

iptables -L -n ##查看规则,这个命令是和iptables的相同的
man firewall-cmd

示例

  1. 开放端口
    firewall-cmd --zone=public --add-port=5672/tcp --permanent # 开放5672端口
    firewall-cmd --zone=public --remove-port=5672/tcp --permanent #关闭5672端口
    firewall-cmd --reload # 配置立即生效
  2. 查看防火墙所有开放的端口
    firewall-cmd --zone=public --list-ports
  3. 关闭防火墙
    如果要开放的端口太多,嫌麻烦,可以关闭防火墙,安全性自行评估
    systemctl stop firewalld.service
  4. 查看防火墙状态
    firewall-cmd --state
  5. 查看监听的端口
    netstat -lnpt
  6. 检查端口被哪个进程占用
    netstat -lnpt |grep 5672
  7. 查看进程的详细信息
    ps 6832
  8. 中止进程
    kill -9 6832

参考

https://www.cnblogs.com/niuben/p/13882092.html