1. 使用 netstat -ntulp 查询程序端口占用
  • -n 不解析域名,直接显示ip
  • -tu 只列出 tcp/udp协议的进程
  • -l 只列出listening 状态的进程
  • -p 显示 pid和program name
  1. linux 防火墙放行指定的 端口
  • firewall-cmd --zone=public --add-port=6379/tcp --permanent 开发端口6379
  • --zone=public 共有访问权限
  • -add-port=6379/tcp 指定端口和 协议类型
  • --permanent 持久化的有效(重启不丢失)
  • firewall-cmd --reload 重新加载修改的配置
  • firewall-cmd --complete-reload 重新加载修改的配置(会断开连接)
  1. 查看开发的端口
  • firewall-cmd --list-ports

添加多个端口(卡通8000-9000的端口)

firewall-cmd --permanent --zone=public --add-port=8000-9000/tcp

  1. 删除端口(永久删除端口3006)
  • firewall-cmd --permanent --zone=public --remove-port=3306/tcp
  1. 对某个ip开放/禁止
  • firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.100.1" port protocol="tcp" port="3306" accept" #允许指定ip访问指定协议的指定端口
  • firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.100.1" port protocol="tcp" port="6379" reject" #禁止指定ip访问指定协议的指定端口
  • rule family="ipv4" source address="192.168.100.1" port protocol="tcp" port="3306" accept 是一条规则
  1. 删除某个ip
  • firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.100.1" port protocol="tcp" port="3306" accept"
  • --remove-rich-rule后面的内容需要和--add-rich-rule后面的完全一样

IP段的访问(192.168.0.0/16 表示 前面16位是网络号,后面的16位是主机号,192.168是网络号,这个网络下面的都允许访问)

firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.0.0/16" accept"

  1. 端口转发
  • firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080 # 将80端口的流量转发至8080
  • firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.100.1 # 将80端口的流量转发至192.168.100.1
  • firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.100.1:toport=8080 #将80端口的流量转发至192.168.100.1的8080端口
  1. 查询zone列表(zone类似于防火墙的家庭网络,区域网络,公用网络,通过切换网络环境切换不同的拦截规则,或者说是一堆拦截规则的集合名字),默认是public
  • firewall-cmd --list-all-zones #查询所有zone,并且或列出里面的配置
  • firewall-cmd --get-zones
  1. 设置指定区域为默认zone
  • firewall-cmd --set-default-zone=home
  • firewall-cmd --get-default-zone #查询默认的zone
  1. zone和网卡的
  • firewall-cmd --get-zone-of-interface=ens33 #查询某个网卡所在的zone
  • firewall-cmd --zone=public --change-interface=ens33 #把某个网卡设置到指定zone
  • firewall-cmd --zone=public --add-interface=ens33 #给当前zone添加指定网卡(如果网卡已经存在于背的zone 会报错,这时候用--change-interface)
  • firewall-cmd --get-active-zones #查询当前zone下面有哪些网卡
  1. zone和网络规则
  • firewall-cmd --zone=public --list-all #查看指定zone下面的规则
  • firewall-cmd --get-service #查询所有zone下面的服务
  • firewall-cmd --list-service #查询当前zone下面的服务
  1. 防火墙配置文件位置
  • more /etc/firewalld/zones/public.xml #这个文件可以手动修改