<?xml version="1.0"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>md5.pw  - 最近更改 [zh]</title>
		<link>https://md5.pw/index.php?title=Special:%E6%9C%80%E8%BF%91%E6%9B%B4%E6%94%B9</link>
		<description>用这个订阅源跟踪本wiki的最近更改。</description>
		<language>zh</language>
		<generator>MediaWiki 1.43.5</generator>
		<lastBuildDate>Sun, 12 Apr 2026 21:58:10 GMT</lastBuildDate>
		<item>
			<title>如何搭建 Kubernetes 一站式平台</title>
			<link>https://md5.pw/index.php?title=%E5%A6%82%E4%BD%95%E6%90%AD%E5%BB%BA_Kubernetes_%E4%B8%80%E7%AB%99%E5%BC%8F%E5%B9%B3%E5%8F%B0&amp;diff=1897&amp;oldid=1889</link>
			<guid isPermaLink="false">https://md5.pw/index.php?title=%E5%A6%82%E4%BD%95%E6%90%AD%E5%BB%BA_Kubernetes_%E4%B8%80%E7%AB%99%E5%BC%8F%E5%B9%B3%E5%8F%B0&amp;diff=1897&amp;oldid=1889</guid>
			<description>&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://md5.pw/index.php?title=%E5%A6%82%E4%BD%95%E6%90%AD%E5%BB%BA_Kubernetes_%E4%B8%80%E7%AB%99%E5%BC%8F%E5%B9%B3%E5%8F%B0&amp;amp;diff=1897&amp;amp;oldid=1889&quot;&gt;显示更改&lt;/a&gt;</description>
			<pubDate>Sun, 12 Apr 2026 20:25:56 GMT</pubDate>
			<dc:creator>Koud Wind</dc:creator>
			<comments>https://md5.pw/index.php?title=Talk:%E5%A6%82%E4%BD%95%E6%90%AD%E5%BB%BA_Kubernetes_%E4%B8%80%E7%AB%99%E5%BC%8F%E5%B9%B3%E5%8F%B0</comments>
		</item>
		<item>
			<title>如何搭建 Kubernetes 一站式平台</title>
			<link>https://md5.pw/index.php?title=%E5%A6%82%E4%BD%95%E6%90%AD%E5%BB%BA_Kubernetes_%E4%B8%80%E7%AB%99%E5%BC%8F%E5%B9%B3%E5%8F%B0&amp;diff=1889&amp;oldid=0</link>
			<guid isPermaLink="false">https://md5.pw/index.php?title=%E5%A6%82%E4%BD%95%E6%90%AD%E5%BB%BA_Kubernetes_%E4%B8%80%E7%AB%99%E5%BC%8F%E5%B9%B3%E5%8F%B0&amp;diff=1889&amp;oldid=0</guid>
			<description>&lt;p&gt;尚未完成&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;----&lt;br /&gt;
