我使用的是 Windows 7。当我在命令提示符下键入“路由打印”时,我会得到一个 IPv4 路由表,在网关列下有几个“链接”值。例如,像这样:
IPv4 Route Table
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.5 25
127.0.0.0 255.0.0.0 On-link 127.0.0.1 306
127.0.0.1 255.255.255.255 On-link 127.0.0.1 306
127.255.255.255 255.255.255.255 On-link 127.0.0.1 306
137.132.0.0 255.255.0.0 172.18.180.1 172.18.180.10 31
137.132.80.16 255.255.255.255 192.168.1.1 192.168.1.5 26
169.254.0.0 255.255.0.0 On-link 172.18.180.10 306
169.254.255.255 255.255.255.255 On-link 172.18.180.10 286
172.18.0.0 255.254.0.0 172.18.180.1 172.18.180.10 31
172.18.180.0 255.255.255.0 On-link 172.18.180.10 286
172.18.180.10 255.255.255.255 On-link 172.18.180.10 286
172.18.180.255 255.255.255.255 On-link 172.18.180.10 286
172.25.64.0 255.255.240.0 172.18.180.1 …Run Code Online (Sandbox Code Playgroud) 我正在尝试学习/实验一些网络基础知识。我在配置了 DHCP 的 macOS 上。我通过转到网络设置故意删除了默认网关 IP 地址 (192.168.0.1)。我还通过运行确认没有默认路由:
route get default
route: writing to routing socket: not in table
Run Code Online (Sandbox Code Playgroud)
我可以访问 Google 搜索和 YouTube,但无法访问其他一些网站,例如superuser.com。这是怎么回事?
我们的网络有两个调制解调器,每个都隐藏在路由器后面。主路由器在 10.1.1.1 上,备用路由器在 10.1.1.2 上,并且都配置到 10.1.1.0/24 子网。两个路由器的网关都配置为 192.168.0.1。但是,如果您的网关是 10.1.1.1,您看到的 192.168.0.1 与您在网关是 10.1.1.2 时看到的 192.168.0.1 是不同的机器。
我的 Nagios 服务器已相应设置:
auto eth0
iface eth0 inet static
address 10.1.1.10
netmask 255.255.255.0
gateway 10.1.1.1
Run Code Online (Sandbox Code Playgroud)
所以要明确:这里有四个网关。Router1 (10.1.1.1) Router2 (10.1.1.2) Modem1 (192.168.0.1) Modem2 (192.168.0.1)
这是我可以手动检查两个调制解调器状态的说明:
ping -c4 192.168.0.1 # Is Modem1 up?
ip route add via 10.1.1.2
ip route change default via 10.1.1.2
ping -c4 192.168.0.1 # Is Modem2 up?
wget 192.168.0.1 # yields expected control webpage for Modem2
ip route change default via 10.1.1.1
ip …Run Code Online (Sandbox Code Playgroud) 我有一个客户端桥接器(带有 DD-WRT 固件的 LinkSys WRT54GL 路由器)。我为设备指定了一个 IP 地址 192.168.1.2,但是,当我运行 ipconfig 时,默认网关现在是 192.168.0.1。同样,当我尝试连接到http://192.168.1.2 时,我无法访问路由器的管理页面。
有任何想法吗?
键入命令:
% route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 * 255.255.255.0 U 2 0 0 wlan0
link-local * 255.255.0.0 U 1000 0 0 wlan0
(... hang for a while ...)
default 192.168.1.1 0.0.0.0 UG 0 0 0 wlan0
Run Code Online (Sandbox Code Playgroud)
在这里,在default打印最后一行规则之前,路由只是挂了一会儿。
路由表不是缓存在某处吗?
我曾经通过 grep 结果route来获取default规则,以获取默认网关。现在,route似乎在某些机器上挂了一段时间。
我最近发现当我的工作站通过 VPN 连接时,它的 SSH 服务器无法从远程站点连接。我确定这是一个路由问题,因为 VPN 客户端将默认网关更改为 ppp 连接的对等方(VPN 服务器)。
有没有办法让 SSH 服务器和 VPN 客户端都满意?
注意:这是我的家庭计算机实验室,而不是商业/生产环境。我很高兴打破它并再次修复它,所以欢迎任何建议!
概括
我添加了这个快速摘要,因为这个问题越来越长。如果您想了解有关路由表、IP 配置等的更多详细信息,请查看以下内容。
我的电脑上有几个网卡。一个 NIC 是 172.16.200.1 / 24。当我尝试 ping 172.16.200.2(网络上存在的主机)时,我得到回复。到现在为止还挺好。
当我尝试连接到 172.16.200.5(或任何其他不存在的主机)时,计算机将回退到我的默认路由(通过我的默认网关 192.168.0.1 的 0.0.0.0) - 然后由我的家用路由器然后在我的 ISP 网络中的路由循环中丢失了。如果需要,下面会提供更多详细信息,但我猜那里有一位大师可以回答这个问题......
我的问题是:
当该网络上的主机没有响应时,如何阻止我的计算机回退到专用网络的默认网关。这些专用网络已经具有指标较低的显式路由。
我在几台机器(Server 2008 R2、Windows 7、Hyper-V Server 2012 R2、Windows Server 2012)上对此进行了测试,它们的行为方式都相同。我开始接受这是 Windows 机器的“正常行为”,但我很好奇它是否可以停止。
我创建了一个 Ubuntu VM,其配置与我的 Windows VM 相同 - Ubuntu VM 不会像 Windows VM 那样回退到默认路由。我在这篇文章的底部添加了 Ubuntu VM 和 Windows 8.1 VM 的路由表和结果。
更多细节
我已经对这个主题进行了广泛的搜索,我见过的最接近的问题是:Routing loop: TTL expired in transport,但不幸的是,它没有回答如何停止问题或改变计算机上的行为。答案建议修复路由。我可以更改我的路由器以丢弃所有发往私有 IP 地址的内容(或将其转发到我室友的 IP,呵呵),但这不会改变我计算机的行为。(我还阅读了原始答案中引用的很棒的子网划分指南,可以在https://serverfault.com/questions/49765/how-does-ipv4-subnetting-work找到)
我无法理解为什么我的计算机在尝试使用其内部适配器(短期)后会尝试通过 Internet 连接到私有 IP 地址然后失败 - 例如,在尝试 ping …
而随着网络尝试了今天,我带着traceroute的1.1.1.1,发现我的网关地址。而我ping编辑1.1.1.1它会导致数据包丢失。我用谷歌搜索1.1.1.1并找不到任何相关结果。
以下是我的问题:
什么是1.1.1.1?根据我的理解,Default Gateway当主机没有特定数据包的任何路由信息时使用。所以它会询问默认网关。因为 while tracerouteing 是我的默认网关吗?
为什么有1.1.1.1响应traceroute但没有响应ping?
Windows Server 2003 中网络连接的 TCP/IP 属性有两个不同的选项,“默认网关”和“首选 DNS 服务器”。
我的网络布局是这样的:

现在 Alice 可以通过以下方式访问 SSH 网关(从现在开始只是网关):
ssh alice@external.ip
Run Code Online (Sandbox Code Playgroud)
网关上的授权密钥文件如下所示
#/home/Alice/.ssh/authorized_keys
command="ssh -t alice@web" ssh-rsa ABCD...E== alice@somehost
Run Code Online (Sandbox Code Playgroud)
因此,当 Alice 尝试使用她的私钥连接到网关时,她实际上是连接到了 Web 服务器(网关 PC 可以使用无密码的私钥连接到 Web 服务器,从而保持透明)。
问题
我该如何设置,以便 Alice 也能够将事物 scp 发送到 Web 服务器?
我知道这会建立一个单独的连接,但是有没有办法让它像普通的 ssh 一样-R12345:localhost:22工作,这样即使是类似的东西也能工作?