Ubuntu 防火墙与端口开放查看方法总结

学习笔记作者:admin日期:2025-07-02点击:12

摘要:本文详细介绍了 Ubuntu 系统中常用的防火墙工具(如 UFW、iptables、nftables)以及如何查看当前的防火墙规则和对外开放的端口。通过命令行方式,用户可以快速了解系统中的网络配置情况。

Ubuntu 防火墙工具概述

      Ubuntu 使用多种防火墙工具来管理网络流量,具体取决于版本和用户需求。

1. UFW(Uncomplicated Firewall)

  • 默认防火墙工具:Ubuntu 桌面版通常默认安装并使用 UFW。
  • 特点:简单易用,适合桌面用户和基本服务器需求。
  • 常用命令
  • sudo ufw status
    sudo ufw enable
    sudo ufw disable

2. Netfilter(通过 iptables 或 nftables)

  • 底层实现:Netfilter 是所有 Linux 系统的内核级防火墙。
  • 管理方式iptablesnftables
  • Ubuntu 20.04 及以后版本:默认使用 nftables 后端。

3. Firewalld

  • 常见于 Red Hat 系列系统(如 CentOS、Fedora),但在 Ubuntu 中不默认安装。
  • 安装命令
  • sudo apt install firewalld
  • 启动并启用服务
  • sudo systemctl start firewalld
    sudo systemctl enable firewalld

4. iptables

  • 传统工具:虽然逐步被 nftables 替代,但许多脚本仍然使用 iptables
  • 查看规则
  • sudo iptables -L -v

查看 iptables 规则

      在 Ubuntu 或其他 Linux 系统中,查看 iptables 的规则(即当前的防火墙规则),可以使用以下命令:

1. 查看所有规则

sudo iptables -L -v

2. 查看带编号的规则

sudo iptables -L -v --line-numbers

3. 查看特定链的规则(如 INPUT 链)

sudo iptables -L INPUT -v

4. 以可读性更强的方式查看

sudo iptables -S

5. 查看 NAT 表的规则

sudo iptables -t nat -L -v

查看端口对外开放列表

      如果你想查看哪些端口正在对外提供服务(即监听状态),可以使用以下几种方法。

1. 使用 ss 命令(推荐)

sudo ss -tulnp

2. 使用 netstat 命令(旧版工具)

sudo netstat -tulnp

      注意:Ubuntu 新版本可能默认没有安装 netstat,可以通过安装 net-tools 包来启用它:

sudo apt install net-tools

3. 使用 lsof 查看监听端口和对应的程序

sudo lsof -i -P -n | grep LISTEN

查看 iptables 中允许外部访问的端口

      你可以使用以下命令来列出当前的 iptables 规则,重点查找那些设置了 ACCEPT 的规则,尤其是针对 INPUT 链中允许外部访问的端口。

1. 查看所有 INPUT 链中允许访问的端口

sudo iptables -L INPUT -v --line-numbers | grep ':'

      或者更详细地:

sudo iptables -L INPUT -v --line-numbers | grep 'dpt:'

2. 更清晰的方式:以规则格式查看(推荐)

sudo iptables -S INPUT

      输出示例:

-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

3. 如果你用的是 nftables 后端(Ubuntu 20.04 及以上)

sudo nft list chain inet filter input
sudo nft list ruleset

总结

      Ubuntu 提供了多种防火墙工具来管理网络流量,包括 UFW、iptables、nftables 和 Firewalld。通过命令行方式,用户可以快速查看防火墙规则和对外开放的端口。

推荐命令汇总

  • 查看 UFW 状态sudo ufw status
  • 查看 iptables 规则sudo iptables -L -v
  • 查看 nftables 规则sudo nft list ruleset
  • 查看监听端口sudo ss -tulnp
  • 查看特定端口是否开放:结合 iptablesnftables 命令进行判断。

上一篇      下一篇