省下90%VPN费用,腾讯云东京+WireGuard,打造你的专属高速VPN
n
n
n
nimg腾讯云东京2核4G服务器的完整WireGuard配置方案,从服务端到客户端一步到位。前提
-
n
- • 腾讯云东京2核4G服务器(不一定非要是东京)
n - • 手机能下载WireGuard
n
一、服务端配置1. 安装WireGuard
n
n
n# 更新系统
nsudo apt update && sudo apt upgrade -y
n
n# 安装WireGuard(Ubuntu 20.04+已内置,只需安装工具)
nsudo apt install wireguard wireguard-tools -y
n
n# 验证安装
nwg –version
n
nimg2. 生成密钥对
n
n
n# 进入配置目录
ncd /etc/wireguard
n
n# 生成服务器私钥和公钥
nwg genkey | tee server_privatekey | wg pubkey > server_publickey
n
n# 查看密钥(记下来,后面要用)
ncat server_privatekey # 服务器私钥,保密
ncat server_publickey # 服务器公钥,给客户端用
n
nimg3. 创建配置文件
n
n
nsudo nano /etc/wireguard/wg0.conf
n
n粘贴以下内容(替换为你的实际参数):
n
n
n
n# 服务器私钥
nPrivateKey =
n# VPN内网IP,服务器作为网关
nAddress = 10.200.200.1/24
n# 监听端口,建议用高位端口
nListenPort = 51820
n# 启用IP转发和NAT(eth0是你的网卡名,用ip addr确认)
nPostUp = 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
nPostDown = 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
n# DNS(可选,用腾讯云DNS或Google DNS)
nDNS = 119.29.29.29, 8.8.8.8
n# 保持连接(对移动端很重要)
nPersistentKeepalive = 25
n
n# 客户端1(手机)
n
nPublicKey =
nAllowedIPs = 10.200.200.2/32
n
n# 客户端2(电脑)
n
nPublicKey =
nAllowedIPs = 10.200.200.3/32
n
nimg4. 启用IP转发
n
n
n# 临时启用
nsudo sysctl -w net.ipv4.ip_forward=1
nsudo sysctl -w net.ipv6.conf.all.forwarding=1
n
n# 永久启用
necho “net.ipv4.ip_forward=1” | sudo tee -a /etc/sysctl.conf
necho “net.ipv6.conf.all.forwarding=1” | sudo tee -a /etc/sysctl.conf
nsudo sysctl -p
n
nimg5. 配置防火墙和腾讯云安全组服务器本地防火墙(UFW):
n
n
n# 安装UFW(如未安装)
nsudo apt install ufw -y
n
n# 放行SSH(别把自己锁外面!)
nsudo ufw allow 22/tcp
n
n# 放行WireGuard UDP端口
nsudo ufw allow 51820/udp
n
n# 启用防火墙
nsudo ufw enable
n
n# 检查状态
nsudo ufw status verbose
n
nimg腾讯云控制台安全组配置:
n
n
n
n
n
n
n
n
n6. 启动WireGuard服务
n
n
n# 启动wg0接口
nsudo wg-quick up wg0
n
n# 验证运行状态
nsudo wg show
n
n# 设置为开机自启
nsudo systemctl enable wg-quick@wg0
n
n# 查看服务状态
nsudo systemctl status wg-quick@wg0
n
n
n
n
n# 生成手机端密钥
nwg genkey | tee client1_privatekey | wg pubkey > client1_publickey
n
n# 查看公钥,添加到服务端配置
ncat client1_publickey
n
n添加到服务端配置:
n
n
nsudo nano /etc/wireguard/wg0.conf
n
n在末尾添加:
n
n
n
nPublicKey =
nAllowedIPs = 10.200.200.2/32
n
n重载服务端配置:
n
n
nsudo wg-quick down wg0 && sudo wg-quick up wg0
n
n手机端配置文件(client1.conf):
n
n
n
nPrivateKey =
nAddress = 10.200.200.2/24
nDNS = 119.29.29.29, 8.8.8.8
n
n
nPublicKey =
nEndpoint = :51820
nAllowedIPs = 0.0.0.0/0, ::/0 # 0.0.0.0/0表示全局代理
nPersistentKeepalive = 25
n
n手机端操作:
n
n
n
n
n
n
n
nqrencode -t ansiutf8 client2_publickey
n
n电脑端配置文件(client2.conf):
n
n
n
nPrivateKey =
nAddress = 10.200.200.3/24
nDNS = 119.29.29.29, 8.8.8.8
n
n
nPublicKey =
nEndpoint = :51820
nAllowedIPs = 0.0.0.0/0
nPersistentKeepalive = 25
n
nWindows/Mac: 下载WireGuard官方客户端 → 导入配置文件Linux:sudo wg-quick up ./client2.conf三、常用管理命令
n命令作用
nsudo wg show查看所有连接状态
nsudo wg show wg0 peer 查看特定客户端流量
nsudo systemctl restart wg-quick@wg0重启服务
nsudo wg-quick down wg0停止接口
nsudo wg set wg0 peer remove移除客户端
n四、关键检查清单
-
n
n
n
n
n
n
n
五、进阶优化(可选)1. 修改MTU优化传输:在段添加:
n
n
nMTU = 1280 # 腾讯云内网通常用1400或1280
n
n2. 多客户端批量生成脚本:
n
n
n#!/bin/bash
n# create_client.sh
nCLIENT_NAME=$1
nCLIENT_IP=$2 # 如 10.200.200.4
n
nwg genkey | tee ${CLIENT_NAME}_privatekey | wg pubkey > ${CLIENT_NAME}_publickey
n
necho “” >> /etc/wireguard/wg0.conf
necho “PublicKey = $(cat ${CLIENT_NAME}_publickey)” >> /etc/wireguard/wg0.conf
necho “AllowedIPs = ${CLIENT_IP}/32” >> /etc/wireguard/wg0.conf
n
necho “客户端配置已生成,IP: ${CLIENT_IP}”
n
n3. 查看实时流量统计:
n
n
nwatch -n 1 ‘sudo wg show’
n
n六、安装qrencode DNS解析失败DNS解析失败,mirrors.tencentyun.com 这个域名解析不了。这是腾讯云内网源,但你的服务器可能没配置内网DNS。快速解决(换公网源)
n
n
n# 1. 恢复官方源(或换阿里云/清华公网源)
nsudo cp /etc/apt/sources.list.bak /etc/apt/sources.list 2>/dev/null || echo “备份不存在”
n
n# 直接写入阿里云源(东京服务器访问很快)
nsudo tee /etc/apt/sources.list > /dev/null << 'EOF'
ndeb http://mirrors.aliyun.com/ubuntu/ noble main restricted universe multiverse
ndeb http://mirrors.aliyun.com/ubuntu/ noble-updates main restricted universe multiverse
ndeb http://mirrors.aliyun.com/ubuntu/ noble-backports main restricted universe multiverse
ndeb http://mirrors.aliyun.com/ubuntu/ noble-security main restricted universe multiverse
nEOF
n
n# 2. 更新并安装
nsudo apt update
nsudo apt install qrencode -y
n
n如果还是解析失败(DNS问题)
n
n
n# 检查DNS
ncat /etc/resolv.conf
n
n# 临时修复:用Google DNS
necho “nameserver 8.8.8.8” | sudo tee /etc/resolv.conf
nsudo apt update && sudo apt install qrencode -y
n
n其实 qrencode 不是必须的!替代方案——直接显示配置文本,手动输入或复制:
n
n
n# 生成客户端配置文件后,直接cat显示
ncat /etc/wireguard/client1.conf
n
n# 或者生成base64链接(手机浏览器访问)
ncat client1.conf | base64
n
n手机端可以手动创建配置,比装qrencode快多了。现在执行:
n
n
nsudo tee /etc/apt/sources.list > /dev/null << 'EOF'
ndeb http://mirrors.aliyun.com/ubuntu/ noble main restricted universe multiverse
ndeb http://mirrors.aliyun.com/ubuntu/ noble-updates main restricted universe multiverse
ndeb http://mirrors.aliyun.com/ubuntu/ noble-backports main restricted universe multiverse
ndeb http://mirrors.aliyun.com/ubuntu/ noble-security main restricted universe multiverse
nEOF
n
nsudo apt update && sudo apt install qrencode -y
n
n不行就直接跳过qrencode,手动配置。七、手动配置步骤手动配置很简单,不需要qrencode。以下是完整步骤:服务端:生成客户端配置并显示
n
n
ncd /etc/wireguard
n
n# 1. 生成客户端1的密钥对(手机用)
nwg genkey | tee client1_privatekey | wg pubkey > client1_publickey
n
n# 2. 查看公钥(复制这串字符)
ncat client1_publickey
n# 输出示例:aBcD1234…(很长的base64字符串)
n
n# 3. 添加到服务端配置
nsudo nano /etc/wireguard/wg0.conf
n
n在末尾添加:
n
n
n
nPublicKey =
nAllowedIPs = 10.200.200.2/32
nPersistentKeepalive = 25
n
n重启服务:
n
n
nsudo wg-quick down wg0 && sudo wg-quick up wg0
n
n创建客户端配置文件
n
n
n# 创建手机端配置文件
nsudo tee /etc/wireguard/client1.conf > /dev/null < ${CLIENT_NAME}_publickey
n
n# 添加到服务端
necho ”
n
nPublicKey = $(cat ${CLIENT_NAME}_publickey)
nAllowedIPs = ${CLIENT_IP}/32
nPersistentKeepalive = 25″ | sudo tee -a /etc/wireguard/wg0.conf
n
n# 生成客户端配置
nSERVER_PUB=$(cat server_publickey)
nSERVER_IP=$(curl -s ifconfig.me)
nCLIENT_PRIV=$(cat ${CLIENT_NAME}_privatekey)
n
necho ”
n========== 手机端配置 ==========
n
nPrivateKey = ${CLIENT_PRIV}
nAddress = ${CLIENT_IP}/24
nDNS = 119.29.29.29, 8.8.8.8
n
n
nPublicKey = ${SERVER_PUB}
nEndpoint = ${SERVER_IP}:51820
nAllowedIPs = 0.0.0.0/0, ::/0
nPersistentKeepalive = 25
n================================
n复制以上内容到手机WireGuard App” | sudo tee ${CLIENT_NAME}.conf
n
n# 重启服务
nsudo wg-quick down wg0 && sudo wg-quick up wg0
n
n# 显示配置
ncat ${CLIENT_NAME}.conf
n
n保存为脚本执行,或直接复制上面分段命令。验证连接手机连接后,在服务端查看:
n
n
nsudo wg show
n
n看到latest handshake有时间就是成功了!现在执行生成密钥和显示配置的命令,把输出的内容复制到手机即可。
n
n
n
Leave a Reply