如何查看firewall开放了哪些端口 笔记241129

170 阅读3分钟

如何查看firewall开放了哪些端口 笔记241129

sudo firewall-cmd --list-ports
sudo firewall-cmd --list-ports zone=public

要查看firewall(防火墙)开放了哪些端口,可以根据操作系统的不同,采取不同的方法。以下是一些常用的方法:

一、Linux系统

在Linux系统中,常用的防火墙软件有firewalld、iptables和ufw等。针对这些防火墙软件,可以使用相应的命令来查看开放的端口。

  1. 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
      sudo firewall-cmd --list-ports zone=public
      
      查看网口对应的zone
      sudo firewall-cmd --get-zone-of-interface=<interface_name>
      
      查看public的zone的信息,对应哪些网口
      sudo firewall-cmd --zone=public --list-all
      
  2. 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
  3. ufw

    • 对于使用ufw作为防火墙的系统,可以使用命令sudo ufw status来查看当前ufw防火墙的状态和已开放的端口。
  4. 其他工具

    • 使用nmap命令来扫描开启的端口。执行命令nmap localhost,将扫描本地主机并显示当前开启的端口。
    • 使用netstat命令查看所有TCP监听端口。执行命令sudo netstat -tuln,可以查看所有TCP监听端口及其状态。
    • 使用ss命令查看监听端口。对于较新版本的Linux系统,可能更常用ss命令。执行命令sudo ss -tuln,可以查看监听的端口列表。

二、Windows系统

在Windows系统中,查看防火墙规则和开放端口可以通过图形界面或命令行工具实现。

  1. 图形界面

    • 打开“控制面板”。
    • 点击“系统和安全”。
    • 选择“Windows Defender 防火墙”(对于Windows 10)或“Windows 防火墙”(对于Windows 7/8)。
    • 点击“高级设置”。
    • 在打开的窗口中,可以查看“入站规则”和“出站规则”。每个规则都有一个描述,包括它所针对的端口和协议。
  2. 命令行工具

    • 使用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开放了哪些端口,从而确保系统的安全性和可靠性。