You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于GCP配置双VPS的OpenVPN流量转发以降低延迟的技术咨询

基于GCP配置双VPS的OpenVPN流量转发以降低延迟的技术咨询

嘿,你的这个思路非常靠谱!利用GCP内网极低的延迟来中转流量,确实能解决远端VPN延迟高的问题。下面我一步步给你讲怎么配置,还有你关心的公网IP问题:

整体逻辑梳理

你的方案本质是:本地设备→近端Server B(OpenVPN服务器)→Server B通过GCP内网连接远端Server A(OpenVPN服务器)→最终通过Server A访问互联网。全程只有本地到Server B是公网,Server B到Server A走GCP内网,完美降低核心链路的延迟。

具体配置步骤

1. 准备工作(GCP层面)

  • 确保Server A和Server B处于同一个GCP VPC网络(如果不在同一VPC,配置VPC peering也可以,但同VPC更简单),二者内网IP能互相ping通。
  • 在GCP实例设置里,给Server A和Server B都开启IP转发(实例详情→编辑→启用IP转发),这是流量转发的前提。
  • 配置GCP防火墙规则:
    • 允许本地IP段访问Server B的UDP 1194端口(OpenVPN默认端口)
    • 允许Server B的内网IP访问Server A的UDP 1194端口
    • 允许两个实例之间的所有内网流量(确保转发不受阻)

2. 配置远端Server A

  • 确保你的原有OpenVPN服务正常运行,修改Server A的OpenVPN配置文件(通常是/etc/openvpn/server.conf),允许来自Server B内网IP的连接。可以添加一行:push "route 你的Server B内网IP/32 255.255.255.255",或者直接在防火墙里放行Server B的内网IP。
  • 开启Server A的内核IP转发:
    sysctl -w net.ipv4.ip_forward=1
    echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
    
  • 重启OpenVPN服务:systemctl restart openvpn@server

3. 配置近端Server B

Server B需要同时扮演两个角色:连接Server A的OpenVPN客户端,以及给本地设备提供服务的OpenVPN服务器。

第一步:安装并配置OpenVPN客户端(连Server A)

  • 复制Server A上的OpenVPN客户端配置文件(比如client.ovpn)到Server B,修改其中的remote字段为Server A的内网IP(而不是公网IP),这样流量走GCP内网。
  • 启动OpenVPN客户端并设置开机自启:
    openvpn --config /path/to/client.ovpn --daemon
    systemctl enable openvpn@client
    
    确认连接成功:ip addr show tun0(应该能看到Server A分配的内网VPN IP)

第二步:配置OpenVPN服务器(供本地设备连接)

  • 在Server B上安装OpenVPN服务器,生成服务器证书和客户端配置(和常规OpenVPN服务器配置流程一致)。
  • 修改Server B的server.conf,添加路由规则,把所有流量转发到连接Server A的tun0接口:
    push "redirect-gateway def1 bypass-dhcp"
    push "dhcp-option DNS 8.8.8.8" # 可选,指定DNS服务器
    
  • 开启Server B的内核IP转发(和Server A一样的命令)
  • 配置iptables做NAT转发,确保流量能从本地连接的接口(比如tun1,Server B的OpenVPN服务器接口)转发到tun0:
    iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
    # 保存规则,重启后生效
    iptables-save > /etc/iptables/rules.v4
    
  • 重启Server B的OpenVPN服务器:systemctl restart openvpn@server

公网IP说明

当你通过这个方案上网时,你的公网IP会显示为Server A的公网IP。因为所有最终流向互联网的流量,都是通过Server A的公网接口出去的,Server B只是做了内网中转,不会改变你的出口IP。

额外优化建议

  • 给Server A和Server B配置静态内网IP,避免实例重启后IP变化导致OpenVPN连接中断。
  • 如果Server A和Server B在GCP的不同区域,VPC peering依然能保证低延迟,但同区域的内网延迟会更低,优先选择同区域的实例。

备注:内容来源于stack exchange,提问作者Joshua Reisbord

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 10:38:02