如何查看firewall开放了哪些端口 笔记241129
sudo firewall-cmd --list-ports
sudo firewall-cmd --list-ports zone=public
要查看firewall(防火墙)开放了哪些端口,可以根据操作系统的不同,采取不同的方法。以下是一些常用的方法:
一、Linux系统
在Linux系统中,常用的防火墙软件有firewalld、iptables和ufw等。针对这些防火墙软件,可以使用相应的命令来查看开放的端口。
-
firewalld
- 首先,检查firewalld是否正在运行。执行命令
sudo systemctl status firewalld,如果返回“running”,则表示firewalld正在运行。 - 查看所有开放的端口。执行命令
sudo firewall-cmd --list-ports,这将显示所有当前开放的端口。sudo firewall-cmd --list-ports - 如果需要查看特定zone(如public zone)的开放端口,可以使用命令
sudo firewall-cmd --zone=public --list-ports。
查看网口对应的zonesudo firewall-cmd --list-ports zone=public
查看public的zone的信息,对应哪些网口sudo firewall-cmd --get-zone-of-interface=<interface_name>sudo firewall-cmd --zone=public --list-all
- 首先,检查firewalld是否正在运行。执行命令
-
iptables
- 对于使用iptables作为防火墙的系统,可以使用命令
sudo iptables -L -n -v来查看所有规则,包括允许或拒绝的端口。 - 也可以只查看TCP输入链中的允许规则,使用命令
sudo iptables -L INPUT -n --line-numbers | grep ACCEPT。 - 如果要查看特定端口是否开放,可以使用命令
sudo iptables -L -n | grep 特定端口号。例如,要查看TCP 80端口是否开放,可以输入命令sudo iptables -L -n | grep 80。
- 对于使用iptables作为防火墙的系统,可以使用命令
-
ufw
- 对于使用ufw作为防火墙的系统,可以使用命令
sudo ufw status来查看当前ufw防火墙的状态和已开放的端口。
- 对于使用ufw作为防火墙的系统,可以使用命令
-
其他工具
- 使用
nmap命令来扫描开启的端口。执行命令nmap localhost,将扫描本地主机并显示当前开启的端口。 - 使用
netstat命令查看所有TCP监听端口。执行命令sudo netstat -tuln,可以查看所有TCP监听端口及其状态。 - 使用
ss命令查看监听端口。对于较新版本的Linux系统,可能更常用ss命令。执行命令sudo ss -tuln,可以查看监听的端口列表。
- 使用
二、Windows系统
在Windows系统中,查看防火墙规则和开放端口可以通过图形界面或命令行工具实现。
-
图形界面
- 打开“控制面板”。
- 点击“系统和安全”。
- 选择“Windows Defender 防火墙”(对于Windows 10)或“Windows 防火墙”(对于Windows 7/8)。
- 点击“高级设置”。
- 在打开的窗口中,可以查看“入站规则”和“出站规则”。每个规则都有一个描述,包括它所针对的端口和协议。
-
命令行工具
- 使用
netsh命令。netsh是一个强大的命令行工具,用于管理和查看网络配置,包括防火墙规则。查看所有入站规则可以使用命令netsh advfirewall firewall show rule name=all dir=in;查看出站规则可以使用命令netsh advfirewall firewall show rule name=all dir=out。 - 使用PowerShell。PowerShell提供了更丰富的功能和更现代化的语法。可以使用命令
Get-NetFirewallRule来列出所有当前的防火墙规则,包括它们的状态、方向、程序路径(如果有)、端口和协议。如果要检查特定端口的规则,可以使用命令Get-NetFirewallRule | Where-Object{$_.LocalPort -eq "<PortNumber>"},并将<PortNumber>替换为要检查的实际端口号。
- 使用
通过上述方法,可以有效地查看firewall开放了哪些端口,从而确保系统的安全性和可靠性。