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 系统的内核级防火墙。
- 管理方式:
iptables
和nftables
。 - 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
- 查看特定端口是否开放:结合
iptables
或nftables
命令进行判断。