1.查看防火牆狀態
命令:firewall-cmd --state
2.關閉防火牆
命令:systemctl stop firewalld.service
3.啟動防火牆
命令:systemctl start firewalld.service
4.設置開機自動啟動:systemctl enable firewalld.service
關閉開機啟動:systemctl disable firewalld.service
5.查看防火牆所有開放的端口
命令:firewall-cmd --zone=public --list-ports
這條命令我執行完后居然什么都沒有,我理解為我安裝的虛擬機上可能沒啟任何端口吧,但一點提示也沒有太不友好了。
6.開啟某個(某段)端口
firewall-cmd --zone=public --add-port=8080-8081/tcp --permanent //永久
firewall-cmd --zone=public --add-port=8080-8081/tcp //臨時
firewall-cmd --zone=public --add-port=5672/tcp --permanent # 永久開放5672端口
firewall-cmd --zone=public --remove-port=5672/tcp --permanent #永久關閉5672端口
firewall-cmd --reload # 在不改變狀態的條件下重新加載防火牆--配置立即生效
7.查看具體某個端口
命令:netstat -tunlp | grep 8081 【模糊查詢】
lsof -i:8081【精確查詢】
命令格式:netstat -tunlp | grep 端口號
- -t (tcp) 僅顯示tcp相關選項
- -u (udp)僅顯示udp相關選項
- -n 拒絕顯示別名,能顯示數字的全部轉化為數字
- -l 僅列出在Listen(監聽)的服務狀態
- -p 顯示建立相關鏈接的程序名
- PS:centos7默認沒有 netstat 命令,需要安裝 net-tools 工具,yum install -y net-tools
如果發現端口被占用,kill -9 進程號 殺死進程
8.查看開放的所有端口,命令:firewall-cmd --list-ports
下面記錄一下服務的相關命令:
獲取所有支持的服務firewall-cmd --get-service
啟動某個服務firewall-cmd --zone=public --add-service=https //臨時 firewall-cmd --permanent --zone=public --add-service=https //永久
查看開啟的服務firewall-cmd --permanent --zone=public --list-services
設置ip訪問某個服務firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.0.4/24" service name="http" accept" //ip 192.168.0.4/24 訪問 http
刪除上面的設置firewall-cmd --permanent --zone=public --remove-rich-rule="rule family="ipv4" source address="192.168.0.4/24" service name="http" accept"
檢查設定是否生效 iptables -L -n | grep 21