OSX 上的 netstat -r 告诉您有关网关的哪些信息?

nyc*_*nik 1 networking vpn routing netstat macos

我注意到路由表有很多我不明白的条目。

路线表为:

Internet:
Destination        Gateway            Flags        Refs      Use   Netif Expire
default            192.168.0.254      UGSc           28        0     en1
10.8.0.1/32        10.8.0.5           UGSc            1        2    tun0
10.8.0.5           10.8.0.6           UH              2        3    tun0 
127                localhost          UCS             0      284     lo0 
localhost          localhost          UH             10     3663     lo0
169.254            link#5             UCS             0        0     en1
192.168.0          link#5             UCS             4        0     en1
192.168.0.25       localhost          UHS             0        0     lo0
192.168.100        10.8.0.5           UGSc            0        7    tun0
Run Code Online (Sandbox Code Playgroud)

我相信这条路线说:

  1. 192.168.100.* 中的所有流量都应该路由到 10.8.0.5 (!?)
  2. 所有到 10.8.0.5 的流量都应该路由到 10.8.0.6 (!?)
  3. 所有到 10.8.0.1/32 的流量都应该路由到 10.8.0.5 (!?)

为什么192.168.100不去10.8.0.1,而是去10.8.0.5,然后从5到6,然后我猜1/32应该匹配6,好像有一个循环。

我无法 ping 10.8.0.5,但我认为那是我在 vnetwork 上的 ip。我无法 ping 10.8.0.6,但是我认为它被屏蔽了,我得到一些输出“过滤器禁止通信”

ifconfig 显示:

tun0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    inet 10.8.0.6 --> 10.8.0.5 netmask 0xffffffff 
    open (pid 1307)
Run Code Online (Sandbox Code Playgroud)

又是 6 -> 5!

注意:从这里开始只是细节,以防您需要更多信息来了解路线。

我的设置是: - 本地网络 (192.168.0..) 上的笔记本电脑和路由器 (192.168.0.254) - VPN 通过网络 (10.8.0...) 上的虚拟路由器 (10.8.0.1) 连接到 (192.168) 的网络.100...) 带路由器 (192.168.100.1) - 192.168.100.200 是远程网络上的服务器

现在,当我“跟踪路由 192.168.100.200”时,我预计

10.8.0.1(另一端的VPN路由器)192.168.100.1(另一端物理网络的路由器)192.168.100.200(主机到达。)

相反,我只是得到了无穷无尽的 *s

这与这个问题不同,我找不到答案,所以谢谢!

Mat*_*lis 6

您只是部分正确地阅读了路线信息。

tun0 是用于 VPN 的虚拟接口,它使用(为了它自己的内部目的)从 10.8.0.6(你方的 VPNGW)到 10.8.0.5(VPNGW 远程方)的点对点链路。这与“ifconfig tun0”对您说的相同。您不应直接访问这两个地址。

因此,您通过 GW 10.8.0.5 路由的任何流量都将进入 VPN 隧道(通过接口 tun0),并在另一端退出 VPN 隧道(当然,假设 VPN 隧道已建立并正常工作,VPN 进程使用 pid 1307 运行)。

10.8.0.1/32 10.8.0.5 UGSc 1 2 tun0

这意味着发送到主机 10.8.0.1(/32 是CIDR表示法,意思是“只有这台主机”)的任何内容都将通过 10.8.0.5 处的网关路由(即,它将进入 VPN 隧道)。

因此,当您 ping 10.8.0.1 时,只有在 VPN 隧道工作时它才会工作。这就是它在这里的原因(因此您可以验证隧道是否正常工作,即使另一端的计算机均未启动)。

192.168.100 10.8.0.5 UGSc 0 7 tun0

与上面相同,但对于整个 C 类网络 192.168.100.*(它也可以在 CIDR 中写为“192.168.100.0/24”而不是更短的“192.168.100”)。这是您设置 Tunel 的主要内容 - 因此您可以通过 VPN 访问远程端的这个地址范围。

10.8.0.5 10.8.0.6 呃 2 3 tun0

这个你错了,注意标志“UH” - 缺少“G”意味着直接连接的点对点链接,而不是可以路由数据的网关。因此,这并不意味着 10.8.0.5 的流量将通过 10.8.0.6 发送,而是仅 10.8.0.5 使用 tun0 接口对这台计算机(具有 IP 10.8.0.6)直接可见。

为什么192.168.100不去10.8.0.1,而是去10.8.0.5,然后从5到6,然后我猜1/32应该匹配6,好像有一个循环。

希望以上信息能消除这些误解。

我无法 ping 10.8.0.5,但我认为那是我在 vnetwork 上的 ip。我无法 ping 10.8.0.6,但是我认为它被屏蔽了,我得到了一些输出“过滤器禁止通信”

是的,这两个地址由 tun0 接口在内部使用,您不应该担心它们(除非您在网络之间运行流量分析器等) - 它们不会像常规地址那样工作。