省下90%VPN费用,腾讯云东京+WireGuard,打造你的专属高速VPN
img[size=1em]腾讯云东京2核4G服务器的完整WireGuard配置方案,从服务端到客户端一步到位。 前提- • 腾讯云东京2核4G服务器(不一定非要是东京)
- • 手机能下载WireGuard
一、服务端配置1. 安装WireGuard
# 更新系统
sudo apt update && sudo apt upgrade -y
# 安装WireGuard(Ubuntu 20.04+已内置,只需安装工具)
sudo apt install wireguard wireguard-tools -y
# 验证安装
wg --version
img2. 生成密钥对
# 进入配置目录
cd /etc/wireguard
# 生成服务器私钥和公钥
wg genkey | tee server_privatekey | wg pubkey > server_publickey
# 查看密钥(记下来,后面要用)
cat server_privatekey # 服务器私钥,保密
cat server_publickey # 服务器公钥,给客户端用
img3. 创建配置文件
sudo nano /etc/wireguard/wg0.conf
粘贴以下内容(替换为你的实际参数):
[Interface]
# 服务器私钥
PrivateKey = <粘贴server_privatekey的内容>
# VPN内网IP,服务器作为网关
Address = 10.200.200.1/24
# 监听端口,建议用高位端口
ListenPort = 51820
# 启用IP转发和NAT(eth0是你的网卡名,用ip addr确认)
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -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; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
# DNS(可选,用腾讯云DNS或Google DNS)
DNS = 119.29.29.29, 8.8.8.8
# 保持连接(对移动端很重要)
PersistentKeepalive = 25
# 客户端1(手机)
[Peer]
PublicKey = <客户端1公钥,稍后生成>
AllowedIPs = 10.200.200.2/32
# 客户端2(电脑)
[Peer]
PublicKey = <客户端2公钥,稍后生成>
AllowedIPs = 10.200.200.3/32
img4. 启用IP转发
# 临时启用
sudo sysctl -w net.ipv4.ip_forward=1
sudo sysctl -w net.ipv6.conf.all.forwarding=1
# 永久启用
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
echo "net.ipv6.conf.all.forwarding=1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
img5. 配置防火墙和腾讯云安全组服务器本地防火墙(UFW):
# 安装UFW(如未安装)
sudo apt install ufw -y
# 放行SSH(别把自己锁外面!)
sudo ufw allow 22/tcp
# 放行WireGuard UDP端口
sudo ufw allow 51820/udp
# 启用防火墙
sudo ufw enable
# 检查状态
sudo ufw status verbose
img腾讯云控制台安全组配置: - 1. 登录 腾讯云控制台 → 云服务器 → 安全组
- 2. 找到你的东京服务器绑定的安全组 → 修改规则
- 3. 入站规则 → 添加规则:
- 1. 协议:UDP
- 2. 端口:51820
- 3. 源IP:0.0.0.0/0(或限制为你的常用IP)
6. 启动WireGuard服务
# 启动wg0接口
sudo wg-quick up wg0
# 验证运行状态
sudo wg show
# 设置为开机自启
sudo systemctl enable wg-quick@wg0
# 查看服务状态
sudo systemctl status wg-quick@wg0
img img二、客户端配置客户端1:手机(iOS/Android) img生成客户端密钥对(在服务器上执行):
# 生成手机端密钥
wg genkey | tee client1_privatekey | wg pubkey > client1_publickey
# 查看公钥,添加到服务端配置
cat client1_publickey
添加到服务端配置:
sudo nano /etc/wireguard/wg0.conf
在末尾添加:
[Peer]
PublicKey = <client1_publickey的内容>
AllowedIPs = 10.200.200.2/32
重载服务端配置:
sudo wg-quick down wg0 && sudo wg-quick up wg0
手机端配置文件(client1.conf):
[Interface]
PrivateKey = <client1_privatekey的内容>
Address = 10.200.200.2/24
DNS = 119.29.29.29, 8.8.8.8
[Peer]
PublicKey = <服务器公钥server_publickey>
Endpoint = <你的腾讯云公网IP>:51820
AllowedIPs = 0.0.0.0/0, ::/0 # 0.0.0.0/0表示全局代理
PersistentKeepalive = 25
手机端操作: - 1. 下载 WireGuard App(App Store / Google Play)
- 2. 创建隧道 → 扫描二维码或从文件导入
- 3. 生成二维码命令(服务器上):
客户端2:电脑(Windows/Mac/Linux)
生成密钥对:
wg genkey | tee client2_privatekey | wg pubkey > client2_publickey
电脑端配置文件(client2.conf):
[Interface]
PrivateKey = <client2_privatekey>
Address = 10.200.200.3/24
DNS = 119.29.29.29, 8.8.8.8
[Peer]
PublicKey = <服务器公钥>
Endpoint = <腾讯云公网IP>:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
Windows/Mac: 下载WireGuard官方客户端 → 导入配置文件 Linux:sudo wg-quick up ./client2.conf 三、常用管理命令[td]| 命令 | 作用 | | sudo wg show | 查看所有连接状态 | | sudo wg show wg0 peer <公钥> | 查看特定客户端流量 | | sudo systemctl restart wg-quick@wg0 | 重启服务 | | sudo wg-quick down wg0 | 停止接口 | | sudo wg set wg0 peer <公钥> remove | 移除客户端 | 四、关键检查清单- • 腾讯云安全组放行UDP 51820
- • 服务器UFW防火墙放行51820
- • /etc/sysctl.conf中net.ipv4.ip_forward=1
- • 配置文件中的eth0与实际网卡名一致(用ip addr确认)
- • 客户端AllowedIPs包含PersistentKeepalive = 25(防NAT超时)
- • 服务端PostUp/PostDown中的iptables规则正确
五、进阶优化(可选)1. 修改MTU优化传输: 在[Interface]段添加:
MTU = 1280 # 腾讯云内网通常用1400或1280
2. 多客户端批量生成脚本:
#!/bin/bash
# create_client.sh
CLIENT_NAME=$1
CLIENT_IP=$2 # 如 10.200.200.4
wg genkey | tee ${CLIENT_NAME}_privatekey | wg pubkey > ${CLIENT_NAME}_publickey
echo "[Peer]" >> /etc/wireguard/wg0.conf
echo "PublicKey = $(cat ${CLIENT_NAME}_publickey)" >> /etc/wireguard/wg0.conf
echo "AllowedIPs = ${CLIENT_IP}/32" >> /etc/wireguard/wg0.conf
echo "客户端配置已生成,IP: ${CLIENT_IP}"
3. 查看实时流量统计:
watch -n 1 'sudo wg show'
六、安装qrencode DNS解析失败DNS解析失败,mirrors.tencentyun.com 这个域名解析不了。这是腾讯云内网源,但你的服务器可能没配置内网DNS。 快速解决(换公网源)
如果还是解析失败(DNS问题)
# 检查DNS
cat /etc/resolv.conf
# 临时修复:用Google DNS
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
sudo apt update && sudo apt install qrencode -y
其实 qrencode 不是必须的!替代方案——直接显示配置文本,手动输入或复制:
# 生成客户端配置文件后,直接cat显示
cat /etc/wireguard/client1.conf
# 或者生成base64链接(手机浏览器访问)
cat client1.conf | base64
手机端可以手动创建配置,比装qrencode快多了。 现在执行:
不行就直接跳过qrencode,手动配置。 七、手动配置步骤手动配置很简单,不需要qrencode。以下是完整步骤: 服务端:生成客户端配置并显示
cd /etc/wireguard
# 1. 生成客户端1的密钥对(手机用)
wg genkey | tee client1_privatekey | wg pubkey > client1_publickey
# 2. 查看公钥(复制这串字符)
cat client1_publickey
# 输出示例:aBcD1234...(很长的base64字符串)
# 3. 添加到服务端配置
sudo nano /etc/wireguard/wg0.conf
在末尾添加:
[Peer]
PublicKey = <粘贴刚才cat显示的公钥>
AllowedIPs = 10.200.200.2/32
PersistentKeepalive = 25
重启服务:
sudo wg-quick down wg0 && sudo wg-quick up wg0
创建客户端配置文件
# 创建手机端配置文件
sudo tee /etc/wireguard/client1.conf > /dev/null << EOF
[Interface]
PrivateKey = $(cat client1_privatekey)
Address = 10.200.200.2/24
DNS = 119.29.29.29, 8.8.8.8
[Peer]
PublicKey = $(cat server_publickey)
Endpoint = $(curl -s ifconfig.me):51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25
EOF
# 显示完整配置(复制到手机)
cat /etc/wireguard/client1.conf
手机端手动配置(iOS示例)1. 下载 WireGuard App 2. 创建隧道 → 手动创建 3. 填写配置: [td]| 字段 | 填写内容 | | 名称 | 东京VPN(随便取) | | 私钥 | 粘贴client1_privatekey的内容 | | 公钥 | 自动生成,不用管 | | 地址 | 10.200.200.2/24 | | DNS服务器 | 119.29.29.29, 8.8.8.8 |
4. 添加Peer(对端): [td]| 字段 | 填写内容 | | 公钥 | 粘贴server_publickey的内容 | | 预共享密钥 | 留空 | | 持续keepalive | 25 | | 端点 | 你的腾讯云公网IP:51820 | | 允许的IP | 0.0.0.0/0, ::/0 |
5. 保存并连接 快速复制脚本(一键生成)
#!/bin/bash
cd /etc/wireguard
# 生成客户端
CLIENT_NAME="client1"
CLIENT_IP="10.200.200.2"
wg genkey | tee ${CLIENT_NAME}_privatekey | wg pubkey > ${CLIENT_NAME}_publickey
# 添加到服务端
echo "
[Peer]
PublicKey = $(cat ${CLIENT_NAME}_publickey)
AllowedIPs = ${CLIENT_IP}/32
PersistentKeepalive = 25" | sudo tee -a /etc/wireguard/wg0.conf
# 生成客户端配置
SERVER_PUB=$(cat server_publickey)
SERVER_IP=$(curl -s ifconfig.me)
CLIENT_PRIV=$(cat ${CLIENT_NAME}_privatekey)
echo "
========== 手机端配置 ==========
[Interface]
PrivateKey = ${CLIENT_PRIV}
Address = ${CLIENT_IP}/24
DNS = 119.29.29.29, 8.8.8.8
[Peer]
PublicKey = ${SERVER_PUB}
Endpoint = ${SERVER_IP}:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25
================================
复制以上内容到手机WireGuard App" | sudo tee ${CLIENT_NAME}.conf
# 重启服务
sudo wg-quick down wg0 && sudo wg-quick up wg0
# 显示配置
cat ${CLIENT_NAME}.conf
保存为脚本执行,或直接复制上面分段命令。 验证连接手机连接后,在服务端查看:
sudo wg show
看到latest handshake有时间就是成功了! 现在执行生成密钥和显示配置的命令,把输出的内容复制到手机即可。
|