需永久删除误开放的8080/tcp端口规则:先用firewall-cmd --list-all确认端口所在zone,再执行sudo firewall-cmd --permanent --remove-port=8080/tcp,最后sudo firewall-cmd --reload并用--query-port验证返回no。

在Linux系统中误开放了某个端口(比如8080/tcp),需要立即移除该规则并确保重启后依然失效,不能只删运行时规则导致下次开机又暴露服务。
确认当前已开放的端口和区域
先执行firewall-cmd --list-all,查看默认区域(通常是public)下所有生效的端口、服务与富规则。这一步必须做,否则可能删错zone——比如你实际在work zone里开了端口,却在public里删,毫无效果。
若输出中包含ports: 8080/tcp,说明目标端口确实在当前活跃配置中;若没看到,再用firewall-cmd --get-active-zones查清接口归属,然后对准zone重查:firewall-cmd --zone=work --list-all。
永久删除指定端口规则
方法一:直接永久移除(推荐)
运行sudo firewall-cmd --permanent --remove-port=8080/tcp。注意:这里必须带--permanent,否则只是临时删掉,重启firewalld或系统后规则自动恢复。
方法二:先删运行时,再删永久配置(适合调试)
先执行sudo firewall-cmd --remove-port=8080/tcp让端口立刻不可访问;再补上sudo firewall-cmd --permanent --remove-port=8080/tcp保证持久化。两步缺一不可,漏掉永久操作等于白干。
【删除命令中的protocol(如/tcp)不可省略】。如果当初是用--add-port=8080/udp加的,现在删就必须写--remove-port=8080/udp,混用会报错“no match”。
重载配置使删除生效
第一步:执行sudo firewall-cmd --reload。这一步把磁盘上修改后的永久配置加载进内核,让--remove-port真正落地。
第二步:验证是否删除成功→运行sudo firewall-cmd --query-port=8080/tcp。返回no即成功;返回yes说明还在列表里,要回头检查zone是否选对、protocol是否匹配、是否漏了--permanent。
第三步:用sudo firewall-cmd --list-ports快速扫一眼,确认8080/tcp已从输出中消失。

















