目标:用台湾VPS(具有公网原生IP)作为网关/跳板,与台湾本地物理机形成安全隧道,按需把部分流量或服务暴露给云端负载均衡或DNS。
小分段:1) 明确流量方向(出站/入站、哪些服务需暴露) 2) 决定隧道方式(WireGuard/IPsec/SSH) 3) 制定安全策略(防火墙、端口白名单)。
步骤:1) 在VPS上运行:ip addr; ip route; 确认公网接口(如eth0)和原生IP;2) 在物理机上检查本地IP与NAT配置;3) 双方能互相ping(若被防火墙阻止,则开放ICMP临时测试)。
小分段:常用命令:ping, traceroute, curl -I http://
VPS端(示例为Ubuntu)步骤:apt update && apt install -y wireguard; wg genkey | tee /etc/wireguard/server_priv.key | wg pubkey > /etc/wireguard/server_pub.key。创建/etc/wireguard/wg0.conf,示例:
[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = (server_priv)
PostUp = iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
小分段:开启转发 sysctl -w net.ipv4.ip_forward=1;systemctl enable --now wg-quick@wg0。
物理机生成密钥:wg genkey | tee client_priv.key | wg pubkey > client_pub.key。创建/etc/wireguard/wg0.conf示例:
[Interface]
Address = 10.0.0.2/32
PrivateKey = (client_priv)
[Peer]
PublicKey = (server_pub)
Endpoint = VPS_IP:51820
AllowedIPs = 0.0.0.0/0 (或指定子网)
PersistentKeepalive = 25
小分段:启动 systemctl enable --now wg-quick@wg0,并用 wg show 检查握手。
若只需访问云端或特定IP通过VPS走,需要在物理机上添加策略路由:ip route add <目标子网> via 10.0.0.1 dev wg0。
小分段:全流量走VPS则在wg0客户端设AllowedIPs=0.0.0.0/0并在VPS做SNAT;仅DNS或特定端口则用策略路由或iptables标记。
场景:把某些服务暴露到云端负载均衡(或CDN)。做法:在VPS上部署Nginx/HAProxy作为反向代理,代理内网物理机的IP(10.0.0.2)。示例Nginx upstream:
upstream backend { server 10.0.0.2:8080; } server { listen 80; location / { proxy_pass http://backend; } }
小分段:将云端负载均衡的健康检查指向VPS公网IP的检测端口,或直接让云端LB把流量指向VPS,再由VPS反向代理到物理机。
当WireGuard不可用或简易场景下可用SSH反向隧道:在物理机执行:autossh -M 0 -f -N -R 22022:localhost:22 user@VPS_IP -p22 -o "ServerAliveInterval=60" -o "ServerAliveCountMax=3"。
小分段:云端/运维人员通过 SSH -p 22022 user@VPS_IP 访问物理机;注意在VPS上允许GatewayPorts以允许外部连接。
步骤:1) 在VPS部署Let's Encrypt(certbot)为域名申请TLS证书,并在Nginx上启用;2) 使用UFW/iptables只开放必要端口(22/51820/80/443);3) 在物理机启用Fail2ban,限制SSH。
小分段:定期轮换WireGuard密钥、监控异常连接并使用登录通知。
常用排查命令:wg show;ip addr;ip route;tcpdump -i wg0 port 51820;journalctl -u wg-quick@wg0 -e。
小分段:部署Prometheus node_exporter或云端监控对VPS与物理机做心跳监控,结合报警(邮件/钉钉/Slack)。
建议:1) 多点冗余—若VPS故障,准备第二VPS并在DNS做健康检查与故障切换;2) 数据备份与配置管理(使用Ansible保存wg配置和防火墙规则);3) 定期演练故障切换。
小分段:DNS TTL 设置低(例如60秒)以便快速切换,云端LB可做流量倒灌保护。
答:如果你追求简单、低延迟和易维护,WireGuard 是首选(配置少、性能好)。IPsec 更适合与企业网关互联或需要与硬件兼容时使用。实际选择依据:兼容性需求、是否需要客户端证书管理和已有网络设备支持。
答:常见做法是将负载均衡器的后端指向VPS公网IP并配置健康检查端口(HTTP/HTTPS或TCP)。VPS上的代理返回健康检查响应(例如Nginx健康页),当VPS不可用时云端LB会移除后端。另一种是把LB指向云端实例,云实例再通过WireGuard到VPS做转发,按需选择。
答:检查要点:1) 在VPS上 wg show 有握手,物理机能ping通WireGuard地址;2) 从外网访问VPS的服务(域名/端口)并确认能被反代到物理机;3) 查看负载均衡/云监控的健康检查日志;4) 用 tcpdump 捕获流量确认路径。若任一项失败,按日志和上述命令定位。