在数字化时代,网络隐私与访问自由的需求日益增长,Linux VPS凭借其稳定、灵活及高性价比的特点,成为搭建个人VPN的热门选择,本文将详细介绍如何通过Linux VPS搭建VPN服务,涵盖环境准备、服务安装、配置优化及安全加固等关键环节,助你轻松构建专属安全网络。

环境准备与系统选择
搭建VPN的前提是拥有一台可正常访问的Linux VPS,建议选择主流操作系统如Ubuntu 22.04 LTS或CentOS 7/8,两者社区支持完善,文档资源丰富,VPS配置方面,至少保证1核CPU、1GB内存、20GB存储,带宽根据需求选择(建议至少10Mbps以确保流畅体验)。
购买VPS后,通过SSH工具(如PuTTY、Xshell或终端命令)连接服务器,首次登录需更新系统软件包,以Ubuntu为例,执行以下命令:
sudo apt update && sudo apt upgrade -y
对于CentOS系统,则使用:
sudo yum update -y
确保关闭系统防火墙(或后续开放相关端口),避免因策略限制导致服务无法访问。
VPN协议选择与安装
常见的VPN协议包括OpenVPN、WireGuard、IKEv2等,其中WireGuard凭借高性能、低延迟及简化配置的优势,逐渐成为主流选择,本文以WireGuard为例,介绍搭建步骤。
安装WireGuard
Ubuntu系统可通过官方源直接安装:
sudo apt install wireguard -y
CentOS系统需先添加EPEL源,再执行安装:
sudo yum install epel-release -y && sudo yum install wireguard-tools -y
安装完成后,使用wg命令验证是否成功,若显示版本信息则安装成功。
生成密钥对
WireGuard基于公私钥加密通信,需在服务器与客户端分别生成密钥,在服务器端执行:
wg genkey | tee privatekey | wg pubkey > publickey
执行后,当前目录会生成privatekey(私钥)和publickey(公钥),私钥需严格保密,公钥将用于配置文件。

配置WireGuard服务
创建服务器配置文件/etc/wireguard/wg0.conf如下(需替换实际IP与密钥):
[Interface] Address = 10.0.0.1/24 SaveConfig = true ListenPort = 51820 PrivateKey = 服务器私钥内容 [Peer] PublicKey = 客户端公钥内容 AllowedIPs = 10.0.0.2/32
Address:定义VPN服务器虚拟IP段,客户端需在同一网段。ListenPort:监听端口,建议使用非默认端口(如51820)以提高安全性。PrivateKey:粘贴服务器生成的私钥。[Peer]部分:客户端的公钥及允许的IP地址(单个客户端可指定固定IP)。
启动并设置开机自启
使用systemctl管理WireGuard服务:
sudo systemctl enable wg-quick@wg0 sudo systemctl start wg-quick@wg0
检查服务状态:
sudo systemctl status wg-quick@wg0
若显示active (running),则服务已正常运行。
客户端配置与连接
客户端密钥生成
在客户端设备(电脑或手机)同样生成密钥对,方法与服务器端一致,获取私钥和公钥。
配置客户端文件
以Windows客户端为例,安装WireGuard官方客户端后,创建新的隧道,配置内容如下:
[Interface] PrivateKey = 客户端私钥内容 Address = 10.0.0.2/32 DNS = 8.8.8.8, 1.1.1.1 [Peer] PublicKey = 服务器公钥内容 Endpoint = 服务器公网IP:51820 AllowedIPs = 0.0.0.0/0, ::/0 PersistentKeepalive = 25
Address:与服务器配置的网段对应,客户端IP需唯一。DNS:指定DNS服务器(如Google DNS),避免使用ISP默认DNS。Endpoint:服务器的公网IP及监听端口。AllowedIPs:0.0.0/0表示所有流量通过VPN转发,可根据需求调整(如仅特定IP)。PersistentKeepalive:保活间隔(秒),用于维持NAT穿透。
连接测试
保存配置后,启用隧道,若客户端显示“Connected”,则VPN搭建成功,可通过访问ipinfo.io等网站验证公网IP是否已更改为服务器IP。
安全加固与优化
防火墙配置
为提升安全性,建议启用系统防火墙并开放WireGuard端口,以UFW(Ubuntu默认防火墙)为例:
sudo ufw allow 51820/udp sudo ufw enable
CentOS系统则使用firewalld:
sudo firewall-cmd --permanent --add-port=51820/udp sudo firewall-cmd --reload
禁用root登录与密钥认证
通过SSH连接服务器时,建议禁用root直接登录,改用普通用户+密钥认证:

sudo passwd -l root # 锁定root账户 sudo vim /etc/ssh/sshd_config
修改以下配置:
PermitRootLogin no PasswordAuthentication no PubkeyAuthentication yes
重启SSH服务:
sudo systemctl restart sshd
流量转发与NAT设置
若需实现客户端通过服务器访问外网,需开启系统IP转发功能,编辑/etc/sysctl.conf,添加:
net.ipv4.ip_forward=1
执行sudo sysctl -p生效,并配置NAT转发(以iptables为例):
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE sudo apt install iptables-persistent -y # 保存规则
定期更新与监控
定期更新系统软件包,及时修复安全漏洞:
sudo apt update && sudo apt upgrade -y
使用wg show命令查看WireGuard连接状态,监控客户端流量与连接时长,确保服务稳定运行。
常见问题与解决方案
- 连接失败:检查服务器防火墙是否开放端口,WireGuard服务是否正常运行,客户端密钥与配置是否正确。
- 无网络访问:确认IP转发功能是否开启,NAT规则是否配置正确,客户端
AllowedIPs是否包含目标网段。 - 速度慢:尝试更换WireGuard端口(如避免常见端口),优化VPS网络线路,或启用压缩功能(
[Peer]段添加Compression=yes)。
通过以上步骤,你已成功搭建一台基于Linux VPS的WireGuard VPN服务,相较于商业VPN,自建VPN在隐私保护、灵活性和成本控制上具有显著优势,同时需注意遵守当地法律法规,合理使用网络资源。


















