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

如何在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文件。
  • 点击连接。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络

因此,个人电脑是无法稳定对外提供服务的——我们需要一个 VPS——它有固定的公网 IP。 反向代理 实际上,只需要一个 VPS 我们就能直接对外提供服务了——将服务部署到 VPS 上就可以。...于是 VPS 上只需要部署一个反向代理服务器即可。 如果使用 FRP 这种反向代理服务器,那么不需要固定公网 IP 就能反向代理。...我画了一张简单的图来描述一个简单的 VPN 网络。 接下来,本文将介绍如何搭建一个如图所示的 VPN 网络。...配置 VPS 上的 VPN Server 启动“SE-VPN Server Manager (Tools)”: 我们将使用此工具配置我们在 VPS 上的 VPN Server。...用户认证设置:我们前一步设置用户的时候设置的用户名和密码 配置 VPS 上的 VPN Client 启动“管理远程电脑上的 SoftEther VPN Client”程序: 输入我们前面 VPS

29.5K53

在Linux系统上搭建内网VPN

在Linux系统上搭建内网VPN 由于疫情的影响,姜同学要居家办公啦,远程桌面如teamViewer,向日葵之类用的总是不爽,姜同学虽然水平不咋地,但是怎么说也是一名程序员,该有的的极客精神还是有的,so...姜同学决定在公司内网搭建vpn,快乐自己的同时也能方便其它同事,这可能就是程序员的快了吧。...于是姜同学便是踏上了漫漫的google之旅,功夫不负有心人,姜同学发现了openvpn这款产品以及Nyr大佬在github上开源的openvpn搭建脚本。...done exit 0 别忘了/etc/openvpn/client/sample.ovpn哦,用大佬生成的jjiangtongxue.ov**就可以了 使用自动创建脚本创建用户 sh create_vpn_user.sh... jiangtongxue.crt jiangtongxue.key 然后将证书导入openvpn客户端就可以快乐上网啦~ 删除用户 del_vpn_user.sh

13.4K31
  • 如何在Fedora 35上通过配置WireGuard VPN,确保跨境远程办公环境的安全性与高效连接?

    一、方案概览与目标本文目标是在一台运行Fedora35(LinuxKernel5.14+)的服务器上配置WireGuardVPN,并让跨境远程办公客户端(Windows、macOS、Linux、iOS/...ip_forward=1">>/etc/sysctl.confecho"net.ipv6.conf.all.forwarding=1">>/etc/sysctl.confsysctl‑p配置Firewalld(如使用...监控与日志WireGuard自身较轻量,常配合Prometheus+Grafana采集连接状态:展开代码语言:BashAI代码解释yuminstall-ywireguard‑exporter可视化指标如连接数...UDP客户端无法访问内部资源AllowedIPs配置不当设为0.0.0.0/0NAT后无法访问互联网IP转发未开启检查sysctlnet.ipv4.ip_forwardDNS解析失败DNS未推送指定DNS如1.1.1.1...如需进一步扩展到容器化、自动化部署(Ansible、Terraform)、或与身份认证(LDAP/Radius)集成,可在此基础上继续深化。

    1.2K10

    如何在NVIDIA Jetson Orin NANO上搭建Web化操作界面

    执行各种应用的输出: 为了提高显示效果,我们复制一个国外健身操的公开短视频作为输入源,在Jetson上执行detectNet.py与poseNet.py这两种推理实验,然后在我台式电脑上的浏览器观看输出结果...,执行如下: $ cd build/aarch/bin # 执行姿态识别,从浏览器上看结果: $ posenet.py /jetson-inference/data/Pose.mp4 webrtc:...IP为 ”10.11.11.18”,完整的输入就是 ”https://10.11.11.18:8554”,第一次登录时会出现类型以下的信息: 只要按照正常方式进行授权就可以,然后就在台式机浏览器上看到以下的视频流...对同一个视频执行物件识别功能,指令如下: $ detectnet.py /jetson-inference/data/Pose.mp4 webrtc://@:8554/mytest 同样在台式机的浏览器上检测推理结果...其他扩展的Web框架: 这个项目基于WebRTC服务器上,另外还提供以下四种实用性相当高的框架: HTML / JavaScript Flask + REST Plotly Dashboard Recognizer

    1.6K20
    领券