<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://md5.pw/index.php?action=history&amp;feed=atom&amp;title=Bandwagon%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%A6%82%E4%BD%95%E6%94%BE%E8%A1%8C%E4%B8%8E%E5%B1%8F%E8%94%BD%E7%89%B9%E5%AE%9A%E7%AB%AF%E5%8F%A3</id>
	<title>Bandwagon服务器如何放行与屏蔽特定端口 - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://md5.pw/index.php?action=history&amp;feed=atom&amp;title=Bandwagon%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%A6%82%E4%BD%95%E6%94%BE%E8%A1%8C%E4%B8%8E%E5%B1%8F%E8%94%BD%E7%89%B9%E5%AE%9A%E7%AB%AF%E5%8F%A3"/>
	<link rel="alternate" type="text/html" href="https://md5.pw/index.php?title=Bandwagon%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%A6%82%E4%BD%95%E6%94%BE%E8%A1%8C%E4%B8%8E%E5%B1%8F%E8%94%BD%E7%89%B9%E5%AE%9A%E7%AB%AF%E5%8F%A3&amp;action=history"/>
	<updated>2026-05-06T13:19:39Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://md5.pw/index.php?title=Bandwagon%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%A6%82%E4%BD%95%E6%94%BE%E8%A1%8C%E4%B8%8E%E5%B1%8F%E8%94%BD%E7%89%B9%E5%AE%9A%E7%AB%AF%E5%8F%A3&amp;diff=1327&amp;oldid=prev</id>
		<title>Lan：​Bandwagon服务器如何放行和屏蔽特定端口</title>
		<link rel="alternate" type="text/html" href="https://md5.pw/index.php?title=Bandwagon%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%A6%82%E4%BD%95%E6%94%BE%E8%A1%8C%E4%B8%8E%E5%B1%8F%E8%94%BD%E7%89%B9%E5%AE%9A%E7%AB%AF%E5%8F%A3&amp;diff=1327&amp;oldid=prev"/>
		<updated>2026-02-02T06:49:23Z</updated>

		<summary type="html">&lt;p&gt;Bandwagon服务器如何放行和屏蔽特定端口&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;由于搬瓦工的服务器架构设计旨在提供最大的灵活性，所以默认情况下未配置外部安全组（Security Group）。这意味着你的服务器直接暴露在公网环境中。&lt;br /&gt;
&lt;br /&gt;
为了保障你的数据安全，防止恶意扫描和攻击，建议在系统内部配置防火墙。本教程将教你如何使用Linux 系统中强大且高效的防火墙工具 —— Nftables，来实现端口放行与屏蔽。&amp;lt;blockquote&amp;gt;注意： 在进行任何防火墙操作前，请务必确保您当前的 SSH 连接端口（默认为 22）已被放行，否则您可能会将自己锁定在服务器之外！&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 什么是 Nftables？ ==&lt;br /&gt;
Nftables 是 Linux 内核的新一代包过滤框架，旨在替代老旧的 &amp;lt;code&amp;gt;iptables&amp;lt;/code&amp;gt;。它拥有更高的性能、更清晰的语法以及原子操作支持，是维护服务器安全的首选工具。（想要深入了解也可以查阅下面提供的维基百科资料）&amp;lt;blockquote&amp;gt;[[wikipedia:Nftables|Nftables 维基百科]]&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 第一部分：Debian / Ubuntu 系列安装指南 ==&lt;br /&gt;
本节适用于 Debian 10/11/12 及 Ubuntu 20.04/22.04/24.04 等系统。&lt;br /&gt;
&lt;br /&gt;
=== 1. 更新系统组件 ===&lt;br /&gt;
在安装任何软件之前，记得使用下面命令保持系统源的最新状态。&lt;br /&gt;
&lt;br /&gt;
 sudo apt update &amp;amp;&amp;amp; sudo apt upgrade -y&amp;lt;/code&amp;gt;&lt;br /&gt;
[[File:56487.png|center|thumb|900x900px]]&lt;br /&gt;
&lt;br /&gt;
=== 2. 安装 Nftables ===&lt;br /&gt;
Debian 和 Ubuntu 的仓库中默认包含 nftables。&lt;br /&gt;
&lt;br /&gt;
 sudo apt install nftables -y&amp;lt;/code&amp;gt;&lt;br /&gt;
[[File:564987.png|center|thumb|900x900px]]&lt;br /&gt;
&lt;br /&gt;
=== 3. 启用并开机自启 ===&lt;br /&gt;
安装完成后，我们需要启用服务，使其在服务器重启后依然生效。&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl enable nftables&lt;br /&gt;
 sudo systemctl start nftables&amp;lt;/code&amp;gt;&lt;br /&gt;
