ocserv(openconnect server) 搭建后 使用anyconnect连接成功了 但是无法访问外部网络 能否告知一下如何排查这种情况 或者是如何进行修复?

连接成功时的路由表

default via 181.214.136.1 dev eth0 proto static
10.12.0.86 dev vpns0 proto kernel scope link src 10.12.0.1
181.214.136.0/24 dev eth0 proto kernel scope link src 181.214.136.245

网络信息

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq state UP group default qlen 1000
    link/ether bc:24:11:ba:a9:68 brd ff:ff:ff:ff:ff:ff
    altname enp0s18
    altname ens18
    inet 181.214.136.245/24 brd 181.214.136.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 2a12:f8c1:50:8::1124/64 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::be24:11ff:feba:a968/64 scope link
       valid_lft forever preferred_lft forever
17: vpns0: <POINTOPOINT,UP,LOWER_UP> mtu 1392 qdisc fq state UNKNOWN group default qlen 500
    link/none
    inet 10.12.0.1 peer 10.12.0.86/32 scope global vpns0
       valid_lft forever preferred_lft forever
    inet6 fe80::ef03:f3a7:d7ab:dd7c/64 scope link stable-privacy
       valid_lft forever preferred_lft forever

日志

Aug 08 06:08:23 adolph ocserv[72628]: worker[passfirewall]: *.*.*.* suggesting DPD of 300 secs
Aug 08 06:08:23 adolph ocserv[72628]: worker[passfirewall]: *.*.*.* configured link MTU is 1420
Aug 08 06:08:23 adolph ocserv[72628]: worker[passfirewall]: *.*.*.* peer's link MTU is 1500
Aug 08 06:08:23 adolph ocserv[72628]: worker[passfirewall]: *.*.*.* sending IPv4 10.12.0.86
Aug 08 06:08:23 adolph ocserv[72628]: worker[passfirewall]: *.*.*.* adding DNS 8.8.8.8
Aug 08 06:08:23 adolph ocserv[72628]: worker[passfirewall]: *.*.*.* adding DNS 1.1.1.1
Aug 08 06:08:23 adolph ocserv[72628]: worker[passfirewall]: *.*.*.* adding special split DNS for Apple
Aug 08 06:08:23 adolph ocserv[72628]: worker[passfirewall]: *.*.*.* Link MTU is 1420 bytes
Aug 08 06:08:23 adolph ocserv[72628]: worker[passfirewall]: *.*.*.* selected DTLS compression method lzs
Aug 08 06:08:23 adolph ocserv[72628]: worker[passfirewall]: *.*.*.* selected CSTP compression method lzs
阅读 1.2k
avatarAI BotBETA

当使用 Cisco AnyConnect 成功连接到 ocserv 服务器但无法访问外部网络时,通常与路由设置、NAT(网络地址转换)配置或防火墙规则有关。以下是一些排查和修复的步骤:

1. 检查路由表

从您提供的路由表来看,默认路由(default via 181.214.136.1 dev eth0 proto static)指向了 eth0 接口,这是您的物理网络接口。但是,当您通过 VPN 连接时,您希望流量通过 VPN 接口(vpns0)路由。

解决方案

  • 添加 VPN 路由:确保所有需要通过 VPN 的流量都被路由到 VPN 接口。您可能需要添加或修改路由规则,使所有非本地(非 10.12.0.0/16)流量通过 VPN 接口。
  • 使用 ip route add:添加一条路由规则,将所有非本地和非 VPN 网络的流量通过 VPN 接口。例如:

    sudo ip route add default via 10.12.0.1 dev vpns0 table vpn
    sudo ip rule add from 10.12.0.0/16 table main
    sudo ip rule add to 10.12.0.0/16 table main
    sudo ip rule add to 127.0.0.0/8 table main
    sudo ip rule add table vpn suppress_prefixlength 0
    sudo ip route flush cache

    注意:上述命令可能需要根据您的具体网络配置进行调整。

2. 检查 NAT 设置

如果您的服务器或路由器配置了 NAT,确保 VPN 流量不会被 NAT 规则错误地处理。

解决方案

  • 检查 NAT 规则:查看是否有针对 VPN 接口的 NAT 规则,并确认它们是否适当。
  • 禁用 NAT:如果可能,尝试暂时禁用 NAT 以测试是否是 NAT 导致的问题。

3. 检查防火墙规则

确保防火墙规则允许 VPN 流量通过。

解决方案

  • 查看防火墙规则:检查服务器的防火墙设置,确保没有阻止 VPN 相关的流量。
  • 允许 VPN 流量:添加规则以允许 VPN 使用的端口和协议(如 IPsec 或 DTLS)。

4. 重启网络服务

有时,简单的重启网络服务或 VPN 服务可以解决临时的连接问题。

操作

  • 重启 ocserv

    sudo systemctl restart ocserv
  • 重启网络服务(如果适用):

    sudo systemctl restart networking

5. 查看日志

继续查看 ocserv 和系统日志,以获取更多关于连接问题的信息。

6. 测试连接

使用工具如 pingtraceroute 测试 VPN 连接和访问外部网络的能力。

ping 8.8.8.8
traceroute 8.8.8.8

这些步骤应该帮助您诊断和解决无法访问外部网络的问题。如果问题仍然存在,请考虑检查 VPN 客户端的配置或联系网络管理员。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