You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何定位Ubuntu 22.04设备上当前的防火墙规则?

定位Ubuntu 22.04上22端口开放原因的排查方法

1. 检查nftables原生规则

Ubuntu 22.04默认采用nftables作为底层防火墙,iptables命令实际是nftables的兼容封装。直接查看完整nftables规则集:

nft list ruleset

重点看inet filter表内的入站链(如input),确认是否存在允许22端口的规则,或是链的默认策略为accept。

2. 确认sshd服务监听状态

22端口是SSH默认端口,先验证服务的监听范围:

ss -tulpn | grep :22

如果输出显示监听0.0.0.0:22或:::22,说明服务允许所有IP访问;若防火墙默认策略为放行所有入站流量,就会出现无显式规则但端口开放的情况。

3. 检查全表防火墙默认策略

查看iptables各表的完整规则(含默认策略):

# 过滤表
iptables -L -v -n
# raw、mangle、nat表
iptables -t raw -L -v -n
iptables -t mangle -L -v -n
iptables -t nat -L -v -n

若链的默认策略为ACCEPT,即使无针对22端口的规则,流量也会被放行。

4. 排查其他防火墙服务

检查系统是否运行了firewalld等其他防火墙工具:

systemctl status firewalld

若服务运行,查看其规则:

firewall-cmd --list-all

5. 检查网络命名空间规则

如果系统使用了网络命名空间,端口可能在特定命名空间内开放:

# 列出所有命名空间
ip netns list
# 进入目标命名空间查看规则(替换ns1为实际命名空间名)
ip netns exec ns1 nft list ruleset
ip netns exec ns1 iptables -L -v -n

6. 验证规则生效情况

添加拒绝22端口的规则后,用抓包工具测试规则是否实际生效:

tcpdump -i any port 22 -nn

同时从外部重新扫描22端口,结合抓包结果判断规则是否被正确应用。


内容的提问来源于stack exchange,提问作者Dagepyro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 22:12:06