簡單實用的firewalld命令
- 一、查看防火墻是否打開
- 二、查詢、開放、關閉端口
- 三、查看已監聽端口
- 四、驗證
一、查看防火墻是否打開
systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemonLoaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)Active: active (running) since 三 2023-04-19 21:06:31 CST; 7 months 19 days agoDocs: man:firewalld(1)Main PID: 708 (firewalld)Tasks: 2Memory: 892.0KCGroup: /system.slice/firewalld.service└─708 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid
#active (running)表示已經打開,inactive (dead)表示未打開。
#firewalld默認是打開并且是開機自啟的,當然我們也可以通過命令來進行設置。systemctl enable --now firewalld #開機自啟,永久關閉把enable換成disable即可
Created symlink from /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service to /usr/lib/systemd/system/firewalld.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/firewalld.service to /usr/lib/systemd/system/firewalld.service.
二、查詢、開放、關閉端口
之前已經寫過防火墻的詳細介紹,有興趣可以去看看,地址:https://blog.csdn.net/2301_76875445/article/details/130801308?spm=1001.2014.3001.5501
firewall-cmd --query-port=80/tcp
yes #單個端口查看,yes為80端口已打開,no則為未打開firewall-cmd --list-ports
10514/udp 5432/tcp 8868-8873/tcp 9090/tcp 80/tcp
firewall-cmd --list-ports --zone=public
10514/udp 5432/tcp 8868-8873/tcp 9090/tcp 80/tcp #顯示指定區域內允許訪問的所有端口號,不加--zone=區域名,默認顯示的publicfirewall-cmd --add-port=8080/tcp --permanent
sucess #success表示端口已成功打開,不加--permanent重啟防火墻時則規則失效。firewall-cmd --remove-port=80/tcp
yes #yes表示端口已成功關閉,firewall-cmd --reload #重啟防火墻(修改規則后要重啟防火墻)
以上的前提是你的設備已經監聽該端口,否則就算打開了規則也是鏈接不上的。
三、查看已監聽端口
netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1340/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1056/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1055/cupsd
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 6104/postmaster
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1305/master
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 71335/sshd: root@pt
tcp 0 0 127.0.0.1:6011 0.0.0.0:* LISTEN 5764/sshd: root@pts
tcp 0 0 127.0.0.1:6012 0.0.0.0:* LISTEN 72570/sshd: root@pt
tcp 0 0 0.0.0.0:8868 0.0.0.0:* LISTEN 6375/argus_server
tcp 0 0 0.0.0.0:8870 0.0.0.0:* LISTEN 6381/argus_agentd
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 608/rpcbind
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 6494/nginx: master
tcp6 0 0 :::22 :::* LISTEN 1056/sshd
tcp6 0 0 ::1:631 :::* LISTEN 1055/cupsd
tcp6 0 0 ::1:25 :::* LISTEN 1305/master
tcp6 0 0 ::1:6010 :::* LISTEN 71335/sshd: root@pt
tcp6 0 0 ::1:6011 :::* LISTEN 5764/sshd: root@pts
tcp6 0 0 ::1:6012 :::* LISTEN 72570/sshd: root@pt
tcp6 0 0 :::9090 :::* LISTEN 6435/java
tcp6 0 0 :::10086 :::* LISTEN 6405/java
tcp6 0 0 :::8871 :::* LISTEN 6276/docker-proxy
tcp6 0 0 :::8873 :::* LISTEN 7493/docker-proxy
tcp6 0 0 :::111 :::* LISTEN 608/rpcbind
當然ss -lntp也可以,但是沒有這個直觀。
Local :訪問端口的方式,0.0.0.0 是對外開放端口,說明80端口外面可以訪問;127.0.0.1 說明只能對本機訪問,外面訪問不了此端口;
Address:端口
Foregin Address:對外開放,一般都為0.0.0.0:*
Program name:此端口是那個程序在用,程序掛載此端口
重點說明 0.0.0.0 是對外開放,通過服務域名、ip可以訪問的端口
::: 這三個: 的前兩個”::“,是“0:0:0:0:0:0:0:0”的縮寫,相當于IPv6的“0.0.0.0”,就是本機的所有IPv6地址,第三個:是IP和端口的分隔符
四、驗證
telnet 192.168.119.30 80 #telnet加IP端口即可,IP與端口之間為空格,不要用冒號,進入即為成功。
一般是開通對外訪問的端口,建議使用能ping通該臺主機的Windows主機進行驗證。