def*_*dor 13 networking linux vpn routing vpnc
在花了几个小时进行故障排除,在本网站和其他网站上寻找潜在的解决方案之后,我辞职向我的更好的人寻求建议。我正在努力通过大学的 Cisco VPN 路由 Ubuntu 实例上的所有网络流量。使用内置网络管理器或 vpnc,我可以成功建立到 VPN 的连接,并且可以通过 VPN 成功将流量路由到任何大学 IP。但是,除了这些特定的 IP 范围之外,我似乎无法想象出任何可以通过 VPN 成功映射所有网络流量的路由。
到目前为止,我已经尝试过:
route add -net 0.0.0.0 gw homeportal dev tun0
路由添加-net 0.0.0.0 tun0
路由添加-net 0.0.0.0 gw 128.122.252.77 dev tun0
路由添加-net 0.0.0.0 gw 128.122.252.77 dev eth0
iptables -A FORWARD -o tun0 -j ACCEPT iptables -A FORWARD -i tun0 -j ACCEPT iptables -t nat -A POSTROUTING -o tun0 -j 伪装
还有许多其他愚蠢、无效的事情,我记不清了,无法准确转录。
此外,我尝试路由较小的 IP 范围和特定的 IP,但都无济于事。我不太确定出了什么问题,因为我能够观察到的影响程度是名称解析失败,以及无法通过 VPN 路由流量。我在这里做错了什么?
编辑-
以下是ip route show使用 VPNC 启动 VPN 连接后的输出:
默认通过 192.168.1.254 dev eth0 proto static 10.0.0.0/8 dev tun0 范围链接 91.230.41.0/24 dev tun0 范围链接 128.122.0.0/16 dev tun0 范围链接 128.122.252.68 通过 192.168.1.254 dev eth0 src 192.168.1.32 128.122.253.46 dev tun0 范围链接 128.122.253.79 dev tun0 范围链接 172.16.0.0/12 dev tun0 范围链接 192.168.0.0/16 dev tun0 范围链接 192.168.1.0/24 dev eth0 proto 内核范围链接 src 192.168.1.32 metric 1 193.175.54.0/24 dev tun0 范围链接 193.205.158.0/25 dev tun0 范围链接 193.206.104.0/24 dev tun0 范围链接 195.113.94.0/24 dev tun0 范围链接 203.126.200.0/24 dev tun0 范围链接 203.174.165.128/25 dev tun0 范围链接 212.219.93.0/24 dev tun0 范围链接 216.165.0.0/17 dev tun0 范围链接
更多信息-
我已经通过默认配置的 Cisco AnyConnect 客户端在 MS Windows 中通过此 VPN 成功路由任意流量。以下是 AnyConnect 客户端工作时路由表的样子(这是位于 192.168.1.254 的同一路由器后面的另一台计算机)。
IPv4 路由表
================================================== ==========================
活动路线:
网络目标网络掩码网关接口指标
0.0.0.0 0.0.0.0 192.168.1.254 192.168.1.13 30
10.0.0.0 255.0.0.0 192.168.128.1 192.168.128.197 2
91.230.41.0 255.255.255.0 192.168.128.1 192.168.128.197 2
127.0.0.0 255.0.0.0 在线 127.0.0.1 306
127.0.0.1 255.255.255.255 联机 127.0.0.1 306
127.255.255.255 255.255.255.255 在线 127.0.0.1 306
128.122.0.0 255.255.0.0 192.168.128.1 192.168.128.197 2
128.122.252.68 255.255.255.255 192.168.1.254 192.168.1.13 31
172.16.0.0 255.240.0.0 192.168.128.1 192.168.128.197 2
192.168.0.0 255.255.0.0 192.168.128.1 192.168.128.197 2
192.168.1.0 255.255.255.0 在线 192.168.1.13 286
192.168.1.13 255.255.255.255 在线 192.168.1.13 286
192.168.1.254 255.255.255.255 在线 192.168.1.13 31
192.168.1.255 255.255.255.255 在线 192.168.1.13 286
192.168.31.0 255.255.255.0 在线 192.168.31.1 276
192.168.31.1 255.255.255.255 在线 192.168.31.1 276
192.168.31.255 255.255.255.255 在线 192.168.31.1 276
192.168.128.0 255.255.255.0 在线 192.168.128.197 257
192.168.128.197 255.255.255.255 在线 192.168.128.197 257
192.168.128.255 255.255.255.255 在线 192.168.128.197 257
192.168.203.0 255.255.255.0 在线 192.168.203.1 276
192.168.203.1 255.255.255.255 在线 192.168.203.1 276
192.168.203.255 255.255.255.255 在线 192.168.203.1 276
193.175.54.0 255.255.255.0 192.168.128.1 192.168.128.197 2
193.205.158.0 255.255.255.128 192.168.128.1 192.168.128.197 2
193.206.104.0 255.255.255.0 192.168.128.1 192.168.128.197 2
195.113.94.0 255.255.255.0 192.168.128.1 192.168.128.197 2
203.126.200.0 255.255.255.0 192.168.128.1 192.168.128.197 2
203.174.165.128 255.255.255.128 192.168.128.1 192.168.128.197 2
212.219.93.0 255.255.255.0 192.168.128.1 192.168.128.197 2
216.165.0.0 255.255.128.0 192.168.128.1 192.168.128.197 2
224.0.0.0 240.0.0.0 联机 127.0.0.1 306
224.0.0.0 240.0.0.0 在线 192.168.1.13 286
224.0.0.0 240.0.0.0 在线 192.168.203.1 276
224.0.0.0 240.0.0.0 在线 192.168.31.1 276
224.0.0.0 240.0.0.0 在线 192.168.128.197 10000
255.255.255.255 255.255.255.255 在线 127.0.0.1 306
255.255.255.255 255.255.255.255 在线 192.168.1.13 286
255.255.255.255 255.255.255.255 在线 192.168.203.1 276
255.255.255.255 255.255.255.255 在线 192.168.31.1 276
255.255.255.255 255.255.255.255 在线 192.168.128.197 10000
================================================== ==========================
您的本地网络是 192.168.1.0/24,如路由表中的这一行所示:
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.32 metric 1
Run Code Online (Sandbox Code Playgroud)
您的 VPN 网络是 10.0.0.0/8,如以下行所示:
10.0.0.0/8 dev tun0 scope link
Run Code Online (Sandbox Code Playgroud)
目前,您的默认路由器是:
default via 192.168.1.254 dev eth0 proto static
Run Code Online (Sandbox Code Playgroud)
这当然是您不想要的,因为它属于您的本地 LAN:因此您的所有内容都通过本地网关路由,就好像 VPN 不存在一样。
You do have however, the all-important statement
128.122.252.68 via 192.168.1.254 dev eth0 src 192.168.1.32
Run Code Online (Sandbox Code Playgroud)
这是通往您的 VPN 提供商的路由。
编辑:
我没有意识到路由表只是从您的 VPN 获得的路由表,无需您的干预。这可能(间接)表明您的服务提供商愿意仅通过接口 tun0 转发您的表中明确允许的流量,并且可能已采取进一步措施来阻止所有其他流量,在这种情况下您的努力将是徒劳的。
但是,假设您的提供商愿意转发您的所有流量,您需要执行以下操作。
首先,你需要查明对方是否有网关愿意接受你的连接,因为我们需要它的IP地址。我将为您提供四种方法来做到这一点。
1)当电脑连接到VPN时,尝试以下命令:
sudo dhclient -v tun0
Run Code Online (Sandbox Code Playgroud)
如果一切顺利,您应该会看到包含以下行的回复:
DHCPOFFER of a.b.c.d from x.y.w.z
Run Code Online (Sandbox Code Playgroud)
xywz 是本地网关的IP 地址。测试结束后,您可能必须关闭 VPN,甚至可能需要重新启动您的电脑,因为我们已经把路由表弄乱了。
2) 或者,您可以尝试导航到允许的站点之一(那些在路由表中显示为通过tun0接口的站点),然后发出命令:
ip neigh show
Run Code Online (Sandbox Code Playgroud)
您应该获得通过 ARP 协议联系的电脑列表,其中包含 MAC 和 IP 地址;您很可能会收到零个或一个回复。如果您收到一条回复,那么这就是您的路由器。
3)如果您没有得到这样的答复,那么您可以尝试
sudo nmap -sn 10.0.0.0/8
Run Code Online (Sandbox Code Playgroud)
(这会非常慢)。您的网关将是列出的电脑之一,很可能是地址以 .1 或 .254 结尾的网关(如果存在)。
4)使用tcpdump命令:
sudo tcpdump -n -i tun0
Run Code Online (Sandbox Code Playgroud)
并查看命令输出的 IP 地址。
如果您对此测试也没有得到正确的答复,则意味着有人确实拧紧了他的网络中的螺丝。
但让我们乐观一点,假设您现在有一个远程路由器的候选 IP 地址 xwyz。您需要删除默认网关(如 sudo!):
ip route del default via 192.168.1.254
Run Code Online (Sandbox Code Playgroud)
添加新的:
ip route add default via x.w.y.z
Run Code Online (Sandbox Code Playgroud)
并尝试导航。
让我重复一遍:由于您的提供商仅允许流量通过他的 VPN 发送至少数选定的 IP 地址,因此他可能采取了额外措施(=防火墙)来防止聪明的用户强制其通用流量通过他的 VPN。在这种情况下,您无能为力。但如果他没有,上述步骤应该可以帮助您找到解决方案。