首页
学习
活动
专区
圈层
工具
发布

如何在vps上搭建vpn

好的,在 VPS 上搭建 VPN 是一个非常常见的需求。目前最主流、最推荐的方式是使用 ​WireGuard,因为它具有速度快、现代、加密强、配置简单等优点。

我将为你提供两种最主流方案的详细教程:​WireGuard​ 和 ​OpenVPN


方案一:使用 WireGuard(首选推荐)

WireGuard 是一个极其简单、快速、安全的现代 VPN 协议,其性能远超 OpenVPN。

特点:

  • 极速​:代码量少,效率高,连接和传输速度非常快。
  • 安全​:采用最现代的加密协议。
  • 简单​:配置文件和命令都非常简洁。

安装与配置步骤:

1. 连接并更新你的 VPS

通过 SSH 连接到你的 VPS。

代码语言:javascript
代码运行次数:0
复制
ssh root@your_vps_ip

更新系统软件包:

代码语言:javascript
代码运行次数:0
复制
sudo apt update && sudo apt upgrade -y  # Ubuntu/Debian
# 或者
sudo yum update -y                     # CentOS
# 或者
sudo dnf update -y                      # Fedora

2. 安装 WireGuard

代码语言:javascript
代码运行次数:0
复制
# 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. 配置服务器端

生成服务器密钥对:

代码语言:javascript
代码运行次数:0
复制
cd /etc/wireguard/
umask 077 # 设置权限,确保密钥文件安全
wg genkey | tee server_privatekey | wg pubkey > server_publickey

创建配置文件 nano /etc/wireguard/wg0.conf,填入以下内容(注意替换 [Server Private Key]):

代码语言:javascript
代码运行次数:0
复制
[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 服务

代码语言:javascript
代码运行次数:0
复制
sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0
# 检查状态
sudo systemctl status wg-quick@wg0

5. 配置客户端

在你的本地电脑或手机上安装 WireGuard 客户端。

  • Windows/macOS: 从官网 https://www.wireguard.com/install/下载
  • Android/iOS: 在应用商店搜索 "WireGuard" 安装

生成客户端密钥对(在VPS上操作):

代码语言:javascript
代码运行次数:0
复制
wg genkey | tee client_privatekey | wg pubkey > client_publickey

将客户端公钥添加到服务器配置中:

代码语言:javascript
代码运行次数:0
复制
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]):

代码语言:javascript
代码运行次数:0
复制
[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,需要开放端口:

代码语言:javascript
代码运行次数:0
复制
sudo ufw allow 51820/udp
sudo ufw allow ssh
sudo ufw enable

方案二:使用 OpenVPN(传统稳定)

OpenVPN 非常稳定、兼容性极广,但配置比 WireGuard 复杂。​强烈推荐使用自动化脚本

使用开源脚本快速部署:

1. 下载并运行脚本

最著名的是 angristan的脚本,它会处理所有复杂配置。

代码语言:javascript
代码运行次数:0
复制
wget https://github.com/angristan/openvpn-install/raw/master/openvpn-install.sh
chmod +x openvpn-install.sh
sudo ./openvpn-install.sh

2. 交互式配置

运行脚本后,你会看到一个交互式菜单:

  • 输入你的 VPS ​公网 IP 地址
  • 选择你喜欢的 ​DNS 提供商​(如 Google)。
  • 选择 ​加密协议​(默认 UDP)。
  • 为你的第一个客户端命名​(如 my_phone)。

脚本会自动完成以下工作:

  • 安装 OpenVPN 和依赖项
  • 创建服务器和客户端证书
  • 配置防火墙和路由
  • 启动 OpenVPN 服务

3. 获取客户端配置文件

脚本运行结束后,它会在当前目录生成一个 .ovpn文件(例如 my_phone.ovpn)。

你需要将这个文件安全地下载到你的本地设备

代码语言:javascript
代码运行次数:0
复制
# 例如,使用scp命令从本地下载(在你自己电脑的终端里运行,不是在VPS上)
scp root@your_vps_ip:/root/my_phone.ovpn ~/Downloads/

4. 连接 VPN

  • 在你的电脑或手机上下载并安装 OpenVPN客户端。
  • 导入下载的 .ovpn文件。
  • 点击连接。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券