[[File:89678.png|center|thumb|900x900px]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 第二部分：CentOS Stream 系列安装指南 ==&lt;br /&gt;
本节适用于 CentOS Stream 8/9 等系统。 注意： CentOS 默认通常使用 &amp;lt;code&amp;gt;firewalld&amp;lt;/code&amp;gt; 作为防火墙前端。为了使用纯粹的 &amp;lt;code&amp;gt;nftables&amp;lt;/code&amp;gt;，我们需要先禁用 &amp;lt;code&amp;gt;firewalld&amp;lt;/code&amp;gt; 以避免冲突。&lt;br /&gt;
&lt;br /&gt;
=== 1. 更新系统组件 ===&lt;br /&gt;
&lt;br /&gt;
 sudo dnf update -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. 移除 Firewalld (关键步骤) ===&lt;br /&gt;
为了防止规则冲突，我们先停止并禁用 firewalld。&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl stop firewalld&lt;br /&gt;
 sudo systemctl disable firewalld&lt;br /&gt;
 # 可选：如果你确定不再需要它，可以卸载&lt;br /&gt;
 sudo dnf remove firewalld -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. 安装 Nftables ===&lt;br /&gt;
 sudo dnf install nftables -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. 启用并开机自启 ===&lt;br /&gt;
 sudo systemctl enable nftables&lt;br /&gt;
 sudo systemctl start nftables&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 第三部分：Rocky Linux / AlmaLinux 系列安装指南 ==&lt;br /&gt;
Rocky Linux 和 AlmaLinux 作为 RHEL 的下游发行版，操作逻辑与 CentOS 类似，同样需要注意清理预装的防火墙管理工具。&lt;br /&gt;
&lt;br /&gt;
=== 1. 更新系统组件 ===&lt;br /&gt;
 sudo dnf update -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. 清理预装的 Firewalld ===&lt;br /&gt;
 sudo systemctl stop firewalld&lt;br /&gt;
 sudo systemctl disable firewalld&lt;br /&gt;
 # 建议卸载以保持环境纯净&lt;br /&gt;
 sudo dnf remove firewalld -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. 安装 Nftables ===&lt;br /&gt;
 sudo dnf install nftables -y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. 启用并开机自启 ===&lt;br /&gt;
 sudo systemctl enable nftables&lt;br /&gt;
 sudo systemctl start nftables&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 第四部分：Nftables 通用教程 ==&lt;br /&gt;
无论使用上述哪种系统，Nftables 的配置文件路径通常统一为 &amp;lt;code&amp;gt;/etc/nftables.conf&amp;lt;/code&amp;gt;。我们将通过修改这个文件来实现“默认拒绝所有，仅放行特定端口”的安全策略。&lt;br /&gt;
&lt;br /&gt;
=== 1. 备份默认配置 ===&lt;br /&gt;
在修改前，先备份原始文件。&lt;br /&gt;
 sudo cp /etc/nftables.conf /etc/nftables.conf.bak&amp;lt;/code&amp;gt;&lt;br /&gt;
[[File:789624.png|center|thumb|900x900px]]&lt;br /&gt;
&lt;br /&gt;
=== 2. 编写安全规则（核心步骤） ===&lt;br /&gt;
使用文本编辑器（如 &amp;lt;code&amp;gt;nano&amp;lt;/code&amp;gt; 或 &amp;lt;code&amp;gt;vim&amp;lt;/code&amp;gt;）打开配置文件：&lt;br /&gt;
 sudo nano /etc/nftables.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
[[File:78945.png|center|thumb|900x900px]]&lt;br /&gt;
清空文件内容，并复制以下推荐配置模板。这个模板会自动放行 SSH 端口，并拒绝其他非必要的入站流量。&lt;br /&gt;
 #!/usr/sbin/nft -f&lt;br /&gt;
 &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;flush&amp;#039;&amp;#039;&amp;#039; ruleset&lt;br /&gt;
 &lt;br /&gt;
 table inet filter {&lt;br /&gt;
     &amp;#039;&amp;#039;&amp;#039;chain&amp;#039;&amp;#039;&amp;#039; input {&lt;br /&gt;
         &amp;#039;&amp;#039;&amp;#039;type&amp;#039;&amp;#039;&amp;#039; filter hook input priority 0; &amp;#039;&amp;#039;&amp;#039;policy&amp;#039;&amp;#039;&amp;#039; drop;&lt;br /&gt;
 &lt;br /&gt;
         # 1. 允许本地回环接口 (Localhost)&lt;br /&gt;
         &amp;#039;&amp;#039;&amp;#039;iifname&amp;#039;&amp;#039;&amp;#039; &amp;quot;lo&amp;quot; accept&lt;br /&gt;
 &lt;br /&gt;
         # 2. 允许已建立的连接和相关流量 (比如你主动访问外网的返回数据)&lt;br /&gt;
         ct state established,related accept&lt;br /&gt;
 &lt;br /&gt;
         # 3. ICMP (Ping) 设置：允许被 Ping (可选，如果不想被 Ping 可改为 drop)&lt;br /&gt;
         ip protocol icmp accept&lt;br /&gt;
         ip6 nexthdr icmpv6 accept&lt;br /&gt;
 &lt;br /&gt;
         # 4. === 关键端口放行区 ===&lt;br /&gt;
       &lt;br /&gt;
         # [必须] 放行 SSH 端口 (默认22，如果你改了端口请修改这里)&lt;br /&gt;
         tcp dport 22 accept&lt;br /&gt;
 &lt;br /&gt;
         # [示例] 放行 Web 服务端口 (HTTP/HTTPS)&lt;br /&gt;
         # tcp dport { 80, 443 } accept&lt;br /&gt;
       &lt;br /&gt;
         # [示例] 这是一个被屏蔽的端口演示 (由于默认策略是 drop，不写就是屏蔽，但也可以显式拒绝)&lt;br /&gt;
         # tcp dport 8080 reject&lt;br /&gt;
     }&lt;br /&gt;
   &lt;br /&gt;
     chain forward {&lt;br /&gt;
         &amp;#039;&amp;#039;&amp;#039;type&amp;#039;&amp;#039;&amp;#039; filter hook forward priority 0; &amp;#039;&amp;#039;&amp;#039;policy&amp;#039;&amp;#039;&amp;#039; drop;&lt;br /&gt;
     }&lt;br /&gt;
   &lt;br /&gt;
     &amp;#039;&amp;#039;&amp;#039;chain&amp;#039;&amp;#039;&amp;#039; output {&lt;br /&gt;
         &amp;#039;&amp;#039;&amp;#039;type&amp;#039;&amp;#039;&amp;#039; filter hook output priority 0; &amp;#039;&amp;#039;&amp;#039;policy&amp;#039;&amp;#039;&amp;#039; accept;&lt;br /&gt;
     }&lt;br /&gt;
 }&amp;lt;/code&amp;gt;&lt;br /&gt;
[[File:0af2.png|center|thumb|900x900px]]&lt;br /&gt;
配置详解：&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;policy drop;&amp;lt;/code&amp;gt;：这是最关键的一行。它意味着除了你在下面明确允许的，其他所有流量都会被丢弃。这是最安全的“白名单”模式。&lt;br /&gt;
* &amp;lt;code&amp;gt;tcp dport 22 accept&amp;lt;/code&amp;gt;：务必保留此行，否则会断开 SSH 连接。&lt;br /&gt;
&lt;br /&gt;
=== 3. 应用配置 ===&lt;br /&gt;
保存文件后（在 nano 中按 &amp;lt;code&amp;gt;Ctrl+O&amp;lt;/code&amp;gt; 回车保存，&amp;lt;code&amp;gt;Ctrl+X&amp;lt;/code&amp;gt; 退出），运行以下命令重载配置，使其立即生效：&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl reload nftables&amp;lt;/code&amp;gt;&lt;br /&gt;
如果命令没有报错，说明防火墙已成功运行。&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 第五部分：日常管理与操作 ==&lt;br /&gt;
&lt;br /&gt;
=== 如何放行新的端口？ ===&lt;br /&gt;
比如你安装了一个面板，需要放行 &amp;lt;code&amp;gt;8888&amp;lt;/code&amp;gt; 端口。&lt;br /&gt;
&lt;br /&gt;
# 编辑 &amp;lt;code&amp;gt;/etc/nftables.conf&amp;lt;/code&amp;gt;。&lt;br /&gt;
# 在 &amp;lt;code&amp;gt;chain input&amp;lt;/code&amp;gt; 中添加一行：&amp;lt;code&amp;gt;tcp dport 8888 accept&amp;lt;/code&amp;gt;。&lt;br /&gt;
# 运行 &amp;lt;code&amp;gt;sudo systemctl reload nftables&amp;lt;/code&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
=== 如何屏蔽特定 IP？ ===&lt;br /&gt;
如果您发现某个 IP (例如 &amp;lt;code&amp;gt;192.168.1.100&amp;lt;/code&amp;gt;) 在恶意扫描你的服务器，可以在配置文件中 SSH 规则之前添加：&lt;br /&gt;
&lt;br /&gt;
代码段&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;ip&amp;#039;&amp;#039;&amp;#039; saddr 192.168.1.100 drop&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 如何屏蔽特定端口？ ===&lt;br /&gt;
如果你使用的是上述“白名单模式”（Policy Drop），只需要删除对应的 &amp;lt;code&amp;gt;accept&amp;lt;/code&amp;gt; 规则即可自动屏蔽。 如果你使用的是“黑名单模式”（Policy Accept），则需要显式添加：&lt;br /&gt;
&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;tcp&amp;#039;&amp;#039;&amp;#039; d&amp;#039;&amp;#039;&amp;#039;port&amp;#039;&amp;#039;&amp;#039; 3306 drop&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 最后 ==&lt;br /&gt;
通过以上步骤，你已经在没有安全组的情况下，为你的 VPS 建立了一道坚固的防线。Nftables 的强大之处在于其灵活性，你可以根据业务需求编写更加复杂的流量转发和限流规则。&lt;br /&gt;
[[Category:300 VPS 设置与管理 — VPS Setup and Management]]&lt;/div&gt;</summary>
		<author><name>Lan</name></author>
	</entry>
</feed>