搭建VPN服务器是一个涉及网络配置、服务器管理和安全设置的过程,适用于个人隐私保护、远程办公或数据安全等场景,以下是详细步骤,包括环境准备、软件安装、配置优化及安全加固等内容,帮助你在Linux系统(以Ubuntu为例)中完成搭建。
环境准备与服务器选择
首先需要一台云服务器或本地主机,推荐使用云服务器(如阿里云、腾讯云、Vultr等),确保满足以下要求:
- 操作系统:Ubuntu 20.04/22.04 LTS(长期支持版,稳定性高)。
- 网络配置:服务器需有公网IP地址,并开放必要端口(默认VPN端口如1194(OpenVPN)或4433(WireGuard),需在云平台安全组中放行)。
- 硬件资源:最低配置为1核CPU、1GB内存、20GB存储,若需多用户连接,建议根据用户量提升资源。
关键端口放行示例(以云服务器安全组配置为例):
| 协议 | 端口 | 用途说明 |
|---|---|---|
| TCP/UDP | 1194 | OpenVPN默认端口 |
| UDP | 51820 | WireGuard默认端口 |
| TCP | 443 | 常用端口,可伪装成HTTPS流量 |
安装与配置VPN服务
这里以两种主流VPN协议(OpenVPN和WireGuard)为例,分别介绍搭建步骤。
(一)OpenVPN服务器搭建
OpenVPN成熟稳定,支持跨平台,适合需要复杂配置的场景。
更新系统并安装依赖
sudo apt update && sudo apt upgrade y sudo apt install y openvpn easyrsa openssl curl
配置CA证书机构
# 创建证书目录 mkdir p ~/openvpnca/keys cp r /usr/share/easyrsa/* ~/openvpnca/ cd ~/openvpnca/ # 编辑vars文件,配置证书参数 nano vars
在vars文件中设置以下变量(根据需求修改):
export EASYRSA_REQ_COUNTRY="CN" export EASYRSA_REQ_PROVINCE="Beijing" export EASYRSA_REQ_CITY="Beijing" export EASYRSA_REQ_ORG="MyVPN" export EASYRSA_REQ_EMAIL="admin@myvpn.com" export EASYRSA_REQ_OU="IT Department"
保存后执行:
# 初始化PKI ./easyrsa initpki # 创建CA证书 ./easyrsa buildca nopass # 生成服务器证书 ./easyrsa genreq server nopass ./easyrsa signreq server server # 生成DiffieHellman参数(耗时较长) ./easyrsa gendh # 生成HMAC密钥 openvpn genkey secret pki/ta.key
创建服务器配置文件
# 复制示例配置文件 cp /usr/share/doc/openvpn/examples/sampleconfigfiles/server.conf.gz ~/openvpnca/ gunzip server.conf.gz nano server.conf
修改关键配置项:
local 0.0.0.0 # 监听所有IP port 1194 # 端口 proto udp # 协议(推荐UDP,延迟低) dev tun # 虚拟网卡类型 ca pki/ca.crt cert pki/issued/server.crt key pki/private/server.key dh pki/dh.pem topology subnet server 10.8.0.0 255.255.255.0 # VPN客户端分配的网段 ifconfigpoolpersist ipp.txt push "redirectgateway def1 bypassdhcp" # 客户端所有流量通过VPN push "dhcpoption DNS 8.8.8.8" # 推荐DNS服务器 keepalive 10 120 tlsauth pki/ta.key 0 cipher AES256CBC # 加密算法 auth SHA256 user nobody group nogroup persistkey persisttun status /var/log/openvpn/openvpnstatus.log log /var/log/openvpn/openvpn.log verb 3
启动OpenVPN服务
# 创建日志目录 sudo mkdir p /var/log/openvpn sudo chown R $USER:$USER /var/log/openvpn # 复制证书和配置文件到系统目录 sudo cp pki/ca.crt pki/issued/server.crt pki/private/server.key pki/dh.pem pki/ta.key /etc/openvpn/ sudo cp server.conf /etc/openvpn/ # 启动服务并设置开机自启 sudo systemctl start openvpn@server sudo systemctl enable openvpn@server
配置IP转发和NAT
# 启用IP转发 echo 'net.ipv4.ip_forward=1' | sudo tee a /etc/sysctl.conf sudo sysctl p # 配置iptables NAT(假设服务器公网IP为1.2.3.4) sudo iptables t nat A POSTROUTING s 10.8.0.0/24 o eth0 j MASQUERADE sudo apt install y iptablespersistent sudo netfilterpersistent save
(二)WireGuard服务器搭建(更轻量、高性能)
WireGuard协议简单,代码量少,适合追求速度和低延迟的场景。
安装WireGuard
# Ubuntu 20.04/22.04 官方源支持 sudo apt install y wireguard resolvconf qrencode
生成服务器密钥对
# 进入服务器配置目录 cd /etc/wireguard/ # 生成私钥和公钥 wg genkey | tee server_private.key | wg pubkey > server_public.key
创建服务器配置文件
nano wg0.conf
[Interface] Address = 10.0.0.1/24 # VPN服务器内网IP ListenPort = 51820 # 监听端口 PrivateKey = $(cat server_private.key) # 服务器私钥 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 [Peer] # 客户端1配置(示例) PublicKey = 客户端公钥 # 需替换为客户端生成的公钥 AllowedIPs = 10.0.0.2/32 # 客户端分配的IP
启动WireGuard服务
# 启用并启动服务 sudo systemctl enable wgquick@wg0 sudo systemctl start wgquick@wg0 # 查看状态 sudo wg show
客户端配置与连接
OpenVPN客户端配置
- Windows/macOS:从OpenVPN官网下载客户端,将服务器端的
ca.crt、server.crt、client.ovpn(需手动生成客户端证书并打包)导入客户端。 - Android/iOS:下载OpenVPN Connect App,导入配置文件(.ovpn格式)。
WireGuard客户端配置
- Windows/macOS/Linux:安装WireGuard客户端,导入服务器端的
wg0.conf文件,或通过二维码扫描(使用qrencode t ansi < wg0.conf生成二维码)。 - 移动端:下载WireGuard App,扫描服务器二维码或手动添加配置。
安全加固与优化
-
防火墙配置:使用
ufw限制非必要端口访问,仅开放VPN端口:sudo ufw allow 1194/udp # OpenVPN sudo ufw allow 51820/udp # WireGuard sudo ufw enable
-
禁用密码登录:通过SSH密钥登录服务器,避免暴力破解:
sudo nano /etc/ssh/sshd_config # 修改 PasswordAuthentication 为 no sudo systemctl restart sshd
-
定期更新系统:设置自动更新或定期执行
sudo apt update && sudo apt upgrade y。 -
监控日志:定期查看VPN日志(如
/var/log/openvpn/openvpn.log或journalctl u wgquick@wg0),排查异常连接。
相关问答FAQs
Q1:搭建VPN服务器是否合法?
A1:合法性取决于所在国家和用途,在多数国家,个人搭建VPN用于保护隐私或远程办公是合法的,但若用于非法活动(如访问受限资源、传播恶意信息)则可能违反法律,请确保遵守当地法律法规及服务提供商的使用条款。
Q2:如何提升VPN服务器的连接速度?
A2:可通过以下方式优化:
- 选择低延迟的云服务器节点(如距离用户较近的区域);
- 使用轻量级协议(如WireGuard)替代OpenVPN;
- 调整加密算法(如WireGuard默认的
Curve25519和ChaCha20性能较高); - 限制客户端带宽(在配置文件中设置
limitrate参数)或升级服务器硬件配置。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/290221.html