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

OpenConnect服务器配置UFW IP转发后客户端无法访问互联网

OpenConnect服务器配置UFW IP转发后客户端无法访问互联网

看起来你已经完成了OpenConnect服务器的基础部署,但卡在了客户端联网的关键环节——这种情况在AWS Lightsail环境里确实容易因为网络细节踩坑,我帮你一步步排查和解决:

1. 先排查AWS实例的网卡名(大概率是核心问题)

你在UFW的NAT规则里写了-o eth0,但Ubuntu 20.04在AWS Lightsail上的默认网卡名不是eth0,通常是ens5或者类似的名称。网卡名不对的话,MASQUERADE规则根本不会生效,这就是客户端无法联网的核心原因之一。

  • 执行以下命令查看服务器的实际外部网卡:

    ip addr show
    

    找带有公网IP的那个网卡(通常标注inet x.x.x.x/24,x.x.x.x是你的服务器公网IP),比如输出里的ens5。

  • 修改/etc/ufw/before.rules里的NAT规则,把eth0替换成你找到的实际网卡名:

    -A POSTROUTING -s 10.10.10.0/24 -o ens5 -j MASQUERADE
    

2. 确保UFW转发功能完全开启

你已经加了转发规则,但还要确认UFW本身允许转发:

  • 编辑/etc/default/ufw,找到DEFAULT_FORWARD_POLICY,把它改成:
    DEFAULT_FORWARD_POLICY="ACCEPT"
    
  • 执行命令重启UFW生效:
    sudo ufw disable && sudo ufw enable
    

3. 检查OpenConnect的路由配置

你的ocserv配置里注释掉了#route = default,这会导致客户端只有VPN子网的流量走隧道,互联网流量还是用本地网关。要让所有流量都通过VPN转发,必须开启这条规则:

  • 编辑/etc/ocserv/ocserv.conf,取消route = default的注释:
    route = default
    
  • 重启ocserv服务:
    sudo systemctl restart ocserv
    

4. 验证IP转发和NAT规则是否生效

  • 先确认IP转发已经开启:

    sysctl net.ipv4.ip_forward
    

    正常应该返回net.ipv4.ip_forward = 1,如果是0,重新执行sudo sysctl -p /etc/sysctl.d/60-custom.conf。

  • 客户端连接VPN后,在服务器上查看NAT规则的匹配次数:

    sudo iptables -t nat -vL POSTROUTING
    

    看你添加的MASQUERADE规则那一行的pkts和bytes数值,如果连接客户端后数值在增加,说明NAT规则已经在工作了;如果还是0,那还是网卡名或者子网配置的问题。

5. 确认AWS Lightsail的防火墙配置

除了服务器的UFW,还要检查Lightsail控制台的实例防火墙:

  • 确保已经允许**入站的443端口(TCP)**用于OpenConnect连接;
  • 确保出站规则允许所有流量(默认是允许的,但如果改过的话要确认),因为服务器需要替客户端转发互联网请求。

关于你看到的.ap-northeast-2.compute.internal后缀

这个是AWS内部的DNS解析主机名,不是问题——iptables在显示IP时会反向解析成主机名,不影响规则的实际功能,不用在意这个。

按照上面的步骤调整后,再测试客户端的联网功能,应该就能解决问题了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 14:43:02