VPS之间通过Wireguard异地Mesh组内网加速访问体验

Krent
2026-04-05 / 0 评论 / 17 阅读 / 正在检测是否收录...

mnkt8u2u.png

举例我们想从洛杉矶机房vps加速访问纽约机房vps(la > ny)
以下是从零开始的完整操作步骤,假设:
洛杉矶 VPS (Rocky 8) 公网 IP 为 LA_IP
纽约 VPS (Windows) 公网 IP 为 NY_IP
中转端口:13389 (你本地连接这个端口) -> 目标端口:3389 (纽约 RDP)

第一步:洛杉矶端 (Rocky 8) 安装与配置

1. 安装 WireGuard 工具:

dnf install -y epel-release elrepo-release
dnf install -y kmod-wireguard wireguard-tools

2. 生成服务端密钥对:

mkdir -p /etc/wireguard && cd /etc/wireguard
umask 077
wg genkey | tee privatekey | wg pubkey > publickey

请记录下 privatekey (服务端私钥) 和 publickey (服务端公钥) 的内容。

3. 开启内核转发:

echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.conf
sysctl -p

4. 创建配置文件 /etc/wireguard/wg0.conf:

使用 vi 或 nano 编辑,注意替换下方带有 < > 的部分:

[Interface]
PrivateKey = <洛杉矶的 privatekey 内容>
Address = 10.0.0.1/24
ListenPort = 51820

# 核心:流量转发规则 (假设公网网卡名为 eth0)
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# 将发往 LA_IP:13389 的 TCP 流量转发到 10.0.0.2:3389
PostUp = iptables -t nat -A PREROUTING -p tcp --dport 13389 -j DNAT --to-destination 10.0.0.2:3389

PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -t nat -D PREROUTING -p tcp --dport 13389 -j DNAT --to-destination 10.0.0.2:3389

[Peer]
PublicKey = <稍后填入纽约 Windows 生成的公钥>
AllowedIPs = 10.0.0.2/32

5. 防火墙放行:

firewall-cmd --add-port=51820/udp --permanent
firewall-cmd --add-port=13389/tcp --permanent
firewall-cmd --add-masquerade --permanent
firewall-cmd --reload

第二步:纽约端 (Windows) 安装与配置

  1. 安装客户端: 从 wireguard.com 下载并安装 Windows 版。
  2. 新建隧道: 点击左下角“新建空隧道”,会自动生成一对密钥。
  3. 编辑配置:
[Interface]
PrivateKey = <此处自动生成的 Windows 私钥>
Address = 10.0.0.2/24
DNS = 1.1.1.1

[Peer]
PublicKey = <填入第一步在洛杉矶生成的 publickey 内容>
Endpoint = <LA_IP>:51820
AllowedIPs = 10.0.0.0/24
PersistentKeepalive = 25
  1. 复制公钥: 将窗口上方的 Public Key 复制下来。

第三步:建立连接

  1. 回到洛杉矶端: 将刚才拷贝的 Windows 公钥填入 /etc/wireguard/wg0.conf 的 [Peer] 部分。
    2.启动洛杉矶服务:
systemctl enable wg-quick@wg0
systemctl start wg-quick@wg0
  1. 启动 Windows 端: 在 WireGuard 软件中点击 Activate。
  2. 测试隧道: 在 Windows 上尝试 ping 10.0.0.1。如果通了,说明隧道已建立。

第四步:远程桌面连接

  1. 在国内的电脑上,打开“远程桌面连接” (mstsc)。
  2. 计算机栏输入:LA_IP:13389
  3. 点击连接,此时你应该能直接连入纽约的 Windows 桌面。

PS: 注意点: 纽约 Windows 的防火墙需要允许 3389 端口(通常默认已开启),并且要确保 Remote Desktop 功能已启用。

为了保证长期稳定运行,两个“避坑”小建议:

  1. 防止断流 (PersistentKeepalive):

由于 WireGuard 是 UDP 协议,有些运营商防火墙会自动断开长时间不活跃的 UDP 连接。请务必确认 Windows 端配置文件的 [Peer] 部分有 PersistentKeepalive = 25。这样每 25 秒会发一个心跳包,保证线路一直“热”着。

  1. MTU 优化(如果发现大文件传输慢):

如果在远程桌面里打开大图片或传输文件时感觉有“撕裂感”或突然卡死,尝试在 Windows 端 的 [Interface] 部分添加一行 MTU = 1380。这可以防止因为数据包过大被网络设备直接丢弃。

0

评论 (0)

取消