Linux:网络指令(route)

发布时间 2023-08-04 14:16:32作者: ShineLe

学习自:route命令 - Linux命令大全 | linux教程

Linux命令·route

详解 linux 路由 route 命令 - 知乎

1、说明

route命令用于显示、设置Linux网络路由表,route命令设置的主要是静态路由

要实现两个不同子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。

Linux系统种设置路由通常是为了解决这个问题:该linux系统在一个局域网中,局域网中有一个网关,能够让主机访问互联网,那么就要将该机器的IP设为Linux机器的默认路由

要注意,直接通过命令行的方式添加路由,只是临时的重启后失效,如果要永久生效,需要去/etc/rc.local下添加route命令。

2、用法

用法:route 选项

选项:

选项

说明

-A 设置地址类型(默认IPv4)
-C 打印Linux核心的路由缓存
-v 详细信息模式
-n

不进行DNS解析(不显示域名,例如default,gateway)

直接显示数字形式的ip地址

-e 以netstat的格式显示路由表
-net IP地址 到某个网络的路由表
-host IP地址 到某个主机的路由表
add (后跟-net或-host) 增加指定路由记录(临时)
del(后跟-net或-host) 删除指定路由记录(永久)
Target 目标主机或目标网络
gw 网关IP 设置默认网关
mss 设置TCP的最大区块长度(MSS),单位MB
window 指定通过路由表的TCP连接的TCP窗口的大小
dev 网卡设备名 路由记录表示的网络接口

例子

1、显示当前路由

route 

route -n不会进行DNS解析,比如上文的default和gateway都会代之以具体IP,速度更快

解释:

  • Destination:目的主机/网络的IP
  • Gateway:发送到的网关
  • Flags:路由标志,代表当前网络结点状态:
    • U:UP,该路由当前为启动状态
    • H:Host,该路由为某个主机路由
    • G:Gateway,该路由为某个默认路由
    • D:Dynamically,该路由为动态写入
    • R:Reinstate Route,使用动态路由重新初始化的路由
    • M:Modified,该路由是路由守护程序或导向器动态修改
    • !:该路由为关闭状态
  • Iface:网卡名

2、添加一条路由:route add -net destIP netmask 网关地址 dev 网卡

route add -net 192.168.60.11 netmask 192.168.60.1 dev ens192

增加一条路由,到目的地址192.168.60.11,网关192.168.60.1,通过网卡ens192转发

3、删除一条路由:route del -net dest_IP netmask 网关 dev 网卡

route del -net 192.168.60.11 netmask 192.168.60.1 dev ens192 

删除到192.168.60.11,网关192.168.60.1,通过网卡ens192进行转发的路由

4、添加删除默认网关

route add default gw 192.168.60.1 
route del default gw 192.168.60.1

 

错误

1)netmask doesn't match route address

能不随意添加一个route,执行指令

route add -net 192.168.10.11 netmask 255.255.255.0 gw 192.168.10.1 dev enp0s8
时可能会报错netmask doesn't match route address,原因是-net 后跟网段,而非某个指定的IP。如果要指定IP,应该使用host

2)SIOCADDRT: Network is unreachable

在解决了第一个问题之后,如果单纯把-net改为-host,会报错SIOCADDRT: Network is unreachable,这是因为在添加一个新的网段时,它的出口地址应该是当前ip路由表中的当前有的地址,否则会出现这个错误:SIOCADDRT: 没有那个进程。

以上两个问题的解决思路来源:route路由失败,为何?_格格巫 MMQ!!的博客-CSDN博客

Linux route_route: netmask doesn't match route address_格格巫 MMQ!!的博客-CSDN博客