1. 问题现象与根源剖析最近在服务器上折腾发现一个挺有意思但又让人头疼的问题明明用命令行工具ufw把某个端口给关了但登录到宝塔面板的“安全”页面一看那个端口居然还堂而皇之地显示为“放行”状态。反过来也一样在宝塔面板里操作开关端口用sudo ufw status命令查看规则可能根本没变。这种“表里不一”的情况不仅让管理变得混乱更埋下了安全风险——你以为关了的门其实还敞开着。这个问题本质上不是 Bug而是两套防火墙管理系统在“各管各的”。宝塔面板为了用户操作方便自己实现了一套基于iptables/nftables的防火墙规则管理逻辑。而 UFW (Uncomplicated Firewall) 是 Ubuntu/Debian 系统上一个广受欢迎的命令行防火墙配置工具它实际上也是iptables/nftables的前端管理器。当你在宝塔面板里点击“放行端口”时它会在系统的iptables规则链里插入自己的规则当你用ufw allow 80命令时UFW 也会在iptables的规则链里插入它管理的规则。如果这两者操作的规则链优先级、顺序没有协调好或者规则互相覆盖、冲突就会导致显示和实际生效情况不一致。更深入一层这涉及到 Linux 防火墙的底层架构。无论是 UFW 还是宝塔最终都是在操作 Netfilter 这个内核框架通过iptables旧版或nftables新版工具来设定规则。规则是有顺序的数据包会按顺序匹配规则一旦匹配成功就执行对应动作如 ACCEPT, DROP。如果宝塔添加的接受ACCEPT规则在 UFW 添加的拒绝DROP规则之前那么数据包到了宝塔的规则就放行了根本走不到 UFW 的拒绝规则即使 UFW 显示状态是“拒绝”。这就是显示不同步的核心原因两者对底层规则集的视图和修改没有同步机制。2. 核心思路统一管理入口要彻底解决这个问题最根本、最推荐的方法就是只使用一个防火墙管理工具并让另一个工具彻底“靠边站”。双线操作是混乱的根源。2.1 方案选择宝塔为主 vs UFW 为主你需要做一个抉择是信任并完全使用宝塔面板的防火墙功能还是继续使用更原生、更透明的 UFW。选择宝塔防火墙优点图形化操作对新手极其友好与宝塔其他功能网站、数据库、FTP深度集成一键放行相关服务端口非常方便规则以应用为中心易于理解。缺点规则生成逻辑相对黑盒排查复杂问题时需要到命令行下查看原始iptables规则在纯命令行环境下管理服务器时不方便。适合人群主要依赖宝塔面板进行服务器运维的站长、应用部署人员。选择 UFW优点轻量、透明是 Ubuntu/Debian 的“亲儿子”文档和社区支持完善所有规则通过命令行管理易于脚本化和自动化规则结构清晰便于高级用户进行精细控制。缺点需要记忆命令对新手有学习门槛与宝塔内的应用状态无法自动同步。适合人群习惯命令行操作、追求清晰明了规则控制的运维人员、开发者。我的建议是如果你已经重度使用宝塔那么就以宝塔的防火墙为唯一管理入口并禁用 UFW 的自动规则管理。这样能最大化利用宝塔的便利性避免冲突。下面我们就以这个方案为主线展开详细的解决步骤。2.2 底层规则查看与理解在动手之前我们先学会如何查看最底层的防火墙规则这是诊断一切问题的“火眼金睛”。打开你的服务器终端。查看当前所有iptables规则sudo iptables -L -n --line-numbers这个命令非常重要-L列出规则。-n用数字形式显示端口和IP不进行域名解析速度更快、更清晰。--line-numbers显示每条规则的行号这在后续删除特定规则时至关重要。你会看到类似下面的输出结构重点关注Chain INPUT入站流量Chain INPUT (policy DROP) num target prot opt source destination 1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 2 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED 3 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 5 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 6 DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:3306这里你能看到所有规则的生效顺序。宝塔的规则通常会有bt-或panel-这样的链名或者集中在靠前的位置。UFW 的规则通常位于以ufw-开头的链中或者由ufw-链跳转过来。查看 UFW 的状态和它认为的规则sudo ufw status verbose这个命令显示的是 UFW自己管理的规则视图它可能和实际的iptables规则有出入。3. 实操步骤以宝塔为唯一防火墙管理器假设我们决定让宝塔面板全权负责防火墙以下是详细的操作流程。3.1 第一步全面禁用 UFW 的规则管理我们的目标不是卸载 UFW因为系统某些服务可能依赖它而是让它停止自动添加和管理iptables规则。禁用 UFW 服务sudo ufw disable执行后系统会提示“防火墙在系统启动时自动禁用”。这确保了重启后 UFW 也不会介入。重置 UFW 的所有规则sudo ufw --force reset这个命令非常关键它会清空 UFW 自己管理的所有规则并将 UFW 的默认策略设置为“拒绝禁用”。--force参数表示无需确认直接执行。执行后再用sudo ufw status查看应该显示Status: inactive。检查并清理残留的 UFW 链重要即使禁用了 UFW之前由它创建的iptables链可能仍然存在。我们需要手动清理。再次运行sudo iptables -L -n --line-numbers查找所有名称中包含ufw的链如ufw-before-input,ufw-after-input,ufw-user-input等。我们的目标是从默认的INPUT,FORWARD,OUTPUT链中删除所有跳转jump到 UFW 相关链的规则。例如在Chain INPUT中你可能会看到这样一条规则num target prot opt source destination 1 ufw-before-input all -- 0.0.0.0/0 0.0.0.0/0这条规则将所有入站流量先交给ufw-before-input链处理。我们需要删除它。注意前面--line-numbers显示的行号假设是第1行sudo iptables -D INPUT 1同样检查FORWARD和OUTPUT链删除所有target为ufw-开头链的规则。删除规则时务必小心最好先备份当前规则sudo iptables-save ~/iptables.backup。3.2 第二步在宝塔面板中重建规则现在底层规则已经清理UFW 也被“缴械”。我们需要在宝塔面板中重新配置我们需要的规则。登录宝塔面板进入“安全”页面。系统防火墙这里列出的是宝塔管理的端口规则。如果你之前因为不同步而混乱我建议先全部删除除了必须的SSH端口如22。重要提示操作前请确保你保留了至少一种可靠的服务器访问方式如通过云服务商的控制台VNC。误删SSH端口规则可能导致你被锁在服务器外面。重新添加规则根据你的业务需求逐一添加端口。例如Web服务80 (HTTP), 443 (HTTPS)宝塔面板8888默认建议修改数据库3306 (MySQL)但强烈建议不要直接对公网开放仅放行特定管理IP或通过SSH隧道访问。其他应用如 Redis (6379), FTP (20, 21)同样需要谨慎评估公网暴露的必要性。保存并生效每次添加或删除后宝塔会自动将规则写入iptables。3.3 第三步验证与固化配置配置完成后必须进行验证并确保配置在服务器重启后不会丢失。验证规则一致性在宝塔面板查看端口列表。在终端执行sudo iptables -L -n | grep -E ‘(dpt:80|dpt:443|dpt:22)’将端口号替换为你关心的查看对应端口的规则是否存在动作 (target) 是否是ACCEPT。使用telnet或nmap命令从外部网络扫描这些端口确认通断状态符合预期。例如nmap -p 22,80,443 你的服务器IP。防止 UFW 服务干扰虽然我们禁用了 UFW但它的 systemd 服务可能仍在。确保它不会开机启动sudo systemctl disable ufw sudo systemctl mask ufwmask命令比disable更彻底它会阻止服务被手动或间接启动。确保宝塔规则持久化宝塔面板通常会自动处理iptables规则的持久化保存到/etc/sysconfig/iptables或类似文件。但为了保险起见可以手动安装iptables-persistent包并保存当前由宝塔生成的良好规则# 对于 Debian/Ubuntu sudo apt-get install iptables-persistent -y # 安装过程中会询问是否保存当前规则选择“是”。 # 或者安装后手动保存 sudo netfilter-persistent save这样即使系统重启防火墙规则也会自动从宝塔配置中恢复。4. 备选方案与高级排查如果你是一个 UFW 的忠实用户希望以 UFW 为主那么思路是类似的只是方向相反在宝塔面板的“安全”页面关闭其防火墙功能通常有一个总开关然后完全通过ufw命令来管理端口。宝塔的某些功能如一键部署在放行端口时可能会提示手动在 UFW 中执行相应命令即可。4.1 高级问题排查技巧有时候问题可能没那么简单。这里分享几个排查“疑难杂症”的技巧规则顺序冲突使用sudo iptables -L -n --line-numbers仔细查看INPUT链。一条ACCEPT tcp dpt:8080的规则如果排在一条DROP all规则后面那么8080端口的ACCEPT永远不会生效。你需要调整规则顺序或者确保ACCEPT规则在更通用的DROP规则之前。多网卡或IP绑定检查规则是否限定了网卡 (-i eth0) 或源IP。宝塔添加的规则有时会绑定到服务器的内网IP或特定网卡导致你从公网访问时规则不匹配。确保放行规则的目标地址是0.0.0.0/0所有地址。Docker 等容器的影响如果你安装了 Docker它会创建自己的iptables链如DOCKER,DOCKER-USER。容器映射的端口会通过这些链来处理可能会绕过你传统的INPUT链规则。管理 Docker 容器的端口暴露最好通过 Docker 本身的命令-p或compose.yml文件来控制并理解DOCKER-USER链的用法。云服务商安全组这是最容易被忽略的一层阿里云、腾讯云等云服务器在控制台都有一层“安全组”或“防火墙”功能。它的优先级高于操作系统内部的防火墙。如果云安全组拒绝了某个端口你在服务器里怎么放行都是没用的。务必保持云安全组和系统防火墙规则的一致。4.2 实操心得与避坑指南操作前备份规则在执行任何大规模删除或重置规则的操作前务必使用sudo iptables-save ~/iptables.backup.$(date %Y%m%d)命令备份。这是你救命的“后悔药”。修改默认SSH端口为了安全建议将SSH默认的22端口修改为一个高位端口如 23456并在宝塔和云安全组中同时放行新端口。切记在关闭22端口前一定要用新端口测试连接成功可以同时放行新旧端口一段时间待稳定后再关闭22端口。宝塔的“禁PING”功能宝塔面板有一个“禁PING”开关它实际上是修改了icmp协议的规则。如果你发现服务器 ping 不通了除了检查端口别忘了这里。关注规则数量iptables规则是线性匹配的规则数量过多会影响网络性能。定期清理无用、过期的规则。宝塔面板的规则管理界面比较清晰便于做这类维护。从“拒绝所有”开始最安全的防火墙策略是默认拒绝所有入站连接然后只放行必要的端口。无论是宝塔还是 UFW初始配置都应该遵循这个原则。宝塔在安装后通常会放行一些常见端口你需要根据实际情况收紧策略。5. 总结与最终建议Linux防火墙UFW和宝塔显示不同步的问题根源于两套工具对底层iptables规则集的并行且不协调的管理。解决之道在于“政令统一”。对于绝大多数使用宝塔面板的用户我最坚定的建议是全面转向并使用宝塔面板内置的防火墙管理功能并按照本文的步骤彻底禁用和清理 UFW 的规则管理能力。这套图形化工具经过封装对于Web服务相关的端口管理已经足够直观和强大能覆盖90%以上的应用场景。将管理入口收敛到一点是消除混乱、提升运维效率和系统安全性的最佳实践。整个处理流程可以概括为查看现状 - 选择主力 - 清理副手 - 重建规则 - 验证固化。过程中熟练掌握sudo iptables -L -n --line-numbers这个命令像看地图一样审视你的防火墙规则是独立解决所有网络层问题的核心技能。最后记住防火墙配置是服务器安全的第一道关卡。每一次端口的放行都应该经过深思熟虑。在宝塔面板里轻松点击“放行”的同时心里要清楚地知道这扇门在真实的网络世界里被打开了。保持警惕定期审计你的端口列表让安全不仅仅停留在“显示”上而是实实在在地生效。
解决宝塔面板与UFW防火墙规则冲突的完整指南
1. 问题现象与根源剖析最近在服务器上折腾发现一个挺有意思但又让人头疼的问题明明用命令行工具ufw把某个端口给关了但登录到宝塔面板的“安全”页面一看那个端口居然还堂而皇之地显示为“放行”状态。反过来也一样在宝塔面板里操作开关端口用sudo ufw status命令查看规则可能根本没变。这种“表里不一”的情况不仅让管理变得混乱更埋下了安全风险——你以为关了的门其实还敞开着。这个问题本质上不是 Bug而是两套防火墙管理系统在“各管各的”。宝塔面板为了用户操作方便自己实现了一套基于iptables/nftables的防火墙规则管理逻辑。而 UFW (Uncomplicated Firewall) 是 Ubuntu/Debian 系统上一个广受欢迎的命令行防火墙配置工具它实际上也是iptables/nftables的前端管理器。当你在宝塔面板里点击“放行端口”时它会在系统的iptables规则链里插入自己的规则当你用ufw allow 80命令时UFW 也会在iptables的规则链里插入它管理的规则。如果这两者操作的规则链优先级、顺序没有协调好或者规则互相覆盖、冲突就会导致显示和实际生效情况不一致。更深入一层这涉及到 Linux 防火墙的底层架构。无论是 UFW 还是宝塔最终都是在操作 Netfilter 这个内核框架通过iptables旧版或nftables新版工具来设定规则。规则是有顺序的数据包会按顺序匹配规则一旦匹配成功就执行对应动作如 ACCEPT, DROP。如果宝塔添加的接受ACCEPT规则在 UFW 添加的拒绝DROP规则之前那么数据包到了宝塔的规则就放行了根本走不到 UFW 的拒绝规则即使 UFW 显示状态是“拒绝”。这就是显示不同步的核心原因两者对底层规则集的视图和修改没有同步机制。2. 核心思路统一管理入口要彻底解决这个问题最根本、最推荐的方法就是只使用一个防火墙管理工具并让另一个工具彻底“靠边站”。双线操作是混乱的根源。2.1 方案选择宝塔为主 vs UFW 为主你需要做一个抉择是信任并完全使用宝塔面板的防火墙功能还是继续使用更原生、更透明的 UFW。选择宝塔防火墙优点图形化操作对新手极其友好与宝塔其他功能网站、数据库、FTP深度集成一键放行相关服务端口非常方便规则以应用为中心易于理解。缺点规则生成逻辑相对黑盒排查复杂问题时需要到命令行下查看原始iptables规则在纯命令行环境下管理服务器时不方便。适合人群主要依赖宝塔面板进行服务器运维的站长、应用部署人员。选择 UFW优点轻量、透明是 Ubuntu/Debian 的“亲儿子”文档和社区支持完善所有规则通过命令行管理易于脚本化和自动化规则结构清晰便于高级用户进行精细控制。缺点需要记忆命令对新手有学习门槛与宝塔内的应用状态无法自动同步。适合人群习惯命令行操作、追求清晰明了规则控制的运维人员、开发者。我的建议是如果你已经重度使用宝塔那么就以宝塔的防火墙为唯一管理入口并禁用 UFW 的自动规则管理。这样能最大化利用宝塔的便利性避免冲突。下面我们就以这个方案为主线展开详细的解决步骤。2.2 底层规则查看与理解在动手之前我们先学会如何查看最底层的防火墙规则这是诊断一切问题的“火眼金睛”。打开你的服务器终端。查看当前所有iptables规则sudo iptables -L -n --line-numbers这个命令非常重要-L列出规则。-n用数字形式显示端口和IP不进行域名解析速度更快、更清晰。--line-numbers显示每条规则的行号这在后续删除特定规则时至关重要。你会看到类似下面的输出结构重点关注Chain INPUT入站流量Chain INPUT (policy DROP) num target prot opt source destination 1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 2 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED 3 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 5 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 6 DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:3306这里你能看到所有规则的生效顺序。宝塔的规则通常会有bt-或panel-这样的链名或者集中在靠前的位置。UFW 的规则通常位于以ufw-开头的链中或者由ufw-链跳转过来。查看 UFW 的状态和它认为的规则sudo ufw status verbose这个命令显示的是 UFW自己管理的规则视图它可能和实际的iptables规则有出入。3. 实操步骤以宝塔为唯一防火墙管理器假设我们决定让宝塔面板全权负责防火墙以下是详细的操作流程。3.1 第一步全面禁用 UFW 的规则管理我们的目标不是卸载 UFW因为系统某些服务可能依赖它而是让它停止自动添加和管理iptables规则。禁用 UFW 服务sudo ufw disable执行后系统会提示“防火墙在系统启动时自动禁用”。这确保了重启后 UFW 也不会介入。重置 UFW 的所有规则sudo ufw --force reset这个命令非常关键它会清空 UFW 自己管理的所有规则并将 UFW 的默认策略设置为“拒绝禁用”。--force参数表示无需确认直接执行。执行后再用sudo ufw status查看应该显示Status: inactive。检查并清理残留的 UFW 链重要即使禁用了 UFW之前由它创建的iptables链可能仍然存在。我们需要手动清理。再次运行sudo iptables -L -n --line-numbers查找所有名称中包含ufw的链如ufw-before-input,ufw-after-input,ufw-user-input等。我们的目标是从默认的INPUT,FORWARD,OUTPUT链中删除所有跳转jump到 UFW 相关链的规则。例如在Chain INPUT中你可能会看到这样一条规则num target prot opt source destination 1 ufw-before-input all -- 0.0.0.0/0 0.0.0.0/0这条规则将所有入站流量先交给ufw-before-input链处理。我们需要删除它。注意前面--line-numbers显示的行号假设是第1行sudo iptables -D INPUT 1同样检查FORWARD和OUTPUT链删除所有target为ufw-开头链的规则。删除规则时务必小心最好先备份当前规则sudo iptables-save ~/iptables.backup。3.2 第二步在宝塔面板中重建规则现在底层规则已经清理UFW 也被“缴械”。我们需要在宝塔面板中重新配置我们需要的规则。登录宝塔面板进入“安全”页面。系统防火墙这里列出的是宝塔管理的端口规则。如果你之前因为不同步而混乱我建议先全部删除除了必须的SSH端口如22。重要提示操作前请确保你保留了至少一种可靠的服务器访问方式如通过云服务商的控制台VNC。误删SSH端口规则可能导致你被锁在服务器外面。重新添加规则根据你的业务需求逐一添加端口。例如Web服务80 (HTTP), 443 (HTTPS)宝塔面板8888默认建议修改数据库3306 (MySQL)但强烈建议不要直接对公网开放仅放行特定管理IP或通过SSH隧道访问。其他应用如 Redis (6379), FTP (20, 21)同样需要谨慎评估公网暴露的必要性。保存并生效每次添加或删除后宝塔会自动将规则写入iptables。3.3 第三步验证与固化配置配置完成后必须进行验证并确保配置在服务器重启后不会丢失。验证规则一致性在宝塔面板查看端口列表。在终端执行sudo iptables -L -n | grep -E ‘(dpt:80|dpt:443|dpt:22)’将端口号替换为你关心的查看对应端口的规则是否存在动作 (target) 是否是ACCEPT。使用telnet或nmap命令从外部网络扫描这些端口确认通断状态符合预期。例如nmap -p 22,80,443 你的服务器IP。防止 UFW 服务干扰虽然我们禁用了 UFW但它的 systemd 服务可能仍在。确保它不会开机启动sudo systemctl disable ufw sudo systemctl mask ufwmask命令比disable更彻底它会阻止服务被手动或间接启动。确保宝塔规则持久化宝塔面板通常会自动处理iptables规则的持久化保存到/etc/sysconfig/iptables或类似文件。但为了保险起见可以手动安装iptables-persistent包并保存当前由宝塔生成的良好规则# 对于 Debian/Ubuntu sudo apt-get install iptables-persistent -y # 安装过程中会询问是否保存当前规则选择“是”。 # 或者安装后手动保存 sudo netfilter-persistent save这样即使系统重启防火墙规则也会自动从宝塔配置中恢复。4. 备选方案与高级排查如果你是一个 UFW 的忠实用户希望以 UFW 为主那么思路是类似的只是方向相反在宝塔面板的“安全”页面关闭其防火墙功能通常有一个总开关然后完全通过ufw命令来管理端口。宝塔的某些功能如一键部署在放行端口时可能会提示手动在 UFW 中执行相应命令即可。4.1 高级问题排查技巧有时候问题可能没那么简单。这里分享几个排查“疑难杂症”的技巧规则顺序冲突使用sudo iptables -L -n --line-numbers仔细查看INPUT链。一条ACCEPT tcp dpt:8080的规则如果排在一条DROP all规则后面那么8080端口的ACCEPT永远不会生效。你需要调整规则顺序或者确保ACCEPT规则在更通用的DROP规则之前。多网卡或IP绑定检查规则是否限定了网卡 (-i eth0) 或源IP。宝塔添加的规则有时会绑定到服务器的内网IP或特定网卡导致你从公网访问时规则不匹配。确保放行规则的目标地址是0.0.0.0/0所有地址。Docker 等容器的影响如果你安装了 Docker它会创建自己的iptables链如DOCKER,DOCKER-USER。容器映射的端口会通过这些链来处理可能会绕过你传统的INPUT链规则。管理 Docker 容器的端口暴露最好通过 Docker 本身的命令-p或compose.yml文件来控制并理解DOCKER-USER链的用法。云服务商安全组这是最容易被忽略的一层阿里云、腾讯云等云服务器在控制台都有一层“安全组”或“防火墙”功能。它的优先级高于操作系统内部的防火墙。如果云安全组拒绝了某个端口你在服务器里怎么放行都是没用的。务必保持云安全组和系统防火墙规则的一致。4.2 实操心得与避坑指南操作前备份规则在执行任何大规模删除或重置规则的操作前务必使用sudo iptables-save ~/iptables.backup.$(date %Y%m%d)命令备份。这是你救命的“后悔药”。修改默认SSH端口为了安全建议将SSH默认的22端口修改为一个高位端口如 23456并在宝塔和云安全组中同时放行新端口。切记在关闭22端口前一定要用新端口测试连接成功可以同时放行新旧端口一段时间待稳定后再关闭22端口。宝塔的“禁PING”功能宝塔面板有一个“禁PING”开关它实际上是修改了icmp协议的规则。如果你发现服务器 ping 不通了除了检查端口别忘了这里。关注规则数量iptables规则是线性匹配的规则数量过多会影响网络性能。定期清理无用、过期的规则。宝塔面板的规则管理界面比较清晰便于做这类维护。从“拒绝所有”开始最安全的防火墙策略是默认拒绝所有入站连接然后只放行必要的端口。无论是宝塔还是 UFW初始配置都应该遵循这个原则。宝塔在安装后通常会放行一些常见端口你需要根据实际情况收紧策略。5. 总结与最终建议Linux防火墙UFW和宝塔显示不同步的问题根源于两套工具对底层iptables规则集的并行且不协调的管理。解决之道在于“政令统一”。对于绝大多数使用宝塔面板的用户我最坚定的建议是全面转向并使用宝塔面板内置的防火墙管理功能并按照本文的步骤彻底禁用和清理 UFW 的规则管理能力。这套图形化工具经过封装对于Web服务相关的端口管理已经足够直观和强大能覆盖90%以上的应用场景。将管理入口收敛到一点是消除混乱、提升运维效率和系统安全性的最佳实践。整个处理流程可以概括为查看现状 - 选择主力 - 清理副手 - 重建规则 - 验证固化。过程中熟练掌握sudo iptables -L -n --line-numbers这个命令像看地图一样审视你的防火墙规则是独立解决所有网络层问题的核心技能。最后记住防火墙配置是服务器安全的第一道关卡。每一次端口的放行都应该经过深思熟虑。在宝塔面板里轻松点击“放行”的同时心里要清楚地知道这扇门在真实的网络世界里被打开了。保持警惕定期审计你的端口列表让安全不仅仅停留在“显示”上而是实实在在地生效。