搭建VPN服务端需要根据具体需求选择协议和工具,以下提供常见方案的简要指南:
主流协议对比
| 协议 | 端口 | 加密强度 | 速度 | 伪装能力 | 适用场景 |
|---|---|---|---|---|---|
| OpenVPN | 1194 | 通用场景 | |||
| WireGuard | 51820 | 移动设备/低延迟 | |||
| IPSec | 500/4500 | 企业内网 | |||
| Shadowsocks | 自定义 | 抗封锁环境 |
OpenVPN服务端搭建示例(Ubuntu)
# 2. 创建CA证书
make-cadir ~/openvpn-ca
cd ~/openvpn-ca
source vars
./clean-all
./build-ca # 交互式输入信息
./build-key-server server # 服务端证书
./build-dh # Diffie-Hellman参数
openvpn --genkey --secret keys/ta.key # TLS-auth密钥
# 3. 配置文件
sudo cp ~/openvpn-ca/keys/{ca.crt,server.crt,server.key,dh2048.pem,ta.key} /etc/openvpn/
sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
sudo gzip -d /etc/openvpn/server.conf.gz
# 4. 修改配置(关键参数)
local 192.168.1.100 # 改为服务器IP
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh2048.pem
tls-auth ta.key 0
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
# 5. 启动服务
sudo systemctl start openvpn@server
sudo systemctl enable openvpn@server
# 6. 配置NAT转发
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
安全增强建议
-
防火墙规则:
sudo ufw allow 1194/udp sudo ufw allow OpenSSH sudo ufw enable
-
多因素认证:
# 安装Google Authenticator sudo apt install libpam-google-authenticator # 在OpenVPN配置中添加: plugin /usr/lib/openvpn/plugins/openvpn-plugin-auth-pam.so openvpn
-
日志监控:
# 实时监控连接状态 watch -n 5 'cat /etc/openvpn/openvpn-status.log'
客户端配置要点
- Windows/Mac推荐使用官方OpenVPN GUI客户端
- 移动端使用OpenVPN Connect应用
- 客户端配置文件示例:
client dev tun proto udp remote your.server.ip 1194 resolv-retry infinite nobind persist-key persist-tun ca ca.crt cert client.crt key client.key tls-auth ta.key 1 cipher AES-256-CBC verb 3
性能优化技巧
-
对于高并发场景:
# 在server.conf中添加 max-clients 100 sndbuf 393216 rcvbuf 393216 push "sndbuf 393216" push "rcvbuf 393216"
-
启用压缩(权衡安全性):
compress lz4-v2 push "compress lz4-v2"
-
多线程支持(OpenVPN 2.5+):
threads 4
故障排查命令
# 查看服务状态 sudo systemctl status openvpn@server # 实时日志查看 sudo journalctl -u openvpn@server -f # 测试端口开放 nc -vzu your.server.ip 1194 # 检查路由表 ip route show table all
注意:在中国大陆运营VPN服务需遵守《网络安全法》相关规定,个人使用也需注意合法合规,商业用途必须取得《增值电信业务经营许可证》。








