
常见两种方案是 OpenVPN 和 WireGuard。总体步骤为:选择发行版 → 安装软件 → 生成密钥/证书 → 配置服务器端 → 配置客户端并测试。下面给出简洁步骤与关键命令示例。
1) 更新系统并安装必要软件(以 Ubuntu 为例)。
sudo apt update && sudo apt install -y openvpn easy-rsa
2) 使用 easy-rsa 生成 CA 与证书(OpenVPN)。
make-cadir ~/openvpn-ca && cd ~/openvpn-ca
3) 配置 server.conf(指定端口、协议、路由/推送 DNS)。
4) 启动服务并设置开机自启: sudo systemctl enable --now openvpn@server
5) 若选 WireGuard,安装并生成公私钥:
sudo apt install -y wireguard
wg genkey | tee privatekey | wg pubkey > publickey
• 在配置时务必确认服务器的外网 IP 与 安全组(或云控制台防火墙)已允许相应 UDP/TCP 端口(如 OpenVPN 常用 UDP 1194,WireGuard 默认 UDP 51820)。
云厂商(如 AWS、GCP、Azure 或其他美国机房提供商)通常通过安全组或网络防火墙控制入站/出站规则。需要添加规则放行 VPN 所用端口和要映射的外网端口。
1) 登录云控制台,找到实例对应的安全组/防火墙配置。
2) 添加入站规则:协议(TCP/UDP)、端口范围、来源(建议限定为可信 IP 或 0.0.0.0/0 如果必须公网访问)。
3) 若使用 NAT 网关或负载均衡器,确保负载均衡的监听端口也已配置并指向实例。
• 开放 WireGuard:UDP 51820 来源可为 0.0.0.0/0(或限制到客户端 IP)。
• 映射 Web 服务:TCP 80/443 放行到实例。
端口映射可以在三层实现:云厂商负载均衡/端口转发规则、安全组放行结合实例内的本地转发(如 iptables/nftables)、或在 VPN 服务端做隧道转发。常用方法是使用 iptables 做 DNAT 转发。
1) 开启内核转发:
sudo sysctl -w net.ipv4.ip_forward=1
2) 添加 NAT 规则将外网端口 12345 转发到内网 192.168.1.100:80:
sudo iptables -t nat -A PREROUTING -p tcp --dport 12345 -j DNAT --to-destination 192.168.1.100:80
sudo iptables -A FORWARD -p tcp -d 192.168.1.100 --dport 80 -j ACCEPT
不同发行版使用不同方法持久化 iptables 规则(如 iptables-persistent、netfilter-persistent 或 systemd 脚本)。
客户端连上 VPN 后应获得路由和/或 DNS,按映射规则访问外网IP:端口或直接访问内网目标 IP:端口。测试工具包括 telnet、nc、curl、ss 或浏览器。
1) 确认 VPN 已连接:查看本地路由表 ip route 或 WireGuard 用 wg,OpenVPN 用 ip addr。
2) 测试端口(以外网端口 12345 为例):
telnet your-server-ip 12345 或 nc -vz your-server-ip 12345
3) 若是 HTTP 服务,可用 curl:curl -I http://your-server-ip:12345
• 若 VPN 连上但端口不通,先确认云安全组是否放行该端口,再排查服务器上的防火墙(ufw/iptables)与 NAT 规则是否正确。
出现问题时按“分层检查”原则排查:云侧网络 → 实例防火墙 → 服务进程与端口 → 路由/NAT → 客户端设置。
1) 云侧:确认 安全组、负载均衡器或云 NAT 规则已开放端口。
2) 实例侧:使用 ss -tulnp 或 netstat -tulnp 查看服务是否在监听预期端口;确认 iptables DNAT 规则存在。
3) 路由与转发:确认 net.ipv4.ip_forward=1,并检查 iptables -t nat -L -n -v 输出。
4) 客户端:确认 VPN 配置文件(证书、密钥、AllowedIPs)无误,查看日志(OpenVPN: /var/log/syslog 或 /var/log/openvpn.log;WireGuard 使用 journalctl)。
• 尽量将访问限制到明确的客户端 IP 范围,避免将管理端口暴露给 0.0.0.0/0。
• 使用强证书与密钥,定期旋转密钥。
• 对外开放端口时使用入侵检测、限制连接速率,必要时配置双因素认证或使用 VPN+私有子网访问敏感服务。