好的,在 VPS 上搭建 VPN 是一个非常常见的需求。目前最主流、最推荐的方式是使用 WireGuard,因为它具有速度快、现代、加密强、配置简单等优点。
我将为你提供两种最主流方案的详细教程:WireGuard 和 OpenVPN。
WireGuard 是一个极其简单、快速、安全的现代 VPN 协议,其性能远超 OpenVPN。
1. 连接并更新你的 VPS
通过 SSH 连接到你的 VPS。
ssh root@your_vps_ip更新系统软件包:
sudo apt update && sudo apt upgrade -y # Ubuntu/Debian
# 或者
sudo yum update -y # CentOS
# 或者
sudo dnf update -y # Fedora2. 安装 WireGuard
# Ubuntu >= 18.04 / Debian >= 10
sudo apt install wireguard resolvconf -y
# CentOS
sudo yum install epel-release -y
sudo yum install wireguard-tools -y
# 对于其他发行版,请参考官方文档:https://www.wireguard.com/install/3. 配置服务器端
生成服务器密钥对:
cd /etc/wireguard/
umask 077 # 设置权限,确保密钥文件安全
wg genkey | tee server_privatekey | wg pubkey > server_publickey创建配置文件 nano /etc/wireguard/wg0.conf,填入以下内容(注意替换 [Server Private Key]):
[Interface]
Address = 10.0.0.1/24 # 服务器的虚拟IP地址
SaveConfig = true
ListenPort = 51820 # 监听的UDP端口,确保防火墙已开放
PrivateKey = [Server Private Key] # 用刚才生成的 server_privatekey 文件内容替换
# 可选的,配置DNS解析(非常重要,避免DNS泄露)
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE注意:eth0是你的 VPS 主网卡名称,如果不确定,可以用 ip a命令查看。
4. 启动 WireGuard 服务
sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0
# 检查状态
sudo systemctl status wg-quick@wg05. 配置客户端
在你的本地电脑或手机上安装 WireGuard 客户端。
生成客户端密钥对(在VPS上操作):
wg genkey | tee client_privatekey | wg pubkey > client_publickey将客户端公钥添加到服务器配置中:
wg set wg0 peer [Client Public Key] allowed-ips 10.0.0.2/32
# 保存配置
wg-quick save wg0[Client Public Key]用刚才生成的 client_publickey文件内容替换。
创建客户端配置文件 client.conf,内容如下(注意替换 [Server Public Key]和 [Client Private Key]):
[Interface]
PrivateKey = [Client Private Key] # 用 client_privatekey 内容替换
Address = 10.0.0.2/32 # 客户端的虚拟IP,需在服务器允许的IP范围内
DNS = 1.1.1.1, 8.8.8.8 # 设置DNS,防止DNS泄露
[Peer]
PublicKey = [Server Public Key] # 用 server_publickey 内容替换
Endpoint = your_vps_ip:51820 # 你的VPS公网IP和端口
AllowedIPs = 0.0.0.0/0 # 将所有流量都通过VPN转发
PersistentKeepalive = 25将此配置文件(client.conf)的内容生成一个二维码,或用文件方式导入到你的客户端设备。
6. 配置防火墙(UFW)
如果使用了 UFW,需要开放端口:
sudo ufw allow 51820/udp
sudo ufw allow ssh
sudo ufw enableOpenVPN 非常稳定、兼容性极广,但配置比 WireGuard 复杂。强烈推荐使用自动化脚本。
1. 下载并运行脚本
最著名的是 angristan的脚本,它会处理所有复杂配置。
wget https://github.com/angristan/openvpn-install/raw/master/openvpn-install.sh
chmod +x openvpn-install.sh
sudo ./openvpn-install.sh2. 交互式配置
运行脚本后,你会看到一个交互式菜单:
my_phone)。脚本会自动完成以下工作:
3. 获取客户端配置文件
脚本运行结束后,它会在当前目录生成一个 .ovpn文件(例如 my_phone.ovpn)。
你需要将这个文件安全地下载到你的本地设备。
# 例如,使用scp命令从本地下载(在你自己电脑的终端里运行,不是在VPS上)
scp root@your_vps_ip:/root/my_phone.ovpn ~/Downloads/4. 连接 VPN
.ovpn文件。"中小企业”在线学堂
腾讯云GAME-TECH沙龙
“中小企业”在线学堂
云+社区技术沙龙[第1期]
“中小企业”在线学堂
云+未来峰会
云+社区技术沙龙[第9期]
云+社区技术沙龙 [第31期]