自建 VPN 教程:用门罗币租 VPS 搭建 WireGuard
发布于 15 Oct 2026
在便宜的 VPS 上用 WireGuard 自建 VPN,用 Monero 付款:分步搭建教程、真实花费,以及个人 VPN 隐藏不了的东西。

自建 VPN,就是在你租来的一台小型 VPS 上运行 WireGuard 服务器:手机和笔记本电脑通过隧道连到它,你访问的网站看到的是服务器的地址,而不是你家里的网络连接。自己搭一个 VPN 只需要几条命令,每月大约 €3 到 $10;如果用 Monero(门罗币)付款,而主机商最多只要一个邮箱,账单上就不会出现你的名字。但它不会让你变得匿名,这份教程就从这个取舍讲起。
核对于 2026 年 10 月 1 日。
VPS 与 VPN 的区别:各自能隐藏什么
VPS(虚拟专用服务器)是一台租来的虚拟机,它本身什么也不隐藏。VPN(虚拟专用网络)是一条从你的设备通往服务器的加密隧道:你所在的网络只看到发往同一个地址的加密数据包,网站看到的则是服务器,而不是你。
在 VPS 上装好 VPN 软件,你就有了自己的 VPN;订阅 Mullvad 或 IVPN,你就是和别人共用他们的。谁能看到什么:
| 谁能看到什么 | 不用 VPN | VPS 上的自建 VPN | 共享的商业 VPN |
|---|---|---|---|
| 你的宽带运营商或咖啡馆 Wi-Fi | 你访问的每一个网站 | 发往同一台服务器的加密 UDP 流量 | 发往 VPN 服务器的加密流量 |
| 你访问的网站 | 你家里的 IP | 你的服务器 IP,只有你一个人在用 | 许多用户共用的一个 IP |
| 服务器的运营者 | 不涉及服务器 | 你的主机商能看到流量大小和连入的 IP | VPN 公司,取决于它的日志政策 |
什么时候适合自建 VPN,什么时候共享 VPN 更好
动手自己搭 VPN 之前,先想清楚你要躲的是谁。如果威胁来自你脚下的网络(酒店 Wi-Fi、记录你浏览内容的运营商、公司的网络过滤),自建 VPN 占优。它还给你一个固定的出口地址,而且不必信任任何 VPN 公司。
如果威胁在另一端,它就落了下风。只有你一个人用的出口 IP 就像指纹:只要用它登录一个实名账户,这个地址也就跟你的名字绑在了一起。你的主机商也知道这个 IP 背后只有一个客户;如果它保留流量记录,还知道每天早上是哪个地址连进来:你家。
共享 VPN 把你藏在人群里:每个出口地址指向的是 VPN 公司,而不是某个人。我们的 VPN 与代理分类列出了收 Monero 的那些服务。如果要对网站本身保持匿名,两者都替代不了 Tor 浏览器。
准备工作:KVM VPS、机房位置、Monero 付款
选 KVM,不选容器。 KVM VPS 有自己的 Linux 内核,WireGuard 已经内置其中;容器型 VPS(OpenVZ、LXC)共用主机商的内核,可能不允许你加载它。
小配置就够。 个人 VPN 服务器对 CPU 和内存的需求很低,要看的是流量额度。每月 1 TB 大约相当于全天候 3 Mbit/s。
机房离你近一些,因为距离会增加延迟。司法管辖区决定了谁可以向主机商调取记录,我们的离岸 VPS 指南讲的就是这个。
别让注册环节抵消付款的隐私。 Monero 让你的名字不出现在账单上,但只要留一个手机号或做一次身份证件核验,名字就又回来了。完整的下单流程见我们的免 KYC 分步教程。
以下是收 Monero、可以跑 WireGuard 的 VPS,按字母顺序排列,信息来自各家主机商自己的页面:
| 主机商 | 最低套餐 | 流量 | 注册时要求 | 备注 |
|---|---|---|---|---|
| 1984 Hosting | 每月 €8.72(1 CPU,1 GB 内存) | 1 TB | 邮箱,手机号可选 | 冰岛;提供现成的 WireGuard 镜像 |
| Cockbox | 每月 $10(0.5 vCPU,1 GB 内存) | 摩尔多瓦机房「不限量」 | 邮箱(不验证)和密码 | 摩尔多瓦、罗马尼亚;Bitcoin 或 Monero |
| Kyun | 每月约 €3.10(1 核,1 GiB,10 GB,一个 IPv4) | 未公布 | 密码和一道工作量证明谜题 | 只收 Monero;美国、荷兰、罗马尼亚 |
| Servers Guru | 每月 €4.99(1 vCPU,2 GB 内存) | 出站 20 TB,入站不计量 | 邮箱 | 荷兰、芬兰、新加坡、加拿大 |
| SporeStack | 每月 $4(Slow Servers,768 MiB,IPv4) | 0.375 TiB | 什么都不要:只需给一个令牌充值 | Slow Servers 位于美国斯波坎,开通最长需要 48 小时;DigitalOcean 和 Vultr 服务器几分钟内开通,每 30 天 $7.50 起 |
Mynymbox(每月 €4 起,只要邮箱)在其可接受使用政策中允许运行 VPN 服务,但核对当天它所有的 VPS 套餐都显示缺货。更多选择见 VPS 分类。
在 VPS 上搭建 WireGuard
WireGuard 自 5.6 版起就是 Linux 内核的一部分,该版本于 2020 年 3 月发布(公告),所以在 Debian 12、13 或 Ubuntu 24.04 及更新版本上无需编译任何东西。用你的 SSH 密钥以 root 身份登录,然后选一种方式。
方案 A:用 wg-quick 配置原生 WireGuard
手动配置一个完整的 WireGuard 服务器。运行 ip route show default,记下 dev 后面的那个词(通常是 eth0 或 ens3):下文凡是出现 eth0 的地方都换成它。
apt update && apt install -y wireguard iptables qrencode
cd /etc/wireguard
umask 077
wg genkey | tee server.key | wg pubkey > server.pub
wg genkey | tee phone.key | wg pubkey > phone.pub
创建 /etc/wireguard/wg0.conf:
[Interface]
Address = 10.66.66.1/24
ListenPort = 51820
PrivateKey = <contents of server.key>
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[Peer]
PublicKey = <contents of phone.pub>
AllowedIPs = 10.66.66.2/32
再创建客户端配置文件 phone.conf:
[Interface]
PrivateKey = <contents of phone.key>
Address = 10.66.66.2/32
DNS = 9.9.9.9
[Peer]
PublicKey = <contents of server.pub>
Endpoint = <server IP>:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25
AllowedIPs = 0.0.0.0/0, ::/0 让所有流量都走隧道;由于这台服务器只转发 IPv4,IPv6 流量会直接失败,而不会绕过隧道泄露出去。启动服务器,并把客户端配置显示成二维码,供 WireGuard 应用扫描:
systemctl enable --now wg-quick@wg0
qrencode -t ansiutf8 < phone.conf
每多一台设备,就多生成一对密钥、多加一个 [Peer] 块(10.66.66.3/32,依此类推),然后运行 systemctl restart wg-quick@wg0。设备拿到配置之后,就从服务器上删掉它的 .key 和 .conf 文件。
方案 B:用 Docker 运行 wg-easy,带网页界面
wg-easy 把 WireGuard 封装进一个容器,并提供网页界面,用来添加客户端、显示二维码。它的 GitHub 页面显示:许可证为 AGPL-3.0-only,15.4.0 版发布于 2026 年 8 月,2026 年 9 月下旬仍有提交。安装 Docker 并下载 compose 文件:
curl -sSL https://get.docker.com | sh
mkdir -p /etc/docker/containers/wg-easy
cd /etc/docker/containers/wg-easy
curl -o docker-compose.yml https://raw.githubusercontent.com/wg-easy/wg-easy/master/docker-compose.yml
这个文件运行的是 ghcr.io/wg-easy/wg-easy:15,WireGuard 走 UDP 51820,网页界面走 TCP 51821,并且对互联网开放。项目建议通过 HTTPS 反向代理从外部访问界面;如果只有你一个人用,更简单的做法是让界面保持私有。把它的端口那一行改成 "127.0.0.1:51821:51821/tcp",然后取消 environment: 一行及其下方 INSECURE 一行的注释,值设为 true。这里之所以可以用明文 HTTP,只是因为外部无法访问它,这也正是项目的无反向代理指南所设定的条件。运行 docker compose up -d,然后从你的电脑建立 SSH 隧道,在浏览器中打开 http://localhost:51821:
ssh -L 51821:127.0.0.1:51821 root@<server IP>
不要改用 ufw 来隐藏这个端口:Docker 的文档警告,通过 Docker 发布的端口会绕过 ufw 的规则。
IP 转发、防火墙和 DNS
方案 A 需要开启数据包转发(wg-easy 的 compose 文件会为它的容器设置好),然后配置一个只放行 SSH 和 WireGuard 的防火墙。如果你的 SSH 监听在别的端口,请把 22 改掉;ufw enable 弹出关于 SSH 的警告时,回答 y:
echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/99-wireguard.conf
sysctl --system
apt install -y ufw
ufw allow 22/tcp
ufw allow 51820/udp
ufw route allow in on wg0 out on eth0
ufw enable
DNS = 这一行决定由谁来回答你的域名查询。用 9.9.9.9(Quad9)时,查询会经过隧道,你的运营商看不到了,但 Quad9 能看到。如果不想牵涉任何第三方,就在服务器上运行一个解析器,比如 Unbound,监听 10.66.66.1,用 ufw allow in on wg0 to any port 53 向隧道开放它,再把 DNS = 指向这个地址。
测试方法:打开隧道后,随便打开一个查询自己公网 IP 的网页,显示的应该是服务器的地址。
在受审查的网络中:AmneziaWG、Outline 和 VLESS
WireGuard 不做伪装:它的文档把混淆交给上层去处理,而且它没有 TCP 模式(已知局限)。会对数据包做深度检测的网络可以识别并丢弃它。有三个开源项目专门应对这种情况,都能跑在同类 VPS 上:
- AmneziaWG 是 Amnezia 项目基于 WireGuard-Go 的分支:它在握手之前发送垃圾数据包,把 WireGuard 固定的消息头换成你自己选定的值,并填充数据包,让包长不再与 WireGuard 的特征对上。关闭这些选项后,它仍与 WireGuard 兼容(文档)。AmneziaVPN 应用可以通过 SSH 把它安装到你的服务器上。
- Outline 运行一个 Shadowsocks 服务器,通过桌面应用来管理。它由 Google 内部的孵化器 Jigsaw 于 2018 年推出,2026 年移交给独立的 Outline Foundation(常见问题)。
- VLESS 是 Xray 项目的轻量级传输协议(规范),通常跑在 443 端口上,套用 TLS 或 Xray 的 REALITY,让连接看起来像普通的 HTTPS。
这些工具之所以存在,是因为一些国家限制 VPN。以下是截至 2026 年 10 月 1 日的概述,不构成法律建议:
- 中国: 工业和信息化部 2017 年 1 月发布的一份通知规定,未经批准,不得自行建立或租用 VPN 等信道开展跨境经营活动(官方文本)。
- 俄罗斯: 2025 年 7 月 31 日第 281-FZ 号联邦法律自 2025 年 9 月 1 日起施行,对两类人处以罚款:为访问被封锁资源的工具(例如 VPN)做广告的人,以及明知是官方极端主义材料清单上的内容仍去搜索并打开的人(无论是否借助此类工具)。
- 伊朗: 2024 年 2 月,网络空间最高委员会宣布一项决议,禁止在没有合法许可的情况下使用 VPN;该委员会秘书后来表示,决议针对的是国家机关而非公众,因此适用范围仍不明确。
规则和执法都会变化。请查明你所在地的现行法律。
别让服务器泄露信息
SSH 只用密钥登录。 在
/etc/ssh/sshd_config.d/10-keys.conf中写入PasswordAuthentication no,运行systemctl reload ssh,然后在另一个窗口确认你的密钥仍然能登录。使用专为这台服务器生成的密钥。自动安全更新。 运行
apt install -y unattended-upgrades,再用dpkg-reconfigure -plow unattended-upgrades开启。日志放在内存里。
wg show显示的每个对端的最近地址只保存在内存中,而 SSH 会记录每一次登录及其来源 IP。把系统日志也放进内存:mkdir -p /etc/systemd/journald.conf.d printf '[Journal]\nStorage=volatile\n' > /etc/systemd/journald.conf.d/volatile.conf systemctl restart systemd-journald这样日志就存放在
/run/log/journal下,重启即消失。如果装了rsyslog,它会在/var/log中另写自己的日志文件。SSH 走隧道。 方案 A 运行正常后,执行
ufw allow in on wg0 to any port 22 proto tcp和ufw delete allow 22/tcp,之后改为连接10.66.66.1。万一隧道断了,主机商提供的网页控制台或串口控制台(如果有的话)就是你重新进去的途径。一台服务器,一个身份。 不要复用你其他账户的邮箱、SSH 密钥或用户名。
与 Mullvad、IVPN 相比要花多少钱
| 方案 | 每月费用 | 设备数 | 出口地址 |
|---|---|---|---|
| 自己的 VPS(见上表) | 约 €3.10 到 $10 | 你配置多少台就是多少台 | 你独享 |
| Mullvad | €5,不论购买时长都一样 | 5 | 共享 |
| IVPN Standard | $6(每周 $2,每年 $60) | 5 | 共享 |
| cryptostorm | $6 | 1 | 共享 |
这三家服务都收 Monero。最便宜的服务器价格比它们低,但你要在搭建和更新上花工夫,还得接受一个永远只指向你的出口地址。你也可以两者兼用:在酒店 Wi-Fi 上用自己的服务器,凡是不应追溯到某一个用户的事,都交给共享 VPN。
常见问题
可以自建 VPN 吗?
可以。任何带 KVM 和公网 IPv4 地址的 Linux VPS 都能运行 WireGuard,它自 Linux 5.6 起就是内核的一部分。上面的方案 A 就是完整的方法,wg-easy 则多了一个网页界面。在家里用树莓派也行,但那样出口地址就是你家里的 IP。
VPS 比 VPN 更安全吗?
两者不是一回事:VPS 是服务器,VPN 是隧道。在 VPS 上自建 VPN 意味着不必信任任何 VPN 公司,但你是出口地址的唯一用户,也是负责给它打补丁的人。如果想混在人群里,用 Monero 付款的共享无日志 VPN 是更好的工具。
能把我的 VPS 当 VPN 用吗?
通常可以:只要主机商的规则允许,一个开启了 IP 转发的 KVM 套餐就够了。Mynymbox 的可接受使用政策允许 VPN 服务,Servers Guru 的 Monero VPS 页面把 VPN 列为适用用途之一,Cockbox 允许任何在罗马尼亚合法的用途,1984 Hosting 则提供现成的 WireGuard 镜像。SporeStack 的服务器还必须遵守 DigitalOcean 或 Vultr 的规则。注意流量额度。
WireGuard VPN 有哪些缺点?
它不做任何混淆,也没有 TCP 模式,所以封锁它或只放行 TCP 的网络都能把它挡住。服务器会在内存中保留每个对端最近的 IP 地址。该协议默认不具备抗量子安全性,不过预共享密钥可以多加一层防护。
在美国使用 VPN 违法吗?
没有任何联邦法律禁止使用 VPN,美国联邦贸易委员会还发布过选择 VPN 应用的建议(2018 年 2 月)。你通过隧道做的事,与不用隧道时受同样的法律约束,而网站的条款仍可能禁止通过 VPN 访问。以上为概述,不构成法律建议。
简而言之
用 Monero 租一台小型 KVM VPS,用 wg-quick 或 wg-easy 装好 WireGuard,除 SSH 和 UDP 51820 外关闭一切端口,日志放在内存里,SSH 藏在隧道后面。这样换来的,是对你所在网络的隐私。想混在人群里,要靠共享 VPN;要匿名,则是 Tor 的事。