&lt;br /&gt;
== &amp;#039;&amp;#039;&amp;#039;1. 什么是 Kubernetes / k8s&amp;#039;&amp;#039;&amp;#039; ==&lt;br /&gt;
k8s 也就是 Kubernetes 是一个面向容器化应用的自动化管理平台, 核心职责是管理程序运行的环境, 包括 &amp;lt;code&amp;gt;部署应用/调度资源/维护副本/处理故障/对外暴露服务&amp;lt;/code&amp;gt;等等...&lt;br /&gt;
&lt;br /&gt;
对于初学者来说可以把它理解成一个专门管理容器集群的平台, 当你只有一个容器时也许还感觉不到它的必要性&lt;br /&gt;
&lt;br /&gt;
但当你需要同时运行多个服务, 需要让服务彼此通信, 需要保证应用异常后自动恢复, 甚至需要后续扩容到多台机器时 Kubernetes 的价值就会非常明显&lt;br /&gt;
&lt;br /&gt;
而本文要做的事情, 就是在一台主机上先搭建一个最小可运行的 Kubernetes 环境, 借助这个过程去理解 Kubernetes 是怎样从零开始被组织起来的&lt;br /&gt;
&lt;br /&gt;
为了易读性, 在这里会将 &amp;lt;code&amp;gt;Kubernetes&amp;lt;/code&amp;gt; 简称为 &amp;lt;code&amp;gt;k8s&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;#039;&amp;#039;&amp;#039;2. 环境说明&amp;#039;&amp;#039;&amp;#039; ==&lt;br /&gt;
运行 kubeadm 集群建议 control plane 节点至少具备 &amp;lt;code&amp;gt;2 Core CPU&amp;lt;/code&amp;gt; 和 &amp;lt;code&amp;gt;2 GiB&amp;lt;/code&amp;gt; 运存, 推荐购买搬瓦工的 [https://bandwagonhost.com/cart.php?a=add&amp;amp;pid=166 ECOMMERCE SLA] 套餐&lt;br /&gt;
&lt;br /&gt;
* 操作系统以 Debian13 为例&lt;br /&gt;
* 主机数量 1 台&lt;br /&gt;
* 使用 root 用户&lt;br /&gt;
* 主机承担 control plane 和 workload 调度&lt;br /&gt;
* k8s pod网段为 &amp;lt;code&amp;gt;10.10.0.0/16&amp;lt;/code&amp;gt; , service网段为 &amp;lt;code&amp;gt;192.168.0.0/16&amp;lt;/code&amp;gt;&lt;br /&gt;
* 使用 &amp;lt;code&amp;gt;Headlamp&amp;lt;/code&amp;gt; 管理k8s pods&lt;br /&gt;
&lt;br /&gt;
== &amp;#039;&amp;#039;&amp;#039;3. 前置准备&amp;#039;&amp;#039;&amp;#039; ==&lt;br /&gt;
&lt;br /&gt;
==== 3.1 加载模块并启用转发 ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat &amp;lt;&amp;lt;&amp;#039;EOF&amp;#039; | tee /etc/modules-load.d/k8s.conf&lt;br /&gt;
overlay&lt;br /&gt;
br_netfilter&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
modprobe overlay&lt;br /&gt;
modprobe br_netfilter&lt;br /&gt;
&lt;br /&gt;
cat &amp;lt;&amp;lt;&amp;#039;EOF&amp;#039; | tee /etc/sysctl.d/k8s.conf&lt;br /&gt;
net.bridge.bridge-nf-call-iptables = 1&lt;br /&gt;
net.bridge.bridge-nf-call-ip6tables = 1&lt;br /&gt;
net.ipv4.ip_forward = 1&lt;br /&gt;
net.ipv6.conf.all.forwarding = 1&lt;br /&gt;
EOF&lt;br /&gt;
sysctl --system&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 3.2 配置 hosts ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
tee -a /etc/hosts &amp;gt; /dev/null &amp;lt;&amp;lt;&amp;#039;EOF&amp;#039;&lt;br /&gt;
127.0.0.1 k8s-master&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 3.3 关闭 swap (可选) ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
swapoff -a&lt;br /&gt;
sed -ri &amp;#039;/\sswap\s/s/^/#/&amp;#039; /etc/fstab&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;#039;&amp;#039;&amp;#039;4. 安装 containerd&amp;#039;&amp;#039;&amp;#039; ==&lt;br /&gt;
更新软件源并安装 containerd 与 其他核心组件&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
apt update&lt;br /&gt;
apt install -y containerd apt-transport-https ca-certificates curl gpg&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;生成默认配置文件并修改配置文件, 这里为了防止后续可能报错, 修改了 &amp;lt;code&amp;gt;bin_dir&amp;lt;/code&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;mkdir -p /etc/containerd&lt;br /&gt;
containerd config default | tee /etc/containerd/config.toml &amp;gt; /dev/null&lt;br /&gt;
sed -i &amp;#039;s#bin_dir = &amp;quot;/usr/lib/cni&amp;quot;#bin_dir = &amp;quot;/opt/cni/bin&amp;quot;#&amp;#039; /etc/containerd/config.toml&lt;br /&gt;
sed -i &amp;#039;s/SystemdCgroup = false/SystemdCgroup = true/&amp;#039; /etc/containerd/config.toml&amp;lt;/syntaxhighlight&amp;gt;重启并设置自启&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
systemctl daemon-reload&lt;br /&gt;
systemctl restart containerd&lt;br /&gt;
systemctl enable containerd&lt;br /&gt;
systemctl status containerd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. 安装 kubeadm kubelet kubectl ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir -p -m 755 /etc/apt/keyrings&lt;br /&gt;
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.35/deb/Release.key | gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg&lt;br /&gt;
echo &amp;#039;deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.35/deb/ /&amp;#039; | tee /etc/apt/sources.list.d/kubernetes.list&lt;br /&gt;
apt-get update&lt;br /&gt;
apt-get install -y kubelet kubeadm kubectl&lt;br /&gt;
apt-mark hold kubelet kubeadm kubectl&lt;br /&gt;
systemctl enable --now kubelet&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;检查&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
kubeadm version&lt;br /&gt;
kubectl version --client&lt;br /&gt;
kubelet --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;#039;&amp;#039;&amp;#039;6. 初始化单节点 k8s 集群&amp;#039;&amp;#039;&amp;#039; ==&lt;br /&gt;
新建一个初始化配置&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir -p /main/k8s&lt;br /&gt;
nano /main/k8s/kubeadm-config.yaml&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;粘贴并自行修改配置后进行保存&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
apiVersion: kubeadm.k8s.io/v1beta4&lt;br /&gt;
kind: InitConfiguration&lt;br /&gt;
nodeRegistration:&lt;br /&gt;
  name: master&lt;br /&gt;
  criSocket: &amp;quot;unix:///run/containerd/containerd.sock&amp;quot;&lt;br /&gt;
localAPIEndpoint:&lt;br /&gt;
  advertiseAddress: &amp;lt;你的公网主机IP&amp;gt;&lt;br /&gt;
  bindPort: 6443&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
apiVersion: kubeadm.k8s.io/v1beta4&lt;br /&gt;
kind: ClusterConfiguration&lt;br /&gt;
kubernetesVersion: v1.35.0&lt;br /&gt;
networking:&lt;br /&gt;
  podSubnet: 10.10.0.0/16&lt;br /&gt;
  serviceSubnet: 192.168.0.0/16&lt;br /&gt;
  dnsDomain: cluster.local&lt;br /&gt;
&lt;br /&gt;
# 若开启了Swap需要解除此注释!&lt;br /&gt;
#---&lt;br /&gt;
#apiVersion: kubelet.config.k8s.io/v1beta1&lt;br /&gt;
#kind: KubeletConfiguration&lt;br /&gt;
#cgroupDriver: systemd&lt;br /&gt;
#failSwapOn: false&lt;br /&gt;
#memorySwap:&lt;br /&gt;
#  swapBehavior: LimitedSwap&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;开始初始化&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
kubeadm init --config /main/k8s/kubeadm-config.yaml&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;初始化完成后配置 kubectl&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir -p $HOME/.kube&lt;br /&gt;
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config&lt;br /&gt;
chown &amp;quot;$(id -u)&amp;quot;:&amp;quot;$(id -g)&amp;quot; $HOME/.kube/config&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;检查&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
kubectl get nodes&lt;br /&gt;
kubectl get pods -A&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;这时 master 大概率是 &amp;lt;code&amp;gt;NotReady&amp;lt;/code&amp;gt; 状态, 目前 CNI 还没有安装, CoreDNS 也通常不会处于 &amp;lt;code&amp;gt;Running&amp;lt;/code&amp;gt; 状态&lt;br /&gt;
&lt;br /&gt;
== &amp;#039;&amp;#039;&amp;#039;7. 安装 Helm&amp;#039;&amp;#039;&amp;#039; ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-4&lt;br /&gt;
chmod 700 get_helm.sh&lt;br /&gt;
./get_helm.sh&lt;br /&gt;
helm version&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 8. 安装 CNI 插件 ==&lt;br /&gt;
在资源紧凑的主机中我更推荐使用 &amp;lt;code&amp;gt;Flannel&amp;lt;/code&amp;gt; , 这里也会提供 &amp;lt;code&amp;gt;Calico&amp;lt;/code&amp;gt; 与 &amp;lt;code&amp;gt;Cilium&amp;lt;/code&amp;gt; 的安装, 根据应用场景自行选择其一&lt;br /&gt;
&lt;br /&gt;
资源占用: &amp;lt;code&amp;gt;Flannel&amp;lt;/code&amp;gt; &amp;lt;  &amp;lt;code&amp;gt;Calico&amp;lt;/code&amp;gt; &amp;lt; &amp;lt;code&amp;gt;Cilium&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 8.1 Flannel ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;kubectl create namespace kube-flannel&lt;br /&gt;
kubectl label namespace kube-flannel --overwrite pod-security.kubernetes.io/enforce=privileged&lt;br /&gt;
kubectl label namespace kube-flannel --overwrite pod-security.kubernetes.io/audit=privileged&lt;br /&gt;
kubectl label namespace kube-flannel --overwrite pod-security.kubernetes.io/warn=privileged&lt;br /&gt;
helm upgrade --install flannel -n kube-flannel --create-namespace --set podCidr=10.10.0.0/16 https://github.com/flannel-io/flannel/releases/download/v0.28.1/flannel.tgz&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 8.2 Calico ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;helm repo add projectcalico https://docs.tigera.io/calico/charts&lt;br /&gt;
helm repo update&lt;br /&gt;
kubectl create namespace tigera-operator&lt;br /&gt;
helm upgrade --install calico projectcalico/tigera-operator --version v3.31.4 --namespace tigera-operator --set installation.calicoNetwork.ipPools[0].cidr=10.10.0.0/16 --set installation.calicoNetwork.ipPools[0].encapsulation=VXLAN&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 8.3 Cilium ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
helm repo add cilium https://helm.cilium.io/&lt;br /&gt;
helm repo update&lt;br /&gt;
helm upgrade --install cilium cilium/cilium --version 1.19.1 --namespace kube-system&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;#039;&amp;#039;&amp;#039;检查CNI&amp;#039;&amp;#039;&amp;#039;&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
kubectl get nodes&lt;br /&gt;
kubectl get pods -A&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;节点状态从 &amp;lt;code&amp;gt;NotReady&amp;lt;/code&amp;gt; 变为 &amp;lt;code&amp;gt;Ready&amp;lt;/code&amp;gt; , CoreDNS 进入 &amp;lt;code&amp;gt;Running&amp;lt;/code&amp;gt; 状态&lt;/div&gt;</description>
			<pubDate>Sun, 12 Apr 2026 19:04:56 GMT</pubDate>
			<dc:creator>Koud Wind</dc:creator>
			<comments>https://md5.pw/index.php?title=Talk:%E5%A6%82%E4%BD%95%E6%90%AD%E5%BB%BA_Kubernetes_%E4%B8%80%E7%AB%99%E5%BC%8F%E5%B9%B3%E5%8F%B0</comments>
		</item>
		<item>
			<title>如何避免 Docker 端口意外暴露</title>
			<link>https://md5.pw/index.php?title=%E5%A6%82%E4%BD%95%E9%81%BF%E5%85%8D_Docker_%E7%AB%AF%E5%8F%A3%E6%84%8F%E5%A4%96%E6%9A%B4%E9%9C%B2&amp;diff=1888&amp;oldid=1886</link>
			<guid isPermaLink="false">https://md5.pw/index.php?title=%E5%A6%82%E4%BD%95%E9%81%BF%E5%85%8D_Docker_%E7%AB%AF%E5%8F%A3%E6%84%8F%E5%A4%96%E6%9A%B4%E9%9C%B2&amp;diff=1888&amp;oldid=1886</guid>
			<description>&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2026年4月12日 (日) 08:43的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-multi&quot; lang=&quot;zh&quot;&gt;（未显示同一用户的1个中间版本）&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l30&quot;&gt;第30行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第30行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== Docker ====&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== Docker ====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&quot;sh&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&quot; line=&quot;1&lt;/del&gt;&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&quot;sh&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-p 127.0.0.1:8080:80&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-p 127.0.0.1:8080:80&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== Docker Compose ====&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== Docker Compose ====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&quot;yaml&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&quot; line=&quot;1&lt;/del&gt;&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&quot;yaml&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;ports:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;ports:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   - &amp;quot;127.0.0.1:8080:80&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   - &amp;quot;127.0.0.1:8080:80&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l46&quot;&gt;第46行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第46行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== Docker ====&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== Docker ====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&quot;sh&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&quot; line=&quot;1&lt;/del&gt;&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&quot;sh&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;--network&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;--network&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== Docker Compose ====&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== Docker Compose ====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&quot;yaml&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&quot; line=&quot;1&lt;/del&gt;&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&quot;yaml&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;network_mode: &amp;quot;host&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;network_mode: &amp;quot;host&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;但&amp;#039;&amp;#039;&amp;#039;缺点&amp;#039;&amp;#039;&amp;#039;也非常的明显，共享宿主机的网络会导致网络没有隔离、端口冲突等一系列副作用。例如，几个容器的端口都为 80，就没法同时运行了。&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;但&amp;#039;&amp;#039;&amp;#039;缺点&amp;#039;&amp;#039;&amp;#039;也非常的明显，共享宿主机的网络会导致网络没有隔离、端口冲突等一系列副作用。例如，几个容器的端口都为 80，就没法同时运行了。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l65&quot;&gt;第65行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第65行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== Docker ====&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== Docker ====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&quot;sh&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&quot; line=&quot;1&lt;/del&gt;&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&quot;sh&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-p 127.0.0.1:8080:80 \&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-p 127.0.0.1:8080:80 \&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-p 192.168.100.1:8080:80&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-p 192.168.100.1:8080:80&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l71&quot;&gt;第71行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第71行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== Docker Compose ====&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== Docker Compose ====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&quot;yaml&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&quot; line=&quot;1&lt;/del&gt;&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&quot;yaml&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;ports:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;ports:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   - &amp;quot;127.0.0.1:8080:80&amp;quot; # 仅本机访问&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   - &amp;quot;127.0.0.1:8080:80&amp;quot; # 仅本机访问&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l85&quot;&gt;第85行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第85行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== 手动配置 ====&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== 手动配置 ====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;修改 UFW 的配置文件 &amp;lt;code&amp;gt;/etc/ufw/after.rules&amp;lt;/code&amp;gt;，在最后添加上如下规则：&amp;lt;syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;修改 UFW 的配置文件 &amp;lt;code&amp;gt;/etc/ufw/after.rules&amp;lt;/code&amp;gt;，在最后添加上如下规则：&amp;lt;syntaxhighlight &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;lang=&quot;text&quot; line=&quot;1&quot;&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# BEGIN UFW AND DOCKER&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# BEGIN UFW AND DOCKER&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*filter&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*filter&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l115&quot;&gt;第115行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第115行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;此时即便你的容器监听的是 &amp;lt;code&amp;gt;0.0.0.0&amp;lt;/code&amp;gt;，外部也是无法访问的，同时也不会影响 Docker 容器内部网络以及容器之间的通信。&amp;lt;blockquote&amp;gt;⚠️ &amp;#039;&amp;#039;&amp;#039;注意：&amp;#039;&amp;#039;&amp;#039;如果重启 UFW 仍不生效，可能需要重启服务器。&amp;lt;/blockquote&amp;gt;假设现在有一个监听了 &amp;lt;code&amp;gt;0.0.0.0:8080:80&amp;lt;/code&amp;gt; 的容器，私有地址为 &amp;lt;code&amp;gt;172.17.0.2&amp;lt;/code&amp;gt;，如果要开放端口可以执行以下命令：&amp;lt;blockquote&amp;gt;⚠️ &amp;#039;&amp;#039;&amp;#039;注意：&amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;port&amp;lt;/code&amp;gt; 为内部的 80 端口，并非映射的 8080 端口&amp;lt;/blockquote&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;此时即便你的容器监听的是 &amp;lt;code&amp;gt;0.0.0.0&amp;lt;/code&amp;gt;，外部也是无法访问的，同时也不会影响 Docker 容器内部网络以及容器之间的通信。&amp;lt;blockquote&amp;gt;⚠️ &amp;#039;&amp;#039;&amp;#039;注意：&amp;#039;&amp;#039;&amp;#039;如果重启 UFW 仍不生效，可能需要重启服务器。&amp;lt;/blockquote&amp;gt;假设现在有一个监听了 &amp;lt;code&amp;gt;0.0.0.0:8080:80&amp;lt;/code&amp;gt; 的容器，私有地址为 &amp;lt;code&amp;gt;172.17.0.2&amp;lt;/code&amp;gt;，如果要开放端口可以执行以下命令：&amp;lt;blockquote&amp;gt;⚠️ &amp;#039;&amp;#039;&amp;#039;注意：&amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;port&amp;lt;/code&amp;gt; 为内部的 80 端口，并非映射的 8080 端口&amp;lt;/blockquote&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;syntaxhighlight lang=&quot;sh&quot;&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  ufw route allow proto tcp from any to 172.17.0.2 port 80&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  ufw route allow proto tcp from any to 172.17.0.2 port 80&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;如果没有填写私有地址 &amp;lt;code&amp;gt;172.17.0.2&amp;lt;/code&amp;gt;，则会开放所有内部端口为 80 的容器&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;如果没有填写私有地址 &amp;lt;code&amp;gt;172.17.0.2&amp;lt;/code&amp;gt;，则会开放所有内部端口为 80 的容器&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;syntaxhighlight lang=&quot;sh&quot;&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  ufw route allow proto tcp from any to any port 80&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  ufw route allow proto tcp from any to any port 80&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;如果你有大量容器需要让另一台服务器反代，可以直接对那台服务器的 IP 开放&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;如果你有大量容器需要让另一台服务器反代，可以直接对那台服务器的 IP 开放&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;syntaxhighlight lang=&quot;sh&quot;&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  ufw route allow proto tcp from x.x.x.x to any&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  ufw route allow proto tcp from x.x.x.x to any&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;想要查看或删除规则，可以执行&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;想要查看或删除规则，可以执行&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;syntaxhighlight lang=&quot;sh&quot;&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  ufw status numbered&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  ufw status numbered&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;删除只需要执行 &amp;lt;code&amp;gt;ufw delete&amp;lt;/code&amp;gt; + 编号&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;删除只需要执行 &amp;lt;code&amp;gt;ufw delete&amp;lt;/code&amp;gt; + 编号&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;syntaxhighlight lang=&quot;sh&quot;&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  ufw delete 2&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  ufw delete 2&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== 工具 ====&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== 工具 ====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;如果觉得以上操作过于繁琐，也没关系，ufw-docker 还提供了&amp;#039;&amp;#039;&amp;#039;工具&amp;#039;&amp;#039;&amp;#039;简化所有操作&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;如果觉得以上操作过于繁琐，也没关系，ufw-docker 还提供了&amp;#039;&amp;#039;&amp;#039;工具&amp;#039;&amp;#039;&amp;#039;简化所有操作&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;syntaxhighlight lang=&quot;sh&quot;&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  wget -O /usr/local/bin/ufw-docker \&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  wget -O /usr/local/bin/ufw-docker \&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;    &amp;lt;nowiki&amp;gt;https://github.com/chaifeng/ufw-docker/raw/master/ufw-docker&amp;lt;/nowiki&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;    &amp;lt;nowiki&amp;gt;https://github.com/chaifeng/ufw-docker/raw/master/ufw-docker&amp;lt;/nowiki&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  chmod +x /usr/local/bin/ufw-docker&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  chmod +x /usr/local/bin/ufw-docker&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;使用以下命令可以一键修改 UFW 的 &amp;lt;code&amp;gt;after.rules&amp;lt;/code&amp;gt; 文件&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;使用以下命令可以一键修改 UFW 的 &amp;lt;code&amp;gt;after.rules&amp;lt;/code&amp;gt; 文件&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;syntaxhighlight lang=&quot;sh&quot;&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  ufw-docker install&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  ufw-docker install&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;具体的操作可以通过 &amp;lt;code&amp;gt;ufw-docker help&amp;lt;/code&amp;gt; 查看，这里就不过多介绍了。&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;具体的操作可以通过 &amp;lt;code&amp;gt;ufw-docker help&amp;lt;/code&amp;gt; 查看，这里就不过多介绍了。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;syntaxhighlight lang=&quot;sh&quot;&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  ufw-docker allow mysql 3306/tcp&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  ufw-docker allow mysql 3306/tcp&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;syntaxhighlight lang=&quot;sh&quot;&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; ​ufw-docker delete allow mysql 3306/tcp&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; ​ufw-docker delete allow mysql 3306/tcp&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:500 常见应用指南 — Application Guides]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key my_wiki:diff:1.41:old-1886:rev-1888:php=table --&gt;
&lt;/table&gt;</description>
			<pubDate>Sun, 12 Apr 2026 15:43:28 GMT</pubDate>
			<dc:creator>ZhiChao</dc:creator>
			<comments>https://md5.pw/index.php?title=Talk:%E5%A6%82%E4%BD%95%E9%81%BF%E5%85%8D_Docker_%E7%AB%AF%E5%8F%A3%E6%84%8F%E5%A4%96%E6%9A%B4%E9%9C%B2</comments>
		</item>
		<item>
			<title>如何避免 Docker 端口意外暴露</title>
			<link>https://md5.pw/index.php?title=%E5%A6%82%E4%BD%95%E9%81%BF%E5%85%8D_Docker_%E7%AB%AF%E5%8F%A3%E6%84%8F%E5%A4%96%E6%9A%B4%E9%9C%B2&amp;diff=1886&amp;oldid=0</link>
			<guid isPermaLink="false">https://md5.pw/index.php?title=%E5%A6%82%E4%BD%95%E9%81%BF%E5%85%8D_Docker_%E7%AB%AF%E5%8F%A3%E6%84%8F%E5%A4%96%E6%9A%B4%E9%9C%B2&amp;diff=1886&amp;oldid=0</guid>
			<description>&lt;p&gt;创建页面，内容为“== 前言 == 刚接触 Docker 或者平常只使用 1Panel 这类面板的小白用户，最常遇到的问题应该就是明明 UFW 里没开放端口，但公网却可以直接通过端口访问容器。  以 1Panel 为例，如果你在应用商店安装应用时，勾选了“端口外部访问”，此时的容器就会监听 &amp;lt;code&amp;gt;0.0.0.0&amp;lt;/code&amp;gt; &lt;a href=&quot;/index.php?title=File:Bwh-docker-port-1.webp&quot; title=&quot;File:Bwh-docker-port-1.webp&quot;&gt;center&lt;/a&gt; 无论你有没有在 UFW 中开放这个端口，它都已经暴露到…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== 前言 ==&lt;br /&gt;
刚接触 Docker 或者平常只使用 1Panel 这类面板的小白用户，最常遇到的问题应该就是明明 UFW 里没开放端口，但公网却可以直接通过端口访问容器。&lt;br /&gt;
&lt;br /&gt;
以 1Panel 为例，如果你在应用商店安装应用时，勾选了“端口外部访问”，此时的容器就会监听 &amp;lt;code&amp;gt;0.0.0.0&amp;lt;/code&amp;gt;&lt;br /&gt;
[[File:Bwh-docker-port-1.webp|center]]&lt;br /&gt;
无论你有没有在 UFW 中开放这个端口，它都已经暴露到了公网。&lt;br /&gt;
[[File:Bwh-docker-port-2.webp|center]]&lt;br /&gt;
这个“陈年老坑”的原理很简单，因为 Docker 会直接修改 Linux 的 &amp;lt;code&amp;gt;iptables&amp;lt;/code&amp;gt; 规则，而这些规则的优先级高于 UFW，并且在 UFW 中也不会显示 Docker 添加的规则。&lt;br /&gt;
&lt;br /&gt;
要想解决这个问题并不难，下面介绍一下最常见的几种解决方法。&lt;br /&gt;
&lt;br /&gt;
== 解决方法 ==&lt;br /&gt;
&lt;br /&gt;
=== 禁用 iptables（不推荐） ===&lt;br /&gt;
既然 Docker 会直接修改 iptables 绕过 UFW ，那直接禁用掉 iptables 自动配置，不就轻松秒杀了吗？&lt;br /&gt;
&lt;br /&gt;
在 &amp;lt;code&amp;gt;/etc/docker/daemon.json&amp;lt;/code&amp;gt; 中添加：&amp;lt;code&amp;gt;{&amp;quot;iptables&amp;quot;: false}&amp;lt;/code&amp;gt;&lt;br /&gt;
[[File:Bwh-docker-port-3.webp|center]]&lt;br /&gt;
相信你看到过网上许多的“庸医”教程就是这么教的，虽然说能够解决端口意外暴露的问题，但禁用 iptables 自动配置的同时还可能导致容器无法访问外部网络或容器间通信失败。&lt;br /&gt;
&lt;br /&gt;
因此&amp;#039;&amp;#039;&amp;#039;非常不推荐&amp;#039;&amp;#039;&amp;#039;直接禁用 iptables。&lt;br /&gt;
&lt;br /&gt;
=== 安全组（暂不支持） ===&lt;br /&gt;
如果你买的服务器有安全组功能，这个问题解决起来就非常的简单了，只要在后台的安全组中禁用端口，Docker 无论如何也不可能绕过安全组。&lt;br /&gt;
&lt;br /&gt;
但是可惜&amp;#039;&amp;#039;&amp;#039;搬瓦工&amp;#039;&amp;#039;&amp;#039;暂时还不支持类似安全组的外置防火墙，可以接着看下面的解决方案，通过合理配置 Docker 和 iptables 来解决这个问题。&lt;br /&gt;
&lt;br /&gt;
=== 监听 127.0.0.1（推荐） ===&lt;br /&gt;
对于大多数用户，端口映射时监听本地 &amp;lt;code&amp;gt;127.0.0.1:8080:80&amp;lt;/code&amp;gt; 是最好的解决方法，对应 1Panel 中就是不勾选“端口外部访问”。&lt;br /&gt;
&lt;br /&gt;
==== Docker ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
-p 127.0.0.1:8080:80&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Docker Compose ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
ports:&lt;br /&gt;
  - &amp;quot;127.0.0.1:8080:80&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;#039;&amp;#039;&amp;#039;本机&amp;#039;&amp;#039;&amp;#039;的其他应用可以正常通过端口访问到容器，而外部访问不了，如果是 Web 应用可以直接用 Nginx 反向代理。&lt;br /&gt;
&lt;br /&gt;
但这个方法也不是完美的，当你想用&amp;#039;&amp;#039;&amp;#039;另一台&amp;#039;&amp;#039;&amp;#039;服务器反向代理时，监听 &amp;lt;code&amp;gt;127.0.0.1&amp;lt;/code&amp;gt; 会导致装有 Nginx 的服务器也访问不到容器。&lt;br /&gt;
&lt;br /&gt;
=== host 模式 ===&lt;br /&gt;
直接使用 host 模式也是一个比较常用的解决方案，在 host 模式下，容器不会获得独立的网络命名空间，而是直接共享宿主机的 IP 和端口，自然就可以用 UFW 来控制端口是否开放。&lt;br /&gt;
&lt;br /&gt;
==== Docker ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
--network&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Docker Compose ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
network_mode: &amp;quot;host&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;但&amp;#039;&amp;#039;&amp;#039;缺点&amp;#039;&amp;#039;&amp;#039;也非常的明显，共享宿主机的网络会导致网络没有隔离、端口冲突等一系列副作用。例如，几个容器的端口都为 80，就没法同时运行了。&lt;br /&gt;
&lt;br /&gt;
=== 虚拟局域网 ===&lt;br /&gt;
如果你有用&amp;#039;&amp;#039;&amp;#039;另一台&amp;#039;&amp;#039;&amp;#039;服务器反代的需求，又不希望使用 host 模式，可以用 ZeroTier、Tailscale 之类的组网工具，给两台服务器组一个虚拟局域网，也是个不错的解决方案。&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;当然如果你两台服务器都是搬瓦工的并且位于同一个机房，可以直接利用 Private Network 开启内网，可以省去组建虚拟局域网的步骤&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
可以参考这篇文章 [[搬瓦工进阶教程：利用 Private Network 构建高速内网集群]]&lt;br /&gt;
&lt;br /&gt;
在容器映射端口时，除了映射本机的 &amp;lt;code&amp;gt;127.0.0.0.1:8080:80&amp;lt;/code&amp;gt;，再加上一条虚拟局域网的 IP，如 &amp;lt;code&amp;gt;192.168.100.1:8080:80&amp;lt;/code&amp;gt;，另一台服务器反代时，填写 &amp;lt;code&amp;gt;192.168.100.1:8080&amp;lt;/code&amp;gt; 即可。&lt;br /&gt;
&lt;br /&gt;
==== Docker ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
-p 127.0.0.1:8080:80 \&lt;br /&gt;
-p 192.168.100.1:8080:80&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Docker Compose ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
ports:&lt;br /&gt;
  - &amp;quot;127.0.0.1:8080:80&amp;quot; # 仅本机访问&lt;br /&gt;
  - &amp;quot;192.168.100.1:8080:80&amp;quot; # 仅通过特定局域网 IP 访问&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== ufw-docker（推荐） ===&lt;br /&gt;
要是你既不想用组网工具，又不想（或不能）用 host 模式，还想用另一台服务器的 Nginx 来反代容器，有没有&amp;#039;&amp;#039;&amp;#039;更完美&amp;#039;&amp;#039;&amp;#039;的解决方法呢？&lt;br /&gt;
&lt;br /&gt;
有的，兄弟有的。&lt;br /&gt;
&lt;br /&gt;
ufw-docker 是 GitHub 上开源的一个解决方案，具体原理可以查看仓库的 README，我们这里简单介绍一下如何使用。&lt;br /&gt;
&lt;br /&gt;
==== 手动配置 ====&lt;br /&gt;
修改 UFW 的配置文件 &amp;lt;code&amp;gt;/etc/ufw/after.rules&amp;lt;/code&amp;gt;，在最后添加上如下规则：&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
# BEGIN UFW AND DOCKER&lt;br /&gt;
*filter&lt;br /&gt;
:ufw-user-forward - [0:0]&lt;br /&gt;
:ufw-docker-logging-deny - [0:0]&lt;br /&gt;
:DOCKER-USER - [0:0]&lt;br /&gt;
-A DOCKER-USER -j ufw-user-forward&lt;br /&gt;
&lt;br /&gt;
-A DOCKER-USER -m conntrack --ctstate RELATED,ESTABLISHED -j RETURN&lt;br /&gt;
-A DOCKER-USER -m conntrack --ctstate INVALID -j DROP&lt;br /&gt;
-A DOCKER-USER -i docker0 -o docker0 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
-A DOCKER-USER -j RETURN -s 10.0.0.0/8&lt;br /&gt;
-A DOCKER-USER -j RETURN -s 172.16.0.0/12&lt;br /&gt;
-A DOCKER-USER -j RETURN -s 192.168.0.0/16&lt;br /&gt;
&lt;br /&gt;
-A DOCKER-USER -j ufw-docker-logging-deny -m conntrack --ctstate NEW -d 10.0.0.0/8&lt;br /&gt;
-A DOCKER-USER -j ufw-docker-logging-deny -m conntrack --ctstate NEW -d 172.16.0.0/12&lt;br /&gt;
-A DOCKER-USER -j ufw-docker-logging-deny -m conntrack --ctstate NEW -d 192.168.0.0/16&lt;br /&gt;
&lt;br /&gt;
-A DOCKER-USER -j RETURN&lt;br /&gt;
&lt;br /&gt;
-A ufw-docker-logging-deny -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix &amp;quot;[UFW DOCKER BLOCK] &amp;quot;&lt;br /&gt;
-A ufw-docker-logging-deny -j DROP&lt;br /&gt;
&lt;br /&gt;
COMMIT&lt;br /&gt;
# END UFW AND DOCKER&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;接着重启 UFW &amp;lt;code&amp;gt;systemctl restart ufw&amp;lt;/code&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
此时即便你的容器监听的是 &amp;lt;code&amp;gt;0.0.0.0&amp;lt;/code&amp;gt;，外部也是无法访问的，同时也不会影响 Docker 容器内部网络以及容器之间的通信。&amp;lt;blockquote&amp;gt;⚠️ &amp;#039;&amp;#039;&amp;#039;注意：&amp;#039;&amp;#039;&amp;#039;如果重启 UFW 仍不生效，可能需要重启服务器。&amp;lt;/blockquote&amp;gt;假设现在有一个监听了 &amp;lt;code&amp;gt;0.0.0.0:8080:80&amp;lt;/code&amp;gt; 的容器，私有地址为 &amp;lt;code&amp;gt;172.17.0.2&amp;lt;/code&amp;gt;，如果要开放端口可以执行以下命令：&amp;lt;blockquote&amp;gt;⚠️ &amp;#039;&amp;#039;&amp;#039;注意：&amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;port&amp;lt;/code&amp;gt; 为内部的 80 端口，并非映射的 8080 端口&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 ufw route allow proto tcp from any to 172.17.0.2 port 80&lt;br /&gt;
如果没有填写私有地址 &amp;lt;code&amp;gt;172.17.0.2&amp;lt;/code&amp;gt;，则会开放所有内部端口为 80 的容器&lt;br /&gt;
 ufw route allow proto tcp from any to any port 80&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;如果你有大量容器需要让另一台服务器反代，可以直接对那台服务器的 IP 开放&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 ufw route allow proto tcp from x.x.x.x to any&lt;br /&gt;
想要查看或删除规则，可以执行&lt;br /&gt;
 ufw status numbered&lt;br /&gt;
删除只需要执行 &amp;lt;code&amp;gt;ufw delete&amp;lt;/code&amp;gt; + 编号&lt;br /&gt;
 ufw delete 2&lt;br /&gt;
&lt;br /&gt;
==== 工具 ====&lt;br /&gt;
如果觉得以上操作过于繁琐，也没关系，ufw-docker 还提供了&amp;#039;&amp;#039;&amp;#039;工具&amp;#039;&amp;#039;&amp;#039;简化所有操作&lt;br /&gt;
 wget -O /usr/local/bin/ufw-docker \&lt;br /&gt;
   &amp;lt;nowiki&amp;gt;https://github.com/chaifeng/ufw-docker/raw/master/ufw-docker&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 chmod +x /usr/local/bin/ufw-docker&lt;br /&gt;
使用以下命令可以一键修改 UFW 的 &amp;lt;code&amp;gt;after.rules&amp;lt;/code&amp;gt; 文件&lt;br /&gt;
 ufw-docker install&lt;br /&gt;
具体的操作可以通过 &amp;lt;code&amp;gt;ufw-docker help&amp;lt;/code&amp;gt; 查看，这里就不过多介绍了。&lt;br /&gt;
 ufw-docker allow mysql 3306/tcp&lt;br /&gt;
&lt;br /&gt;
 ​ufw-docker delete allow mysql 3306/tcp&lt;/div&gt;</description>
			<pubDate>Sun, 12 Apr 2026 15:35:27 GMT</pubDate>
			<dc:creator>ZhiChao</dc:creator>
			<comments>https://md5.pw/index.php?title=Talk:%E5%A6%82%E4%BD%95%E9%81%BF%E5%85%8D_Docker_%E7%AB%AF%E5%8F%A3%E6%84%8F%E5%A4%96%E6%9A%B4%E9%9C%B2</comments>
		</item>
		<item>
			<title>File:Bwh-docker-port-3.webp</title>
			<link>https://md5.pw/index.php?title=File:Bwh-docker-port-3.webp&amp;diff=1885&amp;oldid=0</link>
			<guid isPermaLink="false">https://md5.pw/index.php?title=File:Bwh-docker-port-3.webp&amp;diff=1885&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=User:ZhiChao&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new mw-userlink&quot; title=&quot;User:ZhiChao（页面不存在）&quot;&gt;&lt;bdi&gt;ZhiChao&lt;/bdi&gt;&lt;/a&gt;上传&lt;a href=&quot;/index.php?title=File:Bwh-docker-port-3.webp&quot; title=&quot;File:Bwh-docker-port-3.webp&quot;&gt;File:Bwh-docker-port-3.webp&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;禁用 iptabls&lt;/div&gt;</description>
			<pubDate>Sun, 12 Apr 2026 15:28:43 GMT</pubDate>
			<dc:creator>ZhiChao</dc:creator>
			<comments>https://md5.pw/index.php?title=File_talk:Bwh-docker-port-3.webp</comments>
		</item>
		<item>
			<title>File:Bwh-docker-port-2.webp</title>
			<link>https://md5.pw/index.php?title=File:Bwh-docker-port-2.webp&amp;diff=1884&amp;oldid=0</link>
			<guid isPermaLink="false">https://md5.pw/index.php?title=File:Bwh-docker-port-2.webp&amp;diff=1884&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=User:ZhiChao&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new mw-userlink&quot; title=&quot;User:ZhiChao（页面不存在）&quot;&gt;&lt;bdi&gt;ZhiChao&lt;/bdi&gt;&lt;/a&gt;上传&lt;a href=&quot;/index.php?title=File:Bwh-docker-port-2.webp&quot; title=&quot;File:Bwh-docker-port-2.webp&quot;&gt;File:Bwh-docker-port-2.webp&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;nmap 测试&lt;/div&gt;</description>
			<pubDate>Sun, 12 Apr 2026 15:28:07 GMT</pubDate>
			<dc:creator>ZhiChao</dc:creator>
			<comments>https://md5.pw/index.php?title=File_talk:Bwh-docker-port-2.webp</comments>
		</item>
		<item>
			<title>File:Bwh-docker-port-1.webp</title>
			<link>https://md5.pw/index.php?title=File:Bwh-docker-port-1.webp&amp;diff=1883&amp;oldid=0</link>
			<guid isPermaLink="false">https://md5.pw/index.php?title=File:Bwh-docker-port-1.webp&amp;diff=1883&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=User:ZhiChao&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new mw-userlink&quot; title=&quot;User:ZhiChao（页面不存在）&quot;&gt;&lt;bdi&gt;ZhiChao&lt;/bdi&gt;&lt;/a&gt;上传&lt;a href=&quot;/index.php?title=File:Bwh-docker-port-1.webp&quot; title=&quot;File:Bwh-docker-port-1.webp&quot;&gt;File:Bwh-docker-port-1.webp&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;端口外部访问&lt;/div&gt;</description>
			<pubDate>Sun, 12 Apr 2026 15:27:15 GMT</pubDate>
			<dc:creator>ZhiChao</dc:creator>
			<comments>https://md5.pw/index.php?title=File_talk:Bwh-docker-port-1.webp</comments>
		</item>
		<item>
			<title>KiwiVM 面板完整操作指南（重装 / 密码 / 2FA / 快照 / 迁移）</title>
			<link>https://md5.pw/index.php?title=KiwiVM_%E9%9D%A2%E6%9D%BF%E5%AE%8C%E6%95%B4%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97%EF%BC%88%E9%87%8D%E8%A3%85_/_%E5%AF%86%E7%A0%81_/_2FA_/_%E5%BF%AB%E7%85%A7_/_%E8%BF%81%E7%A7%BB%EF%BC%89&amp;diff=1882&amp;oldid=1872</link>
			<guid isPermaLink="false">https://md5.pw/index.php?title=KiwiVM_%E9%9D%A2%E6%9D%BF%E5%AE%8C%E6%95%B4%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97%EF%BC%88%E9%87%8D%E8%A3%85_/_%E5%AF%86%E7%A0%81_/_2FA_/_%E5%BF%AB%E7%85%A7_/_%E8%BF%81%E7%A7%BB%EF%BC%89&amp;diff=1882&amp;oldid=1872</guid>
			<description>&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2026年4月12日 (日) 06:13的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-multi&quot; lang=&quot;zh&quot;&gt;（未显示同一用户的1个中间版本）&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l17&quot;&gt;第17行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第17行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==一、进入KiwiVM面板==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==一、进入KiwiVM面板==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;1. 登录搬瓦工官网客户后台（Client Area）。顶部导航栏点击 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;**&lt;/del&gt;Services&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;** &lt;/del&gt;→ 下拉菜单选 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;**&lt;/del&gt;My Services&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;**&lt;/del&gt;。&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;1. 登录搬瓦工官网客户后台（Client Area）。顶部导航栏点击 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039;&lt;/ins&gt;Services&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039; &lt;/ins&gt;→ 下拉菜单选 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039;&lt;/ins&gt;My Services&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039;&lt;/ins&gt;。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[File:kim-1.png]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[File:kim-1.png]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;2. 找到VPS，右侧点击齿轮 &amp;#039;&amp;#039;&amp;#039;Manage&amp;#039;&amp;#039;&amp;#039; 按钮 → 弹出菜单选 &amp;#039;&amp;#039;&amp;#039;Open KiwiVM&amp;#039;&amp;#039;&amp;#039;。&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;2. 找到VPS，右侧点击齿轮 &amp;#039;&amp;#039;&amp;#039;Manage&amp;#039;&amp;#039;&amp;#039; 按钮 → 弹出菜单选 &amp;#039;&amp;#039;&amp;#039;Open KiwiVM&amp;#039;&amp;#039;&amp;#039;。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key my_wiki:diff:1.41:old-1872:rev-1882:php=table --&gt;
&lt;/table&gt;</description>
			<pubDate>Sun, 12 Apr 2026 13:13:43 GMT</pubDate>
			<dc:creator>Ａ</dc:creator>
			<comments>https://md5.pw/index.php?title=Talk:KiwiVM_%E9%9D%A2%E6%9D%BF%E5%AE%8C%E6%95%B4%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97%EF%BC%88%E9%87%8D%E8%A3%85_/_%E5%AF%86%E7%A0%81_/_2FA_/_%E5%BF%AB%E7%85%A7_/_%E8%BF%81%E7%A7%BB%EF%BC%89</comments>
		</item>
		<item>
			<title>搬瓦工 AUP 简明解释 + 如何避免违规（通俗版避坑指南）</title>
			<link>https://md5.pw/index.php?title=%E6%90%AC%E7%93%A6%E5%B7%A5_AUP_%E7%AE%80%E6%98%8E%E8%A7%A3%E9%87%8A_%2B_%E5%A6%82%E4%BD%95%E9%81%BF%E5%85%8D%E8%BF%9D%E8%A7%84%EF%BC%88%E9%80%9A%E4%BF%97%E7%89%88%E9%81%BF%E5%9D%91%E6%8C%87%E5%8D%97%EF%BC%89&amp;diff=1880&amp;oldid=0</link>
			<guid isPermaLink="false">https://md5.pw/index.php?title=%E6%90%AC%E7%93%A6%E5%B7%A5_AUP_%E7%AE%80%E6%98%8E%E8%A7%A3%E9%87%8A_%2B_%E5%A6%82%E4%BD%95%E9%81%BF%E5%85%8D%E8%BF%9D%E8%A7%84%EF%BC%88%E9%80%9A%E4%BF%97%E7%89%88%E9%81%BF%E5%9D%91%E6%8C%87%E5%8D%97%EF%BC%89&amp;diff=1880&amp;oldid=0</guid>
			<description>&lt;p&gt;发布&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==什么是 AUP？==&lt;br /&gt;
&lt;br /&gt;
AUP 是搬瓦工《服务条款》（ToS）里很重要的一部分，全称叫“可接受使用政策”。简单说，它就是官方规定了&amp;#039;&amp;#039;&amp;#039;可以用 VPS 做什么、不可以用 VPS 做什么&amp;#039;&amp;#039;&amp;#039;的一套规则。它的目的就是为了保持整个网络环境干净、稳定，不让某个用户的行为影响到其他用户或给官方带来麻烦。违反 AUP 通常会导致服务暂停，甚至被永久封号。&lt;br /&gt;
&lt;br /&gt;
为了大家能安心建站或跑项目，避免不必要的封号和罚款，整理了以下这份通俗易懂的避坑指南。&lt;br /&gt;
== 一、AUP 到底在管什么？ ==&lt;br /&gt;
&lt;br /&gt;
官方最核心的要求其实就三条大白话：&lt;br /&gt;
&lt;br /&gt;
- 不要用服务器去攻击别人，也不要让别人用你的服务器攻击别人&lt;br /&gt;
&lt;br /&gt;
- 不要发垃圾邮件、不要跑公开代理被别人滥用&lt;br /&gt;
&lt;br /&gt;
- 不要让服务器看起来像挖矿机或攻击工具（CPU/流量长期满载）&lt;br /&gt;
&lt;br /&gt;
只要不违反这三条，正常建站、跑代理、自建服务基本都没问题。&lt;br /&gt;
&lt;br /&gt;
== 二、绝对不能碰的“高压线”（违规直接封号或重罚） ==&lt;br /&gt;
&lt;br /&gt;
这些行为是零容忍的，一旦被系统探测到，不仅会被停机，严重时还会产生罚款。&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;网络滥用与攻击&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
  严禁发起或参与任何 DoS 或 DDoS 攻击。  &lt;br /&gt;
  禁止进行黑客入侵（包括你的 VPS 被黑客控制后去攻击别人）、分发恶意软件病毒或进行端口扫描。  &lt;br /&gt;
  &amp;#039;&amp;#039;&amp;#039;避坑方法&amp;#039;&amp;#039;&amp;#039;：不要运行端口扫描工具，只开放真正需要的端口，用 `ss -tuln` 定期检查。&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;垃圾邮件&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
  严禁发送垃圾邮件（Spam）或进行任何形式的群发邮件。  &lt;br /&gt;
  系统仅允许偶尔发送一些必要的交易类通知邮件（例如网站注册确认邮件）。  &lt;br /&gt;
  &amp;#039;&amp;#039;&amp;#039;避坑方法&amp;#039;&amp;#039;&amp;#039;：不要用 VPS 发营销邮件，正常网站通知邮件可以接受。&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;代理与节点限制&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
  绝对禁止搭建“公开的代理服务器（Open proxy）”。  &lt;br /&gt;
  同时，严禁运行 Tor 的中继节点或出口节点。  &lt;br /&gt;
  也禁止开放容易引起放大攻击的服务，如公开的 DNS 解析器、开放的 NTP 服务器等。  &lt;br /&gt;
  &amp;#039;&amp;#039;&amp;#039;避坑方法&amp;#039;&amp;#039;&amp;#039;：代理只在自己设备或内网使用，不要开放给公网。&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;版权与违法内容（严查 DMCA）&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
  不要在服务器上存放或分发未授权的电影、音乐等受版权保护的内容。  &lt;br /&gt;
  禁止存放破解软件、仿冒品或提供此类链接。  &lt;br /&gt;
  严格禁止任何形式的 BitTorrent（BT）活动，包括 tracker、客户端和下载链接。  &lt;br /&gt;
  此外，禁止存放色情内容。  &lt;br /&gt;
  &amp;#039;&amp;#039;&amp;#039;避坑方法&amp;#039;&amp;#039;&amp;#039;：只存放合法拥有的文件。&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;加密货币与挖矿&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
  全面禁止加密货币挖矿。  &lt;br /&gt;
  包括那些与加密货币相关的去中心化存储或计算项目也是被明令禁止的。  &lt;br /&gt;
  &amp;#039;&amp;#039;&amp;#039;避坑方法&amp;#039;&amp;#039;&amp;#039;：不要运行任何挖矿相关程序。&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;爬虫与高危项目&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
  禁止数据挖掘和网页爬虫抓取。  &lt;br /&gt;
  禁止运行没有合适牌照的金融或投资类平台。  &lt;br /&gt;
  禁止搭建 IRC 客户端或服务器。  &lt;br /&gt;
  &amp;#039;&amp;#039;&amp;#039;避坑方法&amp;#039;&amp;#039;&amp;#039;：不要运行大规模爬虫或未授权的金融项目。&lt;br /&gt;
&lt;br /&gt;
== 三、硬件资源使用的“公平法则” ==&lt;br /&gt;
&lt;br /&gt;
搬瓦工对 CPU 和磁盘读写有明确的红线，但处理方式比较人性化。&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;CPU 使用限制&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
  除非购买的是带有 SLA 的高端套餐（允许 24/7 跑满全部核心），其他大部分套餐都有明确的长期平均 CPU 负载上限。  &lt;br /&gt;
  &amp;#039;&amp;#039;&amp;#039;例子&amp;#039;&amp;#039;&amp;#039;：5G Plan 长期平均只能使用 1 个核心的 20%，10G Plan 是 25%，以此类推。  &lt;br /&gt;
  &amp;#039;&amp;#039;&amp;#039;超标了怎么办？&amp;#039;&amp;#039;&amp;#039; 系统不会直接暂停服务，而是自动将 CPU 性能限制在当前套餐允许的最大水平内。此时 KiwiVM 面板主页会显示 CPU 被限制的提示。当关闭高负载进程，资源使用降下来后，限制会自动解除。&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;磁盘 I/O 限制&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
  请避免VPS 长时间（连续 4 小时以上）保持 100 MiB/s 以上的极高磁盘读写速度。  &lt;br /&gt;
  &amp;#039;&amp;#039;&amp;#039;如果超标&amp;#039;&amp;#039;&amp;#039;：官方会先发邮件通知。如果在通知后仍然继续高强度读写，他们保留暂时挂起服务的权利，直到问题解决。  &lt;br /&gt;
  &amp;#039;&amp;#039;&amp;#039;避坑方法&amp;#039;&amp;#039;&amp;#039;：定期用 `iotop -o` 查看哪个进程在狂写盘，及时优化数据库或程序。&lt;br /&gt;
&lt;br /&gt;
== 四、账号管理与售后沟通细节 ==&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;真实信息与禁止转让&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
  注册账号必须使用真实姓名和有效的联系方式。如果信息虚假，随时会被停机或终止服务。  &lt;br /&gt;
  官方严禁买卖、转让账号。如果发现账号参与买卖，会被直接封禁且不予退款。&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;退款的正确姿势&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
  如果不想要了，想退款，只要满足条件（新单 30 天内、月流量使用了不到 10%、IP 没被墙、没有违反 ToS 等），可以直接在后台申请全额退款。  &lt;br /&gt;
  &amp;#039;&amp;#039;&amp;#039;致命操作&amp;#039;&amp;#039;&amp;#039;：绝对不要通过 PayPal 发起争议（Dispute）或退单（Chargeback）。一旦这么做，名下的所有服务会被立刻冻结，官方还会按 $40/小时收取人工处理费，不交钱就不给解封。&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;沟通礼仪&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
  发工单时不要对客服使用辱骂性语言，也不要用同一个问题去“轰炸”工单队列。&lt;br /&gt;
&lt;br /&gt;
== 五、万一违规了会有什么后果？ ==&lt;br /&gt;
&lt;br /&gt;
* 如果违反上述规定，服务会被无限期暂停（面板中会给出简短说明）。&lt;br /&gt;
* 如果是初犯或较轻的违规，可以在 KiwiVM 面板中承认错误并给出改正方案，官方审核满意后会给你解封，这通常不需要人工客服介入。&lt;br /&gt;
* 搬瓦工有一个“滥用评分系统（Abuse scoring system）”记录黑历史。屡教不改者，每次违规可能被加收 50 美元的管理费。如果在一个自然年内被暂停服务多次，甚至会被直接封号封到明年的 1 月 1 日。&lt;br /&gt;
[[Category:400 常见问题与故障排查 — Troubleshooting]]&lt;/div&gt;</description>
			<pubDate>Sun, 12 Apr 2026 12:46:10 GMT</pubDate>
			<dc:creator>Ａ</dc:creator>
			<comments>https://md5.pw/index.php?title=Talk:%E6%90%AC%E7%93%A6%E5%B7%A5_AUP_%E7%AE%80%E6%98%8E%E8%A7%A3%E9%87%8A_%2B_%E5%A6%82%E4%BD%95%E9%81%BF%E5%85%8D%E8%BF%9D%E8%A7%84%EF%BC%88%E9%80%9A%E4%BF%97%E7%89%88%E9%81%BF%E5%9D%91%E6%8C%87%E5%8D%97%EF%BC%89</comments>
		</item>
		<item>
			<title>解决搬瓦工 VPS 时间偏差与任务执行异常</title>
			<link>https://md5.pw/index.php?title=%E8%A7%A3%E5%86%B3%E6%90%AC%E7%93%A6%E5%B7%A5_VPS_%E6%97%B6%E9%97%B4%E5%81%8F%E5%B7%AE%E4%B8%8E%E4%BB%BB%E5%8A%A1%E6%89%A7%E8%A1%8C%E5%BC%82%E5%B8%B8&amp;diff=1879&amp;oldid=1873</link>
			<guid isPermaLink="false">https://md5.pw/index.php?title=%E8%A7%A3%E5%86%B3%E6%90%AC%E7%93%A6%E5%B7%A5_VPS_%E6%97%B6%E9%97%B4%E5%81%8F%E5%B7%AE%E4%B8%8E%E4%BB%BB%E5%8A%A1%E6%89%A7%E8%A1%8C%E5%BC%82%E5%B8%B8&amp;diff=1879&amp;oldid=1873</guid>
			<description>&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2026年4月11日 (六) 20:39的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l104&quot;&gt;第104行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第104行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;改完后，自动备份脚本、日志时间就彻底正常了，再也不用脑补 15 小时了~&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;改完后，自动备份脚本、日志时间就彻底正常了，再也不用脑补 15 小时了~&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;index.php?title=&lt;/del&gt;Category:300 VPS 设置与管理 — VPS Setup and Management]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:300 VPS 设置与管理 — VPS Setup and Management]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key my_wiki:diff:1.41:old-1873:rev-1879:php=table --&gt;
&lt;/table&gt;</description>
			<pubDate>Sun, 12 Apr 2026 03:39:09 GMT</pubDate>
			<dc:creator>Ａ</dc:creator>
			<comments>https://md5.pw/index.php?title=Talk:%E8%A7%A3%E5%86%B3%E6%90%AC%E7%93%A6%E5%B7%A5_VPS_%E6%97%B6%E9%97%B4%E5%81%8F%E5%B7%AE%E4%B8%8E%E4%BB%BB%E5%8A%A1%E6%89%A7%E8%A1%8C%E5%BC%82%E5%B8%B8</comments>
		</item>
		<item>
			<title>搭建VPN 高速且稳定：Hysteria 2 (HY2) 协议全平台快速部署指南</title>
			<link>https://md5.pw/index.php?title=%E6%90%AD%E5%BB%BAVPN_%E9%AB%98%E9%80%9F%E4%B8%94%E7%A8%B3%E5%AE%9A%EF%BC%9AHysteria_2_(HY2)_%E5%8D%8F%E8%AE%AE%E5%85%A8%E5%B9%B3%E5%8F%B0%E5%BF%AB%E9%80%9F%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97&amp;diff=1878&amp;oldid=1874</link>
			<guid isPermaLink="false">https://md5.pw/index.php?title=%E6%90%AD%E5%BB%BAVPN_%E9%AB%98%E9%80%9F%E4%B8%94%E7%A8%B3%E5%AE%9A%EF%BC%9AHysteria_2_(HY2)_%E5%8D%8F%E8%AE%AE%E5%85%A8%E5%B9%B3%E5%8F%B0%E5%BF%AB%E9%80%9F%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97&amp;diff=1878&amp;oldid=1874</guid>
			<description>&lt;p&gt;修改 文章分类&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2026年4月11日 (六) 20:29的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-multi&quot; lang=&quot;zh&quot;&gt;（未显示同一用户的3个中间版本）&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l2&quot;&gt;第2行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第2行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 0. 前言 ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 0. 前言 ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;在当前的网络环境下，Hysteria 2 (简称 HY2) 凭借其基于 UDP 的吞吐性能和优秀的伪装机制，成为了许多用户的首选。本文将详细介绍如何在 VPS 上部署 HY2 协议，并针对防止断流、避免厂商 QoS 误封以及多终端配置进行深度解析。&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;在当前的网络环境下，Hysteria 2 (简称 HY2) 凭借其基于 UDP 的吞吐性能和优秀的伪装机制，成为了许多用户的首选。本文将详细介绍如何在 VPS 上部署 HY2 协议，并针对防止断流、避免厂商 QoS 误封以及多终端配置进行深度解析。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&amp;lt;nowiki&amp;gt;&amp;lt;youtube&amp;gt;v=XNNe1yVjlIk&amp;lt;/youtube&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;gt;&amp;lt;/nowiki&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&amp;lt;nowiki&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/nowiki&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;youtube&amp;gt;v=XNNe1yVjlIk&amp;lt;/youtube&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 1. 环境准备与硬件选择 ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 1. 环境准备与硬件选择 ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l128&quot;&gt;第128行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第129行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 5. 小结 ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 5. 小结 ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Hysteria 2 是目前最强的 UDP 代理协议之一，但“好马配好鞍”，合理的配置和优质的 VPS 线路才是长期稳定使用的保障。希望本指南能帮助你快速完成部署。&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Hysteria 2 是目前最强的 UDP 代理协议之一，但“好马配好鞍”，合理的配置和优质的 VPS 线路才是长期稳定使用的保障。希望本指南能帮助你快速完成部署。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[index.php?title=Category:500 常见应用指南 — Application Guides]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key my_wiki:diff:1.41:old-1874:rev-1878:php=table --&gt;
&lt;/table&gt;</description>
			<pubDate>Sun, 12 Apr 2026 03:29:22 GMT</pubDate>
			<dc:creator>Afeinet</dc:creator>
			<comments>https://md5.pw/index.php?title=Talk:%E6%90%AD%E5%BB%BAVPN_%E9%AB%98%E9%80%9F%E4%B8%94%E7%A8%B3%E5%AE%9A%EF%BC%9AHysteria_2_(HY2)_%E5%8D%8F%E8%AE%AE%E5%85%A8%E5%B9%B3%E5%8F%B0%E5%BF%AB%E9%80%9F%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97</comments>
		</item>
		<item>
			<title>搭建VPN 高速且稳定：Hysteria 2 (HY2) 协议全平台快速部署指南</title>
			<link>https://md5.pw/index.php?title=%E6%90%AD%E5%BB%BAVPN_%E9%AB%98%E9%80%9F%E4%B8%94%E7%A8%B3%E5%AE%9A%EF%BC%9AHysteria_2_(HY2)_%E5%8D%8F%E8%AE%AE%E5%85%A8%E5%B9%B3%E5%8F%B0%E5%BF%AB%E9%80%9F%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97&amp;diff=1874&amp;oldid=0</link>
			<guid isPermaLink="false">https://md5.pw/index.php?title=%E6%90%AD%E5%BB%BAVPN_%E9%AB%98%E9%80%9F%E4%B8%94%E7%A8%B3%E5%AE%9A%EF%BC%9AHysteria_2_(HY2)_%E5%8D%8F%E8%AE%AE%E5%85%A8%E5%B9%B3%E5%8F%B0%E5%BF%AB%E9%80%9F%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97&amp;diff=1874&amp;oldid=0</guid>
			<description>&lt;p&gt;2026.4.12 第一版&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
== 0. 前言 ==&lt;br /&gt;
在当前的网络环境下，Hysteria 2 (简称 HY2) 凭借其基于 UDP 的吞吐性能和优秀的伪装机制，成为了许多用户的首选。本文将详细介绍如何在 VPS 上部署 HY2 协议，并针对防止断流、避免厂商 QoS 误封以及多终端配置进行深度解析。&lt;br /&gt;
----&amp;lt;nowiki&amp;gt;&amp;lt;youtube&amp;gt;v=XNNe1yVjlIk&amp;lt;/youtube&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1. 环境准备与硬件选择 ==&lt;br /&gt;
&lt;br /&gt;
=== 1.1 VPS 选购建议 ===&lt;br /&gt;
高性能的协议需要优质的线路支撑。对于追求极致体验的用户，推荐使用 BandwagonHost (BWH) 的 CN2 GIA 线路，其在晚高峰时段的稳定性表现极佳。&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!机型推荐&lt;br /&gt;
!线路推荐&lt;br /&gt;
!适用场景&lt;br /&gt;
!参考链接&lt;br /&gt;
|-&lt;br /&gt;
|性价比首选&lt;br /&gt;
|USCA2 (DC2)&lt;br /&gt;
|兼顾价格与速度&lt;br /&gt;
|[https://bandwagonhost.com/aff.php?aff=75681&amp;amp;pid=44 点击直达 ($49/年)]&lt;br /&gt;
|-&lt;br /&gt;
|中端推荐&lt;br /&gt;
|USCA_6 (CN2 GIA)&lt;br /&gt;
|低延迟、晚高峰流畅&lt;br /&gt;
|[https://bandwagonhost.com/aff.php?aff=75681&amp;amp;pid=87 点击直达 ($49/季)]&lt;br /&gt;
|-&lt;br /&gt;
|高端旗舰&lt;br /&gt;
|JPTYO_8 (CN2GIA)&lt;br /&gt;
|极低延迟、顶级带宽&lt;br /&gt;
|[https://bandwagonhost.com/aff.php?aff=75681&amp;amp;pid=108 点击直达 ($89/月)]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 1.2 必备工具 ===&lt;br /&gt;
&lt;br /&gt;
* SSH 工具： 推荐使用 FinalShell，支持挂代理连接和可视化文件管理。&lt;br /&gt;
** [https://www.hostbuf.com/t/988.html 官方下载地址]&lt;br /&gt;
** [https://terabox.com/s/1dvrAru9rfJFuJAnVYfxW8A 高速分流下载]&lt;br /&gt;
* IP 可用性检测： 在连接前，请确保 VPS 的 IP 未被拦截。&lt;br /&gt;
** 操作： 打开本地终端，输入 &amp;lt;code&amp;gt;ping [你的VPS_IP] -n 10&amp;lt;/code&amp;gt;。&lt;br /&gt;
** 判断： 若全部超时，说明 IP 无法直连，建议联系客服更换IP。&lt;br /&gt;
&lt;br /&gt;
=== 1.3 系统重置 ===&lt;br /&gt;
建议使用 Ubuntu 24.04 作为操作系统，以获得最新的内核支持和更好的协议兼容性。&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 2. 服务端部署 ==&lt;br /&gt;
&lt;br /&gt;
=== 2.1 安装 Hysteria 2 ===&lt;br /&gt;
登录 SSH 后，执行一键安装脚本：&lt;br /&gt;
&lt;br /&gt;
Bash&lt;br /&gt;
 &amp;lt;code&amp;gt;bash &amp;lt;(curl -fsSL &amp;lt;nowiki&amp;gt;https://get.hy2.sh/&amp;lt;/nowiki&amp;gt;)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2.2 自签名证书生成 ===&lt;br /&gt;
为了提高安全性并实现伪装，我们生成一个有效期长达 100 年的自签名证书，并将伪装域名设定为 &amp;lt;code&amp;gt;bing.com&amp;lt;/code&amp;gt;：&lt;br /&gt;
&lt;br /&gt;
Bash&lt;br /&gt;
 &amp;lt;code&amp;gt;openssl req -x509 -nodes -newkey ec:&amp;lt;(openssl ecparam -name prime256v1) -keyout /etc/hysteria/server.key -out /etc/hysteria/server.crt -subj &amp;quot;/CN=bing.com&amp;quot; -days 36500 &amp;amp;&amp;amp; sudo chown hysteria /etc/hysteria/server.key &amp;amp;&amp;amp; sudo chown hysteria /etc/hysteria/server.crt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2.3 配置文件详解 ===&lt;br /&gt;
我们将配置文件分为服务端与本地客户端预览两部分。&lt;br /&gt;
&lt;br /&gt;
==== 1) 编辑服务端配置 (&amp;lt;code&amp;gt;/etc/hysteria/config.yaml&amp;lt;/code&amp;gt;) ====&lt;br /&gt;
YAML&lt;br /&gt;
 &amp;lt;code&amp;gt;listen: :443&lt;br /&gt;
 tls:&lt;br /&gt;
   cert: /etc/hysteria/server.crt&lt;br /&gt;
   key: /etc/hysteria/server.key&lt;br /&gt;
 auth:&lt;br /&gt;
   type: password&lt;br /&gt;
   password: 123456  # 你的密码 建议修改&lt;br /&gt;
 masquerade:&lt;br /&gt;
   type: proxy&lt;br /&gt;
   proxy:&lt;br /&gt;
     url: &amp;lt;nowiki&amp;gt;https://bing.com&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     rewriteHost: true&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 2) 准备客户端通用模板 (&amp;lt;code&amp;gt;/etc/hysteria/client.yaml&amp;lt;/code&amp;gt;) ====&lt;br /&gt;
YAML&lt;br /&gt;
 &amp;lt;code&amp;gt;server: [你的VPS_IP]:443&lt;br /&gt;
 auth: 123456  # 你的密码 建议修改&lt;br /&gt;
 tls:&lt;br /&gt;
   sni: bing.com&lt;br /&gt;
   insecure: true &lt;br /&gt;
 socks5:&lt;br /&gt;
   listen: 127.0.0.1:1080&lt;br /&gt;
 http:&lt;br /&gt;
   listen: 127.0.0.1:8080&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2.4 启动与状态检查 ===&lt;br /&gt;
设为开机自启&lt;br /&gt;
 &amp;lt;code&amp;gt;systemctl enable hysteria-server.service&amp;lt;/code&amp;gt;&lt;br /&gt;
重启服务&lt;br /&gt;
 &amp;lt;code&amp;gt;systemctl restart hysteria-server.service&amp;lt;/code&amp;gt;&lt;br /&gt;
查看状态&lt;br /&gt;
 &amp;lt;code&amp;gt;systemctl status hysteria-server.service&amp;lt;/code&amp;gt;&lt;br /&gt;
成功标志： 状态显示为 &amp;lt;code&amp;gt;active (running)&amp;lt;/code&amp;gt; 且看到 &amp;lt;code&amp;gt;server up and running&amp;lt;/code&amp;gt; 字样。&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 3. 客户端配置 ==&lt;br /&gt;
&lt;br /&gt;
=== 3.1 电脑端：v2rayN ===&lt;br /&gt;
&lt;br /&gt;
# 软件获取： 下载 v2rayN 。&lt;br /&gt;
# 节点添加：&lt;br /&gt;
#* 在服务器端执行 &amp;lt;code&amp;gt;hysteria share -c /etc/hysteria/client.yaml&amp;lt;/code&amp;gt; 获取分享链接。&lt;br /&gt;
#* 在 v2rayN 中点击“服务器” -&amp;gt; “从剪贴板导入批量 URL”。&lt;br /&gt;
# 注意： 确保本地防火墙已放行对应端口。&lt;br /&gt;
&lt;br /&gt;
=== 3.2 移动端：Shadowrocket (小火箭) ===&lt;br /&gt;
&lt;br /&gt;
* 获取： 请使用美区 Apple ID 购买下载（官方价格约 $2.99）。&lt;br /&gt;
* 极速获取：[https://cutt.ly/CtSmpGlb 官方购买]&lt;br /&gt;
* 导入：&lt;br /&gt;
** 在服务器执行 &amp;lt;code&amp;gt;hysteria share -c /etc/hysteria/client.yaml --qr&amp;lt;/code&amp;gt; 生成二维码。&lt;br /&gt;
** 打开小火箭，点击左上角扫描按钮即可秒连。&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 4. 优化与进阶策略（防断流与防封杀） ==&lt;br /&gt;
&amp;lt;blockquote&amp;gt;关键建议： 在使用 HY2 时，建议将拥塞控制算法选为 BBR，而非 Brutal。&amp;lt;/blockquote&amp;gt;为什么要这么做？&lt;br /&gt;
&lt;br /&gt;
# 防止断流： Brutal 算法的发包模式过于暴力，虽然在极差网络下提速明显，但在普通网络下容易导致 UDP 缓冲区溢出，造成频繁断流。&lt;br /&gt;
# 保护账号： 部分 VPS 厂商（如搬瓦工、RackNerd 等）会监控异常的 UDP 流量。Brutal 算法的行为特征容易被误判为恶意 QoS 攻击或 DDOS 行为，从而导致 VPS 被关停或封禁。&lt;br /&gt;
# 公平性： BBR 算法更加“平滑”，在保证高带宽的同时，对骨干网更加友好，隐蔽性也更高。&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 5. 小结 ==&lt;br /&gt;
Hysteria 2 是目前最强的 UDP 代理协议之一，但“好马配好鞍”，合理的配置和优质的 VPS 线路才是长期稳定使用的保障。希望本指南能帮助你快速完成部署。&lt;/div&gt;</description>
			<pubDate>Sun, 12 Apr 2026 03:15:27 GMT</pubDate>
			<dc:creator>Afeinet</dc:creator>
			<comments>https://md5.pw/index.php?title=Talk:%E6%90%AD%E5%BB%BAVPN_%E9%AB%98%E9%80%9F%E4%B8%94%E7%A8%B3%E5%AE%9A%EF%BC%9AHysteria_2_(HY2)_%E5%8D%8F%E8%AE%AE%E5%85%A8%E5%B9%B3%E5%8F%B0%E5%BF%AB%E9%80%9F%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97</comments>
		</item>
		<item>
			<title>解决搬瓦工 VPS 时间偏差与任务执行异常</title>
			<link>https://md5.pw/index.php?title=%E8%A7%A3%E5%86%B3%E6%90%AC%E7%93%A6%E5%B7%A5_VPS_%E6%97%B6%E9%97%B4%E5%81%8F%E5%B7%AE%E4%B8%8E%E4%BB%BB%E5%8A%A1%E6%89%A7%E8%A1%8C%E5%BC%82%E5%B8%B8&amp;diff=1873&amp;oldid=1751</link>
			<guid isPermaLink="false">https://md5.pw/index.php?title=%E8%A7%A3%E5%86%B3%E6%90%AC%E7%93%A6%E5%B7%A5_VPS_%E6%97%B6%E9%97%B4%E5%81%8F%E5%B7%AE%E4%B8%8E%E4%BB%BB%E5%8A%A1%E6%89%A7%E8%A1%8C%E5%BC%82%E5%B8%B8&amp;diff=1873&amp;oldid=1751</guid>
			<description>&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2026年4月11日 (六) 07:25的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;第1行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第1行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;在管理搬瓦&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;工（BWH）VPS &lt;/del&gt;时，很多新手会遇到一个诡异的问题：明明设置了凌晨 3 点自动备份，结果系统却在下午跑任务。 或者是排查 Nginx、MariaDB 日志时，发现记录的时间比实际晚了十几个小时。&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;在管理搬瓦&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;工VPS &lt;/ins&gt;时，很多新手会遇到一个诡异的问题：明明设置了凌晨 3 点自动备份，结果系统却在下午跑任务。 或者是排查 Nginx、MariaDB 日志时，发现记录的时间比实际晚了十几个小时。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;这并不是系统出错了，而是因VPS 默认还停留在美国西海岸的“太平洋时间”。下文将彻底解决时区问题。&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;这并不是系统出错了，而是因VPS 默认还停留在美国西海岸的“太平洋时间”。下文将彻底解决时区问题。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l104&quot;&gt;第104行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第104行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;改完后，自动备份脚本、日志时间就彻底正常了，再也不用脑补 15 小时了~&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;改完后，自动备份脚本、日志时间就彻底正常了，再也不用脑补 15 小时了~&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:300 VPS 设置与管理 — VPS Setup and Management]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;index.php?title=&lt;/ins&gt;Category:300 VPS 设置与管理 — VPS Setup and Management]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key my_wiki:diff:1.41:old-1751:rev-1873:php=table --&gt;
&lt;/table&gt;</description>
			<pubDate>Sat, 11 Apr 2026 14:25:44 GMT</pubDate>
			<dc:creator>Ａ</dc:creator>
			<comments>https://md5.pw/index.php?title=Talk:%E8%A7%A3%E5%86%B3%E6%90%AC%E7%93%A6%E5%B7%A5_VPS_%E6%97%B6%E9%97%B4%E5%81%8F%E5%B7%AE%E4%B8%8E%E4%BB%BB%E5%8A%A1%E6%89%A7%E8%A1%8C%E5%BC%82%E5%B8%B8</comments>
		</item>
		<item>
			<title>KiwiVM 面板完整操作指南（重装 / 密码 / 2FA / 快照 / 迁移）</title>
			<link>https://md5.pw/index.php?title=KiwiVM_%E9%9D%A2%E6%9D%BF%E5%AE%8C%E6%95%B4%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97%EF%BC%88%E9%87%8D%E8%A3%85_/_%E5%AF%86%E7%A0%81_/_2FA_/_%E5%BF%AB%E7%85%A7_/_%E8%BF%81%E7%A7%BB%EF%BC%89&amp;diff=1872&amp;oldid=1870</link>
			<guid isPermaLink="false">https://md5.pw/index.php?title=KiwiVM_%E9%9D%A2%E6%9D%BF%E5%AE%8C%E6%95%B4%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97%EF%BC%88%E9%87%8D%E8%A3%85_/_%E5%AF%86%E7%A0%81_/_2FA_/_%E5%BF%AB%E7%85%A7_/_%E8%BF%81%E7%A7%BB%EF%BC%89&amp;diff=1872&amp;oldid=1870</guid>
			<description>&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2026年4月11日 (六) 07:04的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-multi&quot; lang=&quot;zh&quot;&gt;（未显示同一用户的1个中间版本）&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l80&quot;&gt;第80行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第80行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[File:kim-25.png]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[File:kim-25.png]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[File:kim-26.png]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[File:kim-26.png]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;3. WinAuth 添加 Google 类型，输入 Secret Code。&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;具体&lt;/del&gt;使用WinAuth方法可以看以下操作步骤&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;。&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;3. WinAuth 添加 Google 类型，输入 Secret Code&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;，也就是第1步中Key后面的那一串字母&lt;/ins&gt;。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;使用WinAuth方法可以看以下操作步骤&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;，解压开软件后可按下图操作&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[File:kim-26-2.png]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[File:kim-26-2.png]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[File:kim-26-3.png]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[File:kim-26-3.png]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l174&quot;&gt;第174行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第177行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[File:kim-44.png]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[File:kim-44.png]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:200 KiwiVM 简介 — KiwiVM Introduction]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key my_wiki:diff:1.41:old-1870:rev-1872:php=table --&gt;
&lt;/table&gt;</description>
			<pubDate>Sat, 11 Apr 2026 14:04:10 GMT</pubDate>
			<dc:creator>Ａ</dc:creator>
			<comments>https://md5.pw/index.php?title=Talk:KiwiVM_%E9%9D%A2%E6%9D%BF%E5%AE%8C%E6%95%B4%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97%EF%BC%88%E9%87%8D%E8%A3%85_/_%E5%AF%86%E7%A0%81_/_2FA_/_%E5%BF%AB%E7%85%A7_/_%E8%BF%81%E7%A7%BB%EF%BC%89</comments>
		</item>
		<item>
			<title>KiwiVM 面板完整操作指南（重装 / 密码 / 2FA / 快照 / 迁移）</title>
			<link>https://md5.pw/index.php?title=KiwiVM_%E9%9D%A2%E6%9D%BF%E5%AE%8C%E6%95%B4%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97%EF%BC%88%E9%87%8D%E8%A3%85_/_%E5%AF%86%E7%A0%81_/_2FA_/_%E5%BF%AB%E7%85%A7_/_%E8%BF%81%E7%A7%BB%EF%BC%89&amp;diff=1870&amp;oldid=0</link>
			<guid isPermaLink="false">https://md5.pw/index.php?title=KiwiVM_%E9%9D%A2%E6%9D%BF%E5%AE%8C%E6%95%B4%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97%EF%BC%88%E9%87%8D%E8%A3%85_/_%E5%AF%86%E7%A0%81_/_2FA_/_%E5%BF%AB%E7%85%A7_/_%E8%BF%81%E7%A7%BB%EF%BC%89&amp;diff=1870&amp;oldid=0</guid>
			<description>&lt;p&gt;发布&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;最近把 KiwiVM 面板的主要功能都完整操作了一遍，包括打开面板、重装系统、重置 root 密码、开启 2FA、快照的创建/Sticky/恢复/删除，以及机房迁移等常用操作。每一步都附上了真实截图和注意事项。&lt;br /&gt;
&lt;br /&gt;
本文按照实际操作顺序，详细讲解 KiwiVM 面板的完整使用流程：从如何正确进入面板开始，到常用开关机操作、重装系统、重置密码、开启与关闭 2FA、快照全生命周期管理，最后到机房迁移。&lt;br /&gt;
&lt;br /&gt;
**操作环境**：SPECIAL 20G KVM PROMO VPS，初始 AlmaLinux 9，后重装 Debian 12，从 US Los Angeles 迁到 EU Amsterdam DC9 (China Unicom Premium)。所有步骤均在 KiwiVM 面板完成。&lt;br /&gt;
&lt;br /&gt;
==提醒==&lt;br /&gt;
- 重装系统和恢复快照必须先 &amp;#039;&amp;#039;&amp;#039;Stop&amp;#039;&amp;#039;&amp;#039; 关机，否则会报错或按钮不可用。&lt;br /&gt;
&lt;br /&gt;
- 重装/恢复快照 = 当前所有数据永久丢失，无法找回。&amp;#039;&amp;#039;&amp;#039;操作前必须备份重要文件 + 创建快照&amp;#039;&amp;#039;&amp;#039;。&lt;br /&gt;
&lt;br /&gt;
- 迁移会改变 IPv4 地址（IPv6 不变），网站/服务需更新 DNS 和配置文件。&lt;br /&gt;
&lt;br /&gt;
- 2FA 开启后一定要记下Backup key + 绑定手机。&lt;br /&gt;
&lt;br /&gt;
- 快照免费但 30 天自动删，Sticky 最多 2 个（永不过期）。&lt;br /&gt;
&lt;br /&gt;
==一、进入KiwiVM面板==&lt;br /&gt;
1. 登录搬瓦工官网客户后台（Client Area）。顶部导航栏点击 **Services** → 下拉菜单选 **My Services**。&lt;br /&gt;
[[File:kim-1.png]]&lt;br /&gt;
2. 找到VPS，右侧点击齿轮 &amp;#039;&amp;#039;&amp;#039;Manage&amp;#039;&amp;#039;&amp;#039; 按钮 → 弹出菜单选 &amp;#039;&amp;#039;&amp;#039;Open KiwiVM&amp;#039;&amp;#039;&amp;#039;。&lt;br /&gt;
[[File:kim-2.png]]&lt;br /&gt;
3. 新标签页打开后就是 KiwiVM 主界面（Main controls）。左侧菜单有 Main controls、安全记录等，右侧显示节点、公网 IP、SSH 端口、资源使用情况。&lt;br /&gt;
[[File:kim-3.png]]&lt;br /&gt;
==二、常用操作（关机/启动/重启）==&lt;br /&gt;
下面详细讲解 KiwiVM 最基础的开关机操作，重装、恢复快照、迁移都必须在 Stopped 状态下进行，否则会报错。&lt;br /&gt;
===1.关机（Stop）：===&lt;br /&gt;
1.在 Main controls 页面，直接点击 &amp;#039;&amp;#039;&amp;#039;Stop&amp;#039;&amp;#039;&amp;#039; 按钮。&lt;br /&gt;
[[File:kim-4.png]]&lt;br /&gt;
2.页面显示“Great Success!”，点击 &amp;#039;&amp;#039;&amp;#039;Go back&amp;#039;&amp;#039;&amp;#039; 返回。&lt;br /&gt;
[[File:kim-5.png]]&lt;br /&gt;
3.确认 Status 变为 Stopped（红色），RAM/Swap 显示 Unavailable。&lt;br /&gt;
[[File:kim-6-1.png]]&lt;br /&gt;
===2.启动（Start）：===&lt;br /&gt;
1.机器 Stopped 后，点击 &amp;#039;&amp;#039;&amp;#039;Start&amp;#039;&amp;#039;&amp;#039; 按钮。&lt;br /&gt;
[[File:kim-6.png]]&lt;br /&gt;
2.页面显示“Great Success!”，几秒后 Status 变为 Running。&lt;br /&gt;
[[File:kim-7.png]]&lt;br /&gt;
===3.软重启（Reset）：===&lt;br /&gt;
1.运行中直接点击 &amp;#039;&amp;#039;&amp;#039;Reset&amp;#039;&amp;#039;&amp;#039; 按钮（不用先 Stop）。&lt;br /&gt;
[[File:kim-10.png]]&lt;br /&gt;
===4.强制断电（Hard Stop）：===&lt;br /&gt;
1.如果机器完全卡死，用 &amp;#039;&amp;#039;&amp;#039;Hard Stop&amp;#039;&amp;#039;&amp;#039;（带确认弹窗）。轻易不要使用，否则可能会导致丢失数据。&lt;br /&gt;
[[File:kim-11.png]]&lt;br /&gt;
&lt;br /&gt;
注意事项：&amp;#039;&amp;#039;&amp;#039;Hard Stop 只在卡死时用，正常操作用 Stop 就够了。删除快照本身不需要关机，但恢复快照仍需先 Stop。&lt;br /&gt;
==三、系统重装 (Install new OS)==&lt;br /&gt;
重装是 KiwiVM 最常用的操作之一，但也是最容易丢失数据的操作，请务必提前备份。&lt;br /&gt;
&lt;br /&gt;
1. 确认 VPS 已 Stopped（否则会报错，如下图）。&lt;br /&gt;
[[File:kim-16.png]]&lt;br /&gt;
2. 左侧菜单点击 &amp;#039;&amp;#039;&amp;#039;Install new OS&amp;#039;&amp;#039;&amp;#039;。选择 &amp;#039;&amp;#039;&amp;#039;debian-12-x86_64&amp;#039;&amp;#039;&amp;#039;（或其他需要的系统），勾选“&amp;#039;&amp;#039;&amp;#039;I acknowledge that this action will permanently erase all existing data&amp;#039;&amp;#039;&amp;#039;”。&lt;br /&gt;
[[File:kim-14.png]]&lt;br /&gt;
3. 点击 &amp;#039;&amp;#039;&amp;#039;Reload&amp;#039;&amp;#039;&amp;#039;，弹出确认框点“确定”。&lt;br /&gt;
[[File:kim-15.png]]&lt;br /&gt;
**注意事项**：&lt;br /&gt;
- 重装会永久删除当前 VPS 上所有数据**（包括文件、数据库、配置），无法恢复。请务必在操作前创建快照并备份重要文件。&lt;br /&gt;
&lt;br /&gt;
- 重装完成后，系统会自动发送一封邮件，里面包含**root 密码**和新的 IP 地址（通常 3 分钟后可用）。&lt;br /&gt;
&lt;br /&gt;
- SSH 端口默认仍是 22，使用密码登录后，建议立即修改密码或配置 SSH Key。&lt;br /&gt;
&lt;br /&gt;
- 如果重装后无法 SSH 登录，先用 VNC / Interactive Shell 进入系统检查网络配置。&lt;br /&gt;
&lt;br /&gt;
[[File:kim-18.png]]&lt;br /&gt;
==四、重置 Root 密码 (Root password reset)==&lt;br /&gt;
最好先 Stop 关机。再重置密码。&lt;br /&gt;
&lt;br /&gt;
1. 左侧点击 &amp;#039;&amp;#039;&amp;#039;Root password reset&amp;#039;&amp;#039;&amp;#039;，再点击 &amp;#039;&amp;#039;&amp;#039;Generate &amp;amp; Set New Root Password&amp;#039;&amp;#039;&amp;#039;。&lt;br /&gt;
&lt;br /&gt;
[[File:kim-20.png]]&lt;br /&gt;
&lt;br /&gt;
2. 页面显示新随机密码，复制保存，点击 Go back。&lt;br /&gt;
[[File:kim-21.png]]&lt;br /&gt;
==五、开启与关闭两步验证 (2FA)==&lt;br /&gt;
===1.开启2FA===&lt;br /&gt;
1. 左侧 &amp;#039;&amp;#039;&amp;#039;Security &amp;amp; Records&amp;#039;&amp;#039;&amp;#039; → &amp;#039;&amp;#039;&amp;#039;Two-factor authentication&amp;#039;&amp;#039;&amp;#039;再点击 &amp;#039;&amp;#039;&amp;#039;I understand, continue...&amp;#039;&amp;#039;&amp;#039;。&lt;br /&gt;
[[File:kim-22.png]]&lt;br /&gt;
2. 选择 &amp;#039;&amp;#039;&amp;#039;Windows&amp;#039;&amp;#039;&amp;#039;，下载 WinAuth 3.5.1（GitHub Releases）。&lt;br /&gt;
[[File:kim-25.png]]&lt;br /&gt;
[[File:kim-26.png]]&lt;br /&gt;
3. WinAuth 添加 Google 类型，输入 Secret Code。具体使用WinAuth方法可以看以下操作步骤。&lt;br /&gt;
[[File:kim-26-2.png]]&lt;br /&gt;
[[File:kim-26-3.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:kim-26-4.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:kim-26-5.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:kim-26-6.png]]&lt;br /&gt;
&lt;br /&gt;
4. 输入 6 位码完成 setup。&lt;br /&gt;
[[File:kim-27.png]]&lt;br /&gt;
5.激活成功后&amp;#039;&amp;#039;&amp;#039;立即备份 Backup key&amp;#039;&amp;#039;&amp;#039;，并点击 &amp;#039;&amp;#039;&amp;#039;Add phone&amp;#039;&amp;#039;&amp;#039; 绑定手机号（避免丢设备导致全数据丢失）。&lt;br /&gt;
[[File:kim-29.png]]&lt;br /&gt;
[[File:kim-35.png]]&lt;br /&gt;
6.以后登录需输入 Google Authenticator 码。&lt;br /&gt;
[[File:kim-33.png]]&lt;br /&gt;
&lt;br /&gt;
**注意事项**：WinAuth 时间不同步会报错，先同步电脑时间或 WinAuth 设置里 Sync with Google。&lt;br /&gt;
&lt;br /&gt;
===2.关闭2FA（Deactivate）===&lt;br /&gt;
1. 进入 Two-factor authentication 页面，点击 &amp;#039;&amp;#039;&amp;#039;Deactivate&amp;#039;&amp;#039;&amp;#039; 按钮。&lt;br /&gt;
[[File:kim-30.png]]&lt;br /&gt;
2. 输入手机/Google Authenticator 当前 6 位码，点击 &amp;#039;&amp;#039;&amp;#039;Disable&amp;#039;&amp;#039;&amp;#039;。&lt;br /&gt;
[[File:kim-37.png]]&lt;br /&gt;
3. 成功后 2FA 立即关闭（状态变为未启用）。&lt;br /&gt;
&lt;br /&gt;
**注意事项**：2FA 开启后每次登录都验证一次。Backup key + 手机绑定是双保险。关闭 2FA 也必须输入码，防止误操作。&lt;br /&gt;
==六、快照备份与还原 (Snapshots)==&lt;br /&gt;
快照是 KiwiVM 最实用的数据保护功能，建议养成定期创建的习惯。&lt;br /&gt;
&lt;br /&gt;
===1.创建快照：===&lt;br /&gt;
1. 左侧 &amp;#039;&amp;#039;&amp;#039;Snapshots&amp;#039;&amp;#039;&amp;#039; → &amp;#039;&amp;#039;&amp;#039;Create new snapshot&amp;#039;&amp;#039;&amp;#039;。&lt;br /&gt;
[[File:kim-47.png]]&lt;br /&gt;
2. 输入描述（如“qqq”），点击 &amp;#039;&amp;#039;&amp;#039;Create&amp;#039;&amp;#039;&amp;#039;。&lt;br /&gt;
[[File:kim-49.png]]&lt;br /&gt;
&lt;br /&gt;
===2.设Sticky（永不过期）：===&lt;br /&gt;
1. 列表中点击 &amp;#039;&amp;#039;&amp;#039;set sticky&amp;#039;&amp;#039;&amp;#039;。&lt;br /&gt;
[[File:kim-63.png]]&lt;br /&gt;
2. 成功显示 “Sticky, never expires”。&lt;br /&gt;
[[File:kim-65.png]]&lt;br /&gt;
3. 取消用 &amp;#039;&amp;#039;&amp;#039;unset sticky&amp;#039;&amp;#039;&amp;#039;。&lt;br /&gt;
[[File:kim-66.png]]&lt;br /&gt;
&lt;br /&gt;
===3.恢复快照（必须先Stop！）：===&lt;br /&gt;
1. 点击 &amp;#039;&amp;#039;&amp;#039;restore&amp;#039;&amp;#039;&amp;#039;。&lt;br /&gt;
[[File:kim-58.png]]&lt;br /&gt;
2. 勾选“&amp;#039;&amp;#039;&amp;#039;I agree with full data overwrite&amp;#039;&amp;#039;&amp;#039;”。&lt;br /&gt;
[[File:kim-59.png]]&lt;br /&gt;
3. 恢复中 VPS 自动停止+重启，面板锁定直到完成。&lt;br /&gt;
[[File:kim-60.png]]&lt;br /&gt;
[[File:kim-61.png]]&lt;br /&gt;
&lt;br /&gt;
===4.删除快照：===&lt;br /&gt;
1. 点击 &amp;#039;&amp;#039;&amp;#039;delete&amp;#039;&amp;#039;&amp;#039;。&lt;br /&gt;
[[File:kim-68.png]]&lt;br /&gt;
2. 成功提示。&lt;br /&gt;
[[File:kim-70.png]]&lt;br /&gt;
&lt;br /&gt;
**注意事项**：&lt;br /&gt;
- 恢复快照 = 当前所有更改（包括迁移后的配置）全部丢失，无法找回。&lt;br /&gt;
&lt;br /&gt;
- 快照 30 天自动删，Sticky 永不过期但限 2 个。&lt;br /&gt;
&lt;br /&gt;
- 删除快照后不可恢复，操作前确认不需要。&lt;br /&gt;
&lt;br /&gt;
- 创建和恢复快照时 VPS 会自动重启，删除本身可随时操作。&lt;br /&gt;
&lt;br /&gt;
- 可以点击 Export 把快照下载到本地保存，或 Import 其他 VM 的快照。&lt;br /&gt;
==七、机房迁移 (Migrate to another DC)==&lt;br /&gt;
下面演示如何把 VPS 从一个机房迁移到另一个机房（保留数据）。迁移是更换节点或优化线路的常用操作。&lt;br /&gt;
&lt;br /&gt;
1. 左侧 &amp;#039;&amp;#039;&amp;#039;Migrate to another DC&amp;#039;&amp;#039;&amp;#039;，选择目标节点（如 EU Amsterdam DC9 China Unicom Premium），点击 &amp;#039;&amp;#039;&amp;#039;Confirm on the next step&amp;#039;&amp;#039;&amp;#039;。&lt;br /&gt;
[[File:kim-39.png]]&lt;br /&gt;
2.点击&amp;#039;&amp;#039;&amp;#039;Start Migration&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
[[File:kim-40.png]]&lt;br /&gt;
3. 开始迁移&lt;br /&gt;
[[File:kim-42.png]]&lt;br /&gt;
&lt;br /&gt;
4.迁移开始完成，新 IP 显示（104.开头）。&lt;br /&gt;
[[File:kim-43.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;注意事项：&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
- 迁移会**完全改变 IPv4 地址**（IPv6 地址不变），迁移完成后需要更新域名 DNS 记录和网站/服务中的 IP 配置。&lt;br /&gt;
&lt;br /&gt;
- 迁移过程中 VPS 会短暂关机几秒到几分钟，期间服务不可用。&lt;br /&gt;
&lt;br /&gt;
-&amp;#039;&amp;#039;&amp;#039;操作前必须创建快照&amp;#039;&amp;#039;&amp;#039;，以防迁移失败或出现问题。&lt;br /&gt;
&lt;br /&gt;
- 迁移完成后会收到邮件通知，里面包含新 IP 地址。&lt;br /&gt;
&lt;br /&gt;
[[File:kim-44.png]]&lt;/div&gt;</description>
			<pubDate>Sat, 11 Apr 2026 13:47:19 GMT</pubDate>
			<dc:creator>Ａ</dc:creator>
			<comments>https://md5.pw/index.php?title=Talk:KiwiVM_%E9%9D%A2%E6%9D%BF%E5%AE%8C%E6%95%B4%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97%EF%BC%88%E9%87%8D%E8%A3%85_/_%E5%AF%86%E7%A0%81_/_2FA_/_%E5%BF%AB%E7%85%A7_/_%E8%BF%81%E7%A7%BB%EF%BC%89</comments>
		</item>
		<item>
			<title>File:Kim-20.png</title>
			<link>https://md5.pw/index.php?title=File:Kim-20.png&amp;diff=1869&amp;oldid=0</link>
			<guid isPermaLink="false">https://md5.pw/index.php?title=File:Kim-20.png&amp;diff=1869&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=User:%EF%BC%A1&quot; class=&quot;mw-userlink&quot; title=&quot;User:Ａ&quot;&gt;&lt;bdi&gt;Ａ&lt;/bdi&gt;&lt;/a&gt;上传&lt;a href=&quot;/index.php?title=File:Kim-20.png&quot; title=&quot;File:Kim-20.png&quot;&gt;File:Kim-20.png&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;</description>
			<pubDate>Sat, 11 Apr 2026 13:15:58 GMT</pubDate>
			<dc:creator>Ａ</dc:creator>
			<comments>https://md5.pw/index.php?title=File_talk:Kim-20.png</comments>
		</item>
		<item>
			<title>File:Kim-71.png</title>
			<link>https://md5.pw/index.php?title=File:Kim-71.png&amp;diff=1868&amp;oldid=0</link>
			<guid isPermaLink="false">https://md5.pw/index.php?title=File:Kim-71.png&amp;diff=1868&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=User:%EF%BC%A1&quot; class=&quot;mw-userlink&quot; title=&quot;User:Ａ&quot;&gt;&lt;bdi&gt;Ａ&lt;/bdi&gt;&lt;/a&gt;上传&lt;a href=&quot;/index.php?title=File:Kim-71.png&quot; title=&quot;File:Kim-71.png&quot;&gt;File:Kim-71.png&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;</description>
			<pubDate>Sat, 11 Apr 2026 13:03:22 GMT</pubDate>
			<dc:creator>Ａ</dc:creator>
			<comments>https://md5.pw/index.php?title=File_talk:Kim-71.png</comments>
		</item>
		<item>
			<title>File:Kim-70.png</title>
			<link>https://md5.pw/index.php?title=File:Kim-70.png&amp;diff=1867&amp;oldid=0</link>
			<guid isPermaLink="false">https://md5.pw/index.php?title=File:Kim-70.png&amp;diff=1867&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=User:%EF%BC%A1&quot; class=&quot;mw-userlink&quot; title=&quot;User:Ａ&quot;&gt;&lt;bdi&gt;Ａ&lt;/bdi&gt;&lt;/a&gt;上传&lt;a href=&quot;/index.php?title=File:Kim-70.png&quot; title=&quot;File:Kim-70.png&quot;&gt;File:Kim-70.png&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;</description>
			<pubDate>Sat, 11 Apr 2026 13:03:14 GMT</pubDate>
			<dc:creator>Ａ</dc:creator>
			<comments>https://md5.pw/index.php?title=File_talk:Kim-70.png</comments>
		</item>
		<item>
			<title>File:Kim-69.png</title>
			<link>https://md5.pw/index.php?title=File:Kim-69.png&amp;diff=1866&amp;oldid=0</link>
			<guid isPermaLink="false">https://md5.pw/index.php?title=File:Kim-69.png&amp;diff=1866&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=User:%EF%BC%A1&quot; class=&quot;mw-userlink&quot; title=&quot;User:Ａ&quot;&gt;&lt;bdi&gt;Ａ&lt;/bdi&gt;&lt;/a&gt;上传&lt;a href=&quot;/index.php?title=File:Kim-69.png&quot; title=&quot;File:Kim-69.png&quot;&gt;File:Kim-69.png&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;</description>
			<pubDate>Sat, 11 Apr 2026 13:03:07 GMT</pubDate>
			<dc:creator>Ａ</dc:creator>
			<comments>https://md5.pw/index.php?title=File_talk:Kim-69.png</comments>
		</item>
		<item>
			<title>File:Kim-68.png</title>
			<link>https://md5.pw/index.php?title=File:Kim-68.png&amp;diff=1865&amp;oldid=0</link>
			<guid isPermaLink="false">https://md5.pw/index.php?title=File:Kim-68.png&amp;diff=1865&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=User:%EF%BC%A1&quot; class=&quot;mw-userlink&quot; title=&quot;User:Ａ&quot;&gt;&lt;bdi&gt;Ａ&lt;/bdi&gt;&lt;/a&gt;上传&lt;a href=&quot;/index.php?title=File:Kim-68.png&quot; title=&quot;File:Kim-68.png&quot;&gt;File:Kim-68.png&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;</description>
			<pubDate>Sat, 11 Apr 2026 13:02:56 GMT</pubDate>
			<dc:creator>Ａ</dc:creator>
			<comments>https://md5.pw/index.php?title=File_talk:Kim-68.png</comments>
		</item>
		<item>
			<title>File:Kim-67.png</title>
			<link>https://md5.pw/index.php?title=File:Kim-67.png&amp;diff=1864&amp;oldid=0</link>
			<guid isPermaLink="false">https://md5.pw/index.php?title=File:Kim-67.png&amp;diff=1864&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=User:%EF%BC%A1&quot; class=&quot;mw-userlink&quot; title=&quot;User:Ａ&quot;&gt;&lt;bdi&gt;Ａ&lt;/bdi&gt;&lt;/a&gt;上传&lt;a href=&quot;/index.php?title=File:Kim-67.png&quot; title=&quot;File:Kim-67.png&quot;&gt;File:Kim-67.png&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;</description>
			<pubDate>Sat, 11 Apr 2026 13:02:50 GMT</pubDate>
			<dc:creator>Ａ</dc:creator>
			<comments>https://md5.pw/index.php?title=File_talk:Kim-67.png</comments>
		</item>
		<item>
			<title>File:Kim-66.png</title>
			<link>https://md5.pw/index.php?title=File:Kim-66.png&amp;diff=1863&amp;oldid=0</link>
			<guid isPermaLink="false">https://md5.pw/index.php?title=File:Kim-66.png&amp;diff=1863&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=User:%EF%BC%A1&quot; class=&quot;mw-userlink&quot; title=&quot;User:Ａ&quot;&gt;&lt;bdi&gt;Ａ&lt;/bdi&gt;&lt;/a&gt;上传&lt;a href=&quot;/index.php?title=File:Kim-66.png&quot; title=&quot;File:Kim-66.png&quot;&gt;File:Kim-66.png&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;</description>
			<pubDate>Sat, 11 Apr 2026 13:02:40 GMT</pubDate>
			<dc:creator>Ａ</dc:creator>
			<comments>https://md5.pw/index.php?title=File_talk:Kim-66.png</comments>
		</item>
		<item>
			<title>File:Kim-65.png</title>
			<link>https://md5.pw/index.php?title=File:Kim-65.png&amp;diff=1862&amp;oldid=0</link>
			<guid isPermaLink="false">https://md5.pw/index.php?title=File:Kim-65.png&amp;diff=1862&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=User:%EF%BC%A1&quot; class=&quot;mw-userlink&quot; title=&quot;User:Ａ&quot;&gt;&lt;bdi&gt;Ａ&lt;/bdi&gt;&lt;/a&gt;上传&lt;a href=&quot;/index.php?title=File:Kim-65.png&quot; title=&quot;File:Kim-65.png&quot;&gt;File:Kim-65.png&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;</description>
			<pubDate>Sat, 11 Apr 2026 13:02:32 GMT</pubDate>
			<dc:creator>Ａ</dc:creator>
			<comments>https://md5.pw/index.php?title=File_talk:Kim-65.png</comments>
		</item>
		<item>
			<title>File:Kim-64.png</title>
			<link>https://md5.pw/index.php?title=File:Kim-64.png&amp;diff=1861&amp;oldid=0</link>
			<guid isPermaLink="false">https://md5.pw/index.php?title=File:Kim-64.png&amp;diff=1861&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=User:%EF%BC%A1&quot; class=&quot;mw-userlink&quot; title=&quot;User:Ａ&quot;&gt;&lt;bdi&gt;Ａ&lt;/bdi&gt;&lt;/a&gt;上传&lt;a href=&quot;/index.php?title=File:Kim-64.png&quot; title=&quot;File:Kim-64.png&quot;&gt;File:Kim-64.png&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;</description>
			<pubDate>Sat, 11 Apr 2026 13:02:24 GMT</pubDate>
			<dc:creator>Ａ</dc:creator>
			<comments>https://md5.pw/index.php?title=File_talk:Kim-64.png</comments>
		</item>
		<item>
			<title>File:Kim-63.png</title>
			<link>https://md5.pw/index.php?title=File:Kim-63.png&amp;diff=1860&amp;oldid=0</link>
			<guid isPermaLink="false">https://md5.pw/index.php?title=File:Kim-63.png&amp;diff=1860&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=User:%EF%BC%A1&quot; class=&quot;mw-userlink&quot; title=&quot;User:Ａ&quot;&gt;&lt;bdi&gt;Ａ&lt;/bdi&gt;&lt;/a&gt;上传&lt;a href=&quot;/index.php?title=File:Kim-63.png&quot; title=&quot;File:Kim-63.png&quot;&gt;File:Kim-63.png&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;</description>
			<pubDate>Sat, 11 Apr 2026 13:00:58 GMT</pubDate>
			<dc:creator>Ａ</dc:creator>
			<comments>https://md5.pw/index.php?title=File_talk:Kim-63.png</comments>
		</item>
		<item>
			<title>File:Kim-62.png</title>
			<link>https://md5.pw/index.php?title=File:Kim-62.png&amp;diff=1859&amp;oldid=0</link>
			<guid isPermaLink="false">https://md5.pw/index.php?title=File:Kim-62.png&amp;diff=1859&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=User:%EF%BC%A1&quot; class=&quot;mw-userlink&quot; title=&quot;User:Ａ&quot;&gt;&lt;bdi&gt;Ａ&lt;/bdi&gt;&lt;/a&gt;上传&lt;a href=&quot;/index.php?title=File:Kim-62.png&quot; title=&quot;File:Kim-62.png&quot;&gt;File:Kim-62.png&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;</description>
			<pubDate>Sat, 11 Apr 2026 13:00:47 GMT</pubDate>
			<dc:creator>Ａ</dc:creator>
			<comments>https://md5.pw/index.php?title=File_talk:Kim-62.png</comments>
		</item>
		<item>
			<title>File:Kim-61.png</title>
			<link>https://md5.pw/index.php?title=File:Kim-61.png&amp;diff=1858&amp;oldid=0</link>
			<guid isPermaLink="false">https://md5.pw/index.php?title=File:Kim-61.png&amp;diff=1858&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=User:%EF%BC%A1&quot; class=&quot;mw-userlink&quot; title=&quot;User:Ａ&quot;&gt;&lt;bdi&gt;Ａ&lt;/bdi&gt;&lt;/a&gt;上传&lt;a href=&quot;/index.php?title=File:Kim-61.png&quot; title=&quot;File:Kim-61.png&quot;&gt;File:Kim-61.png&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;</description>
			<pubDate>Sat, 11 Apr 2026 13:00:41 GMT</pubDate>
			<dc:creator>Ａ</dc:creator>
			<comments>https://md5.pw/index.php?title=File_talk:Kim-61.png</comments>
		</item>
		<item>
			<title>File:Kim-60.png</title>
			<link>https://md5.pw/index.php?title=File:Kim-60.png&amp;diff=1857&amp;oldid=0</link>
			<guid isPermaLink="false">https://md5.pw/index.php?title=File:Kim-60.png&amp;diff=1857&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=User:%EF%BC%A1&quot; class=&quot;mw-userlink&quot; title=&quot;User:Ａ&quot;&gt;&lt;bdi&gt;Ａ&lt;/bdi&gt;&lt;/a&gt;上传&lt;a href=&quot;/index.php?title=File:Kim-60.png&quot; title=&quot;File:Kim-60.png&quot;&gt;File:Kim-60.png&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;</description>
			<pubDate>Sat, 11 Apr 2026 13:00:34 GMT</pubDate>
			<dc:creator>Ａ</dc:creator>
			<comments>https://md5.pw/index.php?title=File_talk:Kim-60.png</comments>
		</item>
		<item>
			<title>File:Kim-59.png</title>
			<link>https://md5.pw/index.php?title=File:Kim-59.png&amp;diff=1856&amp;oldid=0</link>
			<guid isPermaLink="false">https://md5.pw/index.php?title=File:Kim-59.png&amp;diff=1856&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=User:%EF%BC%A1&quot; class=&quot;mw-userlink&quot; title=&quot;User:Ａ&quot;&gt;&lt;bdi&gt;Ａ&lt;/bdi&gt;&lt;/a&gt;上传&lt;a href=&quot;/index.php?title=File:Kim-59.png&quot; title=&quot;File:Kim-59.png&quot;&gt;File:Kim-59.png&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;</description>
			<pubDate>Sat, 11 Apr 2026 13:00:26 GMT</pubDate>
			<dc:creator>Ａ</dc:creator>
			<comments>https://md5.pw/index.php?title=File_talk:Kim-59.png</comments>
		</item>
		<item>
			<title>File:Kim-58.png</title>
			<link>https://md5.pw/index.php?title=File:Kim-58.png&amp;diff=1855&amp;oldid=0</link>
			<guid isPermaLink="false">https://md5.pw/index.php?title=File:Kim-58.png&amp;diff=1855&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=User:%EF%BC%A1&quot; class=&quot;mw-userlink&quot; title=&quot;User:Ａ&quot;&gt;&lt;bdi&gt;Ａ&lt;/bdi&gt;&lt;/a&gt;上传&lt;a href=&quot;/index.php?title=File:Kim-58.png&quot; title=&quot;File:Kim-58.png&quot;&gt;File:Kim-58.png&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;</description>
			<pubDate>Sat, 11 Apr 2026 12:59:56 GMT</pubDate>
			<dc:creator>Ａ</dc:creator>
			<comments>https://md5.pw/index.php?title=File_talk:Kim-58.png</comments>
		</item>
		<item>
			<title>File:Kim-57.png</title>
			<link>https://md5.pw/index.php?title=File:Kim-57.png&amp;diff=1854&amp;oldid=0</link>
			<guid isPermaLink="false">https://md5.pw/index.php?title=File:Kim-57.png&amp;diff=1854&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=User:%EF%BC%A1&quot; class=&quot;mw-userlink&quot; title=&quot;User:Ａ&quot;&gt;&lt;bdi&gt;Ａ&lt;/bdi&gt;&lt;/a&gt;上传&lt;a href=&quot;/index.php?title=File:Kim-57.png&quot; title=&quot;File:Kim-57.png&quot;&gt;File:Kim-57.png&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;</description>
			<pubDate>Sat, 11 Apr 2026 12:59:50 GMT</pubDate>
			<dc:creator>Ａ</dc:creator>
			<comments>https://md5.pw/index.php?title=File_talk:Kim-57.png</comments>
		</item>
		<item>
			<title>File:Kim-51.png</title>
			<link>https://md5.pw/index.php?title=File:Kim-51.png&amp;diff=1853&amp;oldid=0</link>
			<guid isPermaLink="false">https://md5.pw/index.php?title=File:Kim-51.png&amp;diff=1853&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=User:%EF%BC%A1&quot; class=&quot;mw-userlink&quot; title=&quot;User:Ａ&quot;&gt;&lt;bdi&gt;Ａ&lt;/bdi&gt;&lt;/a&gt;上传&lt;a href=&quot;/index.php?title=File:Kim-51.png&quot; title=&quot;File:Kim-51.png&quot;&gt;File:Kim-51.png&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;</description>
			<pubDate>Sat, 11 Apr 2026 12:59:43 GMT</pubDate>
			<dc:creator>Ａ</dc:creator>
			<comments>https://md5.pw/index.php?title=File_talk:Kim-51.png</comments>
		</item>
		<item>
			<title>File:Kim-50.png</title>
			<link>https://md5.pw/index.php?title=File:Kim-50.png&amp;diff=1852&amp;oldid=0</link>
			<guid isPermaLink="false">https://md5.pw/index.php?title=File:Kim-50.png&amp;diff=1852&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=User:%EF%BC%A1&quot; class=&quot;mw-userlink&quot; title=&quot;User:Ａ&quot;&gt;&lt;bdi&gt;Ａ&lt;/bdi&gt;&lt;/a&gt;上传&lt;a href=&quot;/index.php?title=File:Kim-50.png&quot; title=&quot;File:Kim-50.png&quot;&gt;File:Kim-50.png&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;</description>
			<pubDate>Sat, 11 Apr 2026 12:59:35 GMT</pubDate>
			<dc:creator>Ａ</dc:creator>
			<comments>https://md5.pw/index.php?title=File_talk:Kim-50.png</comments>
		</item>
		<item>
			<title>File:Kim-49.png</title>
			<link>https://md5.pw/index.php?title=File:Kim-49.png&amp;diff=1851&amp;oldid=0</link>
			<guid isPermaLink="false">https://md5.pw/index.php?title=File:Kim-49.png&amp;diff=1851&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=User:%EF%BC%A1&quot; class=&quot;mw-userlink&quot; title=&quot;User:Ａ&quot;&gt;&lt;bdi&gt;Ａ&lt;/bdi&gt;&lt;/a&gt;上传&lt;a href=&quot;/index.php?title=File:Kim-49.png&quot; title=&quot;File:Kim-49.png&quot;&gt;File:Kim-49.png&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;</description>
			<pubDate>Sat, 11 Apr 2026 12:59:24 GMT</pubDate>
			<dc:creator>Ａ</dc:creator>
			<comments>https://md5.pw/index.php?title=File_talk:Kim-49.png</comments>
		</item>
		<item>
			<title>File:Kim-47.png</title>
			<link>https://md5.pw/index.php?title=File:Kim-47.png&amp;diff=1850&amp;oldid=0</link>
			<guid isPermaLink="false">https://md5.pw/index.php?title=File:Kim-47.png&amp;diff=1850&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=User:%EF%BC%A1&quot; class=&quot;mw-userlink&quot; title=&quot;User:Ａ&quot;&gt;&lt;bdi&gt;Ａ&lt;/bdi&gt;&lt;/a&gt;上传&lt;a href=&quot;/index.php?title=File:Kim-47.png&quot; title=&quot;File:Kim-47.png&quot;&gt;File:Kim-47.png&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;</description>
			<pubDate>Sat, 11 Apr 2026 12:59:19 GMT</pubDate>
			<dc:creator>Ａ</dc:creator>
			<comments>https://md5.pw/index.php?title=File_talk:Kim-47.png</comments>
		</item>
		<item>
			<title>File:Kim-46.png</title>
			<link>https://md5.pw/index.php?title=File:Kim-46.png&amp;diff=1849&amp;oldid=0</link>
			<guid isPermaLink="false">https://md5.pw/index.php?title=File:Kim-46.png&amp;diff=1849&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=User:%EF%BC%A1&quot; class=&quot;mw-userlink&quot; title=&quot;User:Ａ&quot;&gt;&lt;bdi&gt;Ａ&lt;/bdi&gt;&lt;/a&gt;上传&lt;a href=&quot;/index.php?title=File:Kim-46.png&quot; title=&quot;File:Kim-46.png&quot;&gt;File:Kim-46.png&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;</description>
			<pubDate>Sat, 11 Apr 2026 12:59:13 GMT</pubDate>
			<dc:creator>Ａ</dc:creator>
			<comments>https://md5.pw/index.php?title=File_talk:Kim-46.png</comments>
		</item>
		<item>
			<title>File:Kim-45.png</title>
			<link>https://md5.pw/index.php?title=File:Kim-45.png&amp;diff=1848&amp;oldid=0</link>
			<guid isPermaLink="false">https://md5.pw/index.php?title=File:Kim-45.png&amp;diff=1848&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=User:%EF%BC%A1&quot; class=&quot;mw-userlink&quot; title=&quot;User:Ａ&quot;&gt;&lt;bdi&gt;Ａ&lt;/bdi&gt;&lt;/a&gt;上传&lt;a href=&quot;/index.php?title=File:Kim-45.png&quot; title=&quot;File:Kim-45.png&quot;&gt;File:Kim-45.png&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;</description>
			<pubDate>Sat, 11 Apr 2026 12:59:03 GMT</pubDate>
			<dc:creator>Ａ</dc:creator>
			<comments>https://md5.pw/index.php?title=File_talk:Kim-45.png</comments>
		</item>
</channel></rss>