方法如何在Linux上从缓存中清除路由表

本文介绍如何使用终端命令在“ Linux”上刷新路由表。计算机网络路由表是存储在路由器或网络服务器上的数据表,列出了到特定网络目标的路由。通常,每个静态路由都有一个关联的指标。网络设备使用此度量来确定要为发往特定网络的数据包选择的路由。如果您是在Linux系统的环境中进行交谈,则还要维护路由表。在大多数情况下,服务器具有多个活动网络接口。

在某些时候,可以清除或更新路由表以允许访问某些网络。该网络可以是组织本地的,也可以涉及公共Internet的通过。大多数Linux发行版都有两个用于此任务的主要工具ip根命令行工具。

使用ip命令刷新路由表

IP是Unix / Linux命令行工具,用于查看和操作路由,网络设备,接口和隧道。它替代了主要使用的ifconfig工具。该工具可以在界面上执行几乎所有类型的Linux网络配置。在刷新路由之前,您可能需要使用以下命令检查当前路由表:

$ ip route 
default via 192.168.0.1 dev wlp1s0 proto dhcp metric 600 
192.168.0.0/24 dev wlp1s0 proto kernel scope link src 192.168.0.16 metric 600

从输出中可以看到,默认路由设置为192.168.0.1。这意味着,发往本地子网92.168.0.0/24以外的网络的所有数据包都将通过192.168.0.1转发。该IP 192.168.0.1用于路由器。

在您的笔记本电脑上启动docker服务进行演示。 Docker有自己的子网。使用它来显示如何使用ip命令。

$ sudo systemctl start docker
$ ip route 
default via 192.168.0.1 dev wlp1s0 proto dhcp metric 600 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown 
192.168.0.0/24 dev wlp1s0 proto kernel scope link src 192.168.0.16 metric 600

刷新特定路线

当前,还有另一条路由172.17.0.0/16通过172.17.0.1。如果要刷新此路由,请使用:

$ sudo ip route flush 172.17.0.0/16
$ ip route 
default via 192.168.0.1 dev wlp1s0 proto dhcp metric 600 
192.168.0.0/24 dev wlp1s0 proto kernel scope link src 192.168.0.16 metric 600
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 600 0 0 wlp1s0
192.168.0.0 0.0.0.0 255.255.255.0 U 600 0 0 wlp1s0

您可以看到该路由已从路由表中删除。

刷新所有路线

要刷新路由表中的所有路由,请使用options route flush table main ip命令。要执行的完整命令是:

$ sudo ip route flush table main
$ ip route show

重新检查路由表应返回空。此命令应谨慎使用,因为可以在没有直接连接或其他访问方法(例如控制台或调制解调器等)的情况下将其从服务器中逐出。

清空路由缓存

Linux内核通常在从路由表中获取新路由之前先查看路由缓存。可以使用命令清除此缓存。

$ sudo ip route flush cache

要查看可用的缓存路由:

$ sudo ip route show cache

显示路由缓存中的统计信息

如何获取有关缓存路由的详细信息。使用以下命令:

$ sudo ip -s route show cache

其他信息,例如 “二手” 指定字段。这表示已在路由缓存中访问此路由的次数。

对于永久静态路由,可以将路由放入以下文件之一:

/etc/sysconfig/static-routes or /etc/sysconfig/network-scripts/route-  # Red Hat and its derivatives - CentOS, Fedora e.t.c
/etc/network/interfaces # Debian and its derivatives

CentOS 7的持久性路由的一个示例是:

# cat /etc/sysconfig/network-scripts/route-eth0

GATEWAY0=192.168.1.254
NETMASK0=255.255.255.0
ADDRESS0=192.168.5.0

GATEWAY1=10.10.10.1
NETMASK1= 255.255.255.240
ADDRESS1=10.164.234.132

Ubuntu / Debian行看起来像这样:

up route add -net 192.168.5.0 netmask 255.255.255.0 gw 192.168.1.254
down route del -net 192.168.5.0 netmask 255.255.255.0 gw 192.168.1.254

让我们知道您对本文的看法。

另请阅读:

  • 如何通过示例使用Linux中的IP命令
  • 如何使用Linux路由添加命令
Sidebar