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

如何将Azure OpenVPN服务器端口路由至本地服务器实现公网访问?

实现Azure OpenVPN端口转发到本地服务器的配置步骤

1. 开启Azure虚拟机的IP转发功能

Azure默认关闭VM的IP转发,必须开启才能让流量转发到VPN内网:

  • 使用Azure CLI执行命令(替换<nic-name>为VM的网卡名称,<rg-name>为资源组名称):
    az network nic update --name <nic-name> --resource-group <rg-name> --ip-forwarding true
    
  • 也可在Azure门户中找到对应VM的网卡,进入「IP配置」页面开启「IP转发」选项。

2. 配置OpenVPN服务器路由,确保能访问本地服务器

编辑OpenVPN服务器配置文件(通常路径为/etc/openvpn/server.conf):

  • 添加路由规则,指向本地服务器所在的VPN网段(假设本地服务器连接VPN后分配的网段是10.8.0.0/24):
    push "route 10.8.0.0 255.255.255.0"
    
  • 重启OpenVPN服务使配置生效:
    systemctl restart openvpn@server
    

注意:本地服务器需通过OpenVPN客户端连接到Azure服务器,确保能获取到VPN内网IP,且Azure服务器能ping通该IP。

3. 配置iptables端口转发规则

3.1 开启内核IP转发

  • 临时生效:
    echo 1 > /proc/sys/net/ipv4/ip_forward
    
  • 永久生效:编辑/etc/sysctl.conf,将net.ipv4.ip_forward修改为net.ipv4.ip_forward=1,然后执行:
    sysctl -p
    

3.2 添加DNAT和SNAT规则

替换<本地服务器VPN内网IP>为本地服务器连接VPN后获取的实际IP(比如10.8.0.10):

  • DNAT规则:将公网IP的8080端口流量转发到本地服务器的8080端口
    iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination <本地服务器VPN内网IP>:8080
    
  • SNAT规则:确保本地服务器的返回流量通过VPN回传给公网请求方
    iptables -t nat -A POSTROUTING -d <本地服务器VPN内网IP> -p tcp --dport 8080 -j MASQUERADE
    

3.3 保存iptables规则

  • Ubuntu/Debian系统:
    iptables-save > /etc/iptables/rules.v4
    
  • CentOS/RHEL系统:
    service iptables save
    

4. 验证配置

  • 从公网环境访问Azure公网IP:8080,测试是否能正常访问本地服务器的8080端口服务
  • 若访问失败,检查以下内容:
    • Azure网络安全组(NSG)是否已开放8080端口的入站规则
    • OpenVPN客户端是否正常连接,Azure服务器能否ping通本地服务器的VPN内网IP
    • iptables规则是否生效,可执行iptables -t nat -L查看规则列表

内容的提问来源于stack exchange,提问作者TuroTV

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 19:42:38