当前位置: 首页 > news >正文

route命令 路由表 Linux Centos

route

route命令在Linux中被用于显示和操纵IP路由表。然而,现在大部分Linux发行版都推荐使用ip route命令代替route,因为ip route提供更多的功能和更灵活的控制。

以下是route命令的基本用法:

  1. 查看路由表: route -n 这个命令显示当前机器的路由表。-n标志意味着数字形式的网络地址,而不是尝试解析主机名。

  2. 添加路由: route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1 dev eth0 这个命令添加一个网络路由,将192.168.1.0/24网络的数据包通过192.168.1.1的网关发送,通过eth0接口。

  3. 删除路由: route del -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1 这个命令删除上面添加的路由规则。

注意:route命令修改的路由表在重启后会丢失,如果你想永久添加或删除路由,需要将其添加到网络配置文件或者启动脚本中。

尽管route命令依然可以使用,但现代Linux系统中,大多数情况下都推荐使用ip route命令,因为它提供了更多的功能和更好的控制。

例如,你可以使用ip route show来查看路由表,使用ip route add 192.168.1.0/24 via 192.168.1.1 dev eth0来添加路由,使用ip route del 192.168.1.0/24 via 192.168.1.1来删除路由。

另外,ip route命令还支持更多的选项和参数,如源路由,策略路由等,这使得它比route命令更强大、更灵活。

# 修改路由表信息; metric是优先级; 修改的话必须能匹配到才可以修改
ip route change 172.16.193.0 via 0.0.0.0 metric 300 dev veth01
​
# 删除路由表
ip route del 172.16.193.0 via 0.0.0.0 dev veth01
​
# 添加路由表
ip route add 172.16.193.0/24 via 0.0.0.0 dev veth01

路由信息解读

route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default gateway 0.0.0.0 UG 100 0 0 ens33 172.16.193.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33 192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0 [root@centos133 ~]# ip route show default via 172.16.193.2 dev ens33 proto static metric 100 172.16.193.0/24 dev ens33 proto kernel scope link src 172.16.193.133 metric 100 192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1

  • default via 172.16.193.2 指定了默认路由,也就是说,所有不符合下面任何一条路由规则的数据包都将发送到 172.16.193.2 这个地址。

  • dev ens33 表示数据包将通过 ens33 网络接口发送。

  • proto dhcp 表示这条路由是由 DHCP 协议添加的。

  • proto kernel: 表示此条路由条目是内核添加的。

  • scope link: 这意味着这个网络是直接相连的,我们可以直接通过相应的接口发送数据包,不需要通过其他路由器。

  • src 172.16.193.133 表示源地址是172.16.193.133。

  • `172.16.193.0/24 dev ens33 表示所有目标地址在 172.16.193.0/24 子网中的数据包都将通过 ens33 网络接口发送。

在分析网络问题时,你可以检查以下几点:

  1. 查看默认路由:默认路由是当数据包的目标 IP 地址不匹配任何特定路由时,数据包会发送到的地方。确保默认路由的网关是可达的并且正确配置。

  2. 查看特定的路由条目:如果你在访问某个特定的网络或者主机时遇到问题,你应该查看路由表中相应的条目。如果没有找到相应的条目,你可能需要添加一条新的路由。

  3. 查看网络接口:确保路由条目指定的网络接口是可用的。你可以使用 ip link show 命令来查看网络接口的状态。

  4. 检查网络连接:使用 pingtraceroute 命令检查网络连接。如果你无法连接到路由的网关,那么你可能需要检查网络连接或者网关的配置。

  5. 你的目标 IP 地址(即虚拟机的 IP 地址)应在路由表的某个网络地址范围内。也就是说,应存在一条路由条目,其网络地址包含了你的目标 IP 地址。

  6. 检查该路由条目是否指向正确的网络接口。如果你在虚拟机上设置了 veth 网络接口,那么路由应该通过这个接口。

  7. 如果虚拟机在网络上使用了 NAT,那么还需要检查宿主机的路由表,看看是否有指向虚拟机 NAT 地址的路由。

在 macOS 上,可以使用 netstat -rn 命令查看路由表。

路由表解读

以下是一个典型的路由表输出例子:

Internet:
Destination        Gateway            Flags        Refs      Use   Netif Expire
default            192.168.1.1        UGSc           76        1     en0
127                127.0.0.1          UCS             0        0     lo0
127.0.0.1          127.0.0.1          UH              5    41894     lo0
169.254            link#4             UCS             0        0     en0
192.168.1          link#4             UCS             3        0     en0
192.168.1.1/32     link#4             UCS             2        0     en0
192.168.1.1        0:1f:c6:4f:31:55   UHLWIir        77      443     en0   1199
192.168.1.3        127.0.0.1          UHS             0        0     lo0
192.168.1.103      127.0.0.1          UHS             0        0     lo0

每一行代表一个路由项,具体解释如下:

  • Destination: 数据包的目标网络或主机。

  • Gateway: 数据包将要经过的下一跳路由器的 IP 地址。link#4127.0.0.1 这样的值表示数据包将直接发送到目标,不通过其他路由器。

  • Flags: 路由选项标志。重要的有 U (Up),表示路由可用,G (Gateway) 表示要经过一个网关(也就是另一个路由器),H (Host) 表示目标是一个主机而不是一个网络,S (Static) 表示这是一个静态路由,手动添加的,不会随着路由协议的变化而变化。

  • Refs: 该路由项被多少个 socket 引用。

  • Use: 该路由项被使用的次数。

  • Netif: 输出接口名称,比如 en0lo0en0 通常代表以太网接口,lo0 代表本地回环接口。

  • Expire: 路由项过期的时间。这通常在动态路由中使用,表示该路由项在多少秒后过期。

  • Link#4类似的含义: link#4表示的是第四个网络接口。这个数字是网络接口在系统中的注册顺序,并不一定代表其名称。例如,en0,en1,en2,lo0等可能对应不同的link#编号。

  • 四个0(0.0.0.0)在路由表中通常表示默认网关,它用于将所有未明确指向其他路由的流量发送到指定的网络设备。0.0.0.0 通常表示“任何网络地址”或“不确定的网络地址”。Gateway 是 0.0.0.0:这通常表示这是一个直连网络,也就是说,这个路由项是指向一个在同一网络段内的目标,不需要通过网关就可以直接达到。

  • Genmask 是 255.255.255.0:这是一个子网掩码,表示该网络的 IP 地址的前 24 位被用于网络地址,后 8 位被用于主机地址。这意味着该网络可以包含的 IP 地址范围是该网络的 x.x.x.0x.x.x.255,其中 x.x.x.0 代表网络地址,x.x.x.255 代表广播地址,其余地址可分配给主机。例如,如果网络地址是 192.168.1.0,那么这个网络的主机地址可以是 192.168.1.1192.168.1.254

  • Genmask 是 0.0.0.0:这通常是一个默认路由,表示任何网络或主机地址都匹配这条路由。通常默认路由的目的地址也是 0.0.0.0,意味着当没有任何其他路由匹配目标IP时,就使用这条默认路由。

  • 子网掩码,比如/24,它是子网掩码的一种表示方式,也被称为CIDR(无类别域间路由)标记。/24意味着前24位(也就是前三个字节)用于网络地址,最后的8位(最后一个字节)则用于主机地址。因此,一个/24网络可以容纳256个地址,其中包括网络地址和广播地址,实际可用的主机地址为254个。

  • "Bogon" 是一个网络术语,通常用来描述非法或者未分配的 IP 地址。在 Internet 世界中,有一部分 IP 地址因为特殊的原因被保留,不应该出现在公开的 Internet 路由表中,这些地址被称为 "bogon IP"。

    当在路由表中看到 gateway 是 "bogon",这可能意味着这个路由条目的下一跳(gateway)是一个无法在公网中正常路由的 IP 地址。这种情况可能会出现在以下几种场景:

    1. 这是一个私有网络的环境,比如企业内部网络或者你自己的家庭网络。在这种环境下,你可能会使用到一些在公网中是无效的 IP 地址,比如 10.0.0.0/8,172.16.0.0/12,192.168.0.0/16 等地址段。

    2. 网络配置出现了错误,比如误将一个无效的 IP 地址设置成了 gateway。

    如果你不希望看到 "bogon",那么你可能需要检查一下你的网络配置,确保你的路由表中所有的 gateway 都是有效的 IP 地址。

    • veth10@if10这样的输出表示这是一个veth设备,它的名字是veth10,@if10表示它与另一端的设备(即它的对端设备,pair)相连,那一端的内部接口编号是10。

    • default via 172.16.193.2 dev ens33 proto static metric 100 proto static表示这个路由条目是静态配置的。换句话说,这条路由并不是通过动态路由协议(如OSPF,RIP,BGP等)学习得到的,而是人工配置的。一般来说,这些路由在系统启动时就由网络配置脚本配置好,或者由网络管理员手动配置。proto字段表示路由条目的来源协议。ip route show命令可能显示的proto字段的值包括但不限于:

      • boot:路由在引导期间设置。

      • static:路由是静态配置的。

      • dhcp:路由是通过DHCP协议动态获取的。

      • ra:路由是通过IPv6的路由通告(Route Advertisement)消息动态获取的

为了检查两个设备间的连通性,你需要查看路由表中是否存在一条能够到达目标设备的路由项。这条路由项应当通过正确的网络接口,并指向正确的网关(如果需要)。此外,需要注意路由项的标志是否正确,特别是 U 标志,表示路由是否可用。

相关文章:

route命令 路由表 Linux Centos

route route命令在Linux中被用于显示和操纵IP路由表。然而,现在大部分Linux发行版都推荐使用ip route命令代替route,因为ip route提供更多的功能和更灵活的控制。 以下是route命令的基本用法: 查看路由表: route -n 这个命令显示当前机器的路…...

CMMI评审

CMMI评审 对于刚入行的朋友来说,可能对CMMI比较陌生。但对于工作多年的朋友来说,有可能都会接触过CMMI。那CMMI到底是什么? CMMI的全称为Capability Maturity Model Integration,即能力成熟度模型集成。对于软件行业,一般是指软件能力成熟度模型集成,是由美国国防部与卡内…...

深入了解 PostgreSQL 扩展插件

深入了解 PostgreSQL 扩展插件 在 PostgreSQL 数据库中,扩展插件是极具价值的工具,它们为我们提供了丰富多样的功能增强。本篇博客将深入介绍几个常用的 PostgreSQL 扩展插件,包括 pg_stat_statements、uuid、postgis 以及 postgis_raster。…...

记一次kernel patch(附开源贡献相关)

文章目录 开源操作系统流程手记smatch能发现的典型问题常见的修复方案附:偶然发现,unlikely函数搞开源贡献的一些捷径 开源操作系统 看了zhihu上的一些科普,明白二次开发是常见现象,套壳、抄袭、自研都不是很科学的说法。中外大厂…...

Pytorch Tutorial【Chapter 1. Basic operation of tensor】

Pytorch Tutorial 文章目录 Pytorch TutorialChapter 1. Basic operation of tensorReference Chapter 1. Basic operation of tensor 本节介绍有关张量Tensor的基本操作 Tensor相当于numpy中的ndarrays 创建空Tensor和全零Tensor,torch.zeros(d0,d1)类似于numpy…...

[环境配置]centos7安装vncserver

1. 首先,需要安装X Window System和GNOME桌面环境。可以通过以下命令进行安装: yum groupinstall "X Window System" yum groupinstall "GNOME Desktop" 2. 安装VNC服务器。可以通过以下命令进行安装: yum install ti…...

Excel功能总结

1)每一张表格上都打印表头 “页面布局”-->“打印标题”-->页面设置“工作表”页-->打印标题“顶端标题行” 如:固定第1~2行,设置成“$1:$2” 2)将页面内容打印在一页【缩印】 1.选好需要打印的区域,“页面布…...

用Rust实现23种设计模式之 组合模式

组合模式是一种结构型设计模式,它允许将对象组合成树状结构,并且能够以统一的方式处理单个对象和组合对象。以下是组合模式的优点和使用场景: 优点: 简化客户端代码:组合模式通过统一的方式处理单个对象和组合对象&a…...

opencv36-形态学操作-膨胀 cv2.dilate()

膨胀操作是形态学中另外一种基本的操作。膨胀操作和腐蚀操作的作用是相反的,膨胀操作能对图像的边界进行扩张。膨胀操作将与当前对象(前景)接触到的背景点合并到当前对象内,从而实现将图像的边界点向外扩张。如果图像内两个对象的…...

8266 ESP-07模块的使用 以及详细介绍

esp8266系列 陶瓷天线 版本 详细介绍说明 最近使用8266的ESP-01S做了个数据无线收发装置,发现板载天线信号太弱,装上外壳后信号更弱,因此考虑能否使用带有外接天线的模块代替ESP-01S。经过在安可信官网搜索发现,ESP07、ESP07S、ES…...

Linux之 centos、Ubuntu 安装常见程序 (-) Mysql 5.7 版本和8.0版本

CentOS 安装 MySql 注意 需要有root权限 安装5.7版本 – 由于MySql并不在CentOS的官方仓库中,所以需要通过rmp命令: 导入MySQL仓库密钥 1、配置MySQL的yum仓库 配置yum仓库 更新密钥 rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 安装…...

【IDEA+Spark Streaming 3.4.1+Dstream监控套接字流统计WordCount保存至MySQL8】

【IDEASpark Streaming 3.4.1Dstream监控套接字流统计WordCount保存至MySQL8】 把DStream写入到MySQL数据库中 Spark 3.4.1MySQL 8.0.30sbt 1.9.2 文章目录 【IDEASpark Streaming 3.4.1Dstream监控套接字流统计WordCount保存至MySQL8】前言一、背景说明二、使用步骤1.引入库2…...

Dcat Admin 入门应用指南

在现代的网络应用开发中,管理后台是不可或缺的一部分。它为开发者提供了一个方便管理和监控应用数据的界面。而 Dcat Admin 是一个强大的管理后台框架,它基于 Laravel 框架开发,提供了丰富的功能和灵活的扩展性。本文将带您深入了解 Dcat Adm…...

计算机视觉:替换万物Inpaint Anything

目录 1 Inpaint Anything介绍 1.1 为什么我们需要Inpaint Anything 1.2 Inpaint Anything工作原理 1.3 Inpaint Anything的功能是什么 1.4 Segment Anything模型(SAM) 1.5 Inpaint Anything 1.5.1 移除任何物体 1.5.2 填充任意内容 1.5.3 替换任…...

AWS——01篇(AWS入门 以及 AWS之EC2实例及简单实用)

AWS——01篇(AWS入门 以及 AWS之EC2实例及简单实用) 1. 前言2. 创建AWS账户3. EC23.1 启动 EC2 新实例3.1.1 入口3.1.2 设置名称 选择服务3.1.3 创建密钥对3.1.4 网络设置——安全组3.1.4.1 初始设置3.1.4.2 添加安全组规则(开放新端口&…...

Clickhouse 优势与部署

一、clickhouse简介 1.1clickhouse介绍 ClickHouse的背后研发团队是俄罗斯的Yandex公司,2011年在纳斯达克上市,它的核心产品是搜索引擎。我们知道,做搜索引擎的公司营收非常依赖流量和在线广告,所以做搜索引擎的公司一般会并行推…...

全球数据泄露事件增加近三倍

网络安全公司 Surfshark 的最新研究显示,2023 年第二季度共有 1.108 亿个账户遭到泄露,其中美国排名第一,几乎占 4 月至 6 月所有泄露事件的一半。 俄罗斯排名第二,西班牙排名第三,其次是法国和土耳其。 与 2023 年…...

【雕爷学编程】 MicroPython动手做(38)——控制触摸屏2

MixPY——让爱(AI)触手可及 MixPY布局 主控芯片:K210(64位双核带硬件FPU和卷积加速器的 RISC-V CPU) 显示屏:LCD_2.8寸 320*240分辨率,支持电阻触摸 摄像头:OV2640,200W像素 扬声器&#…...

钉钉微应用

钉钉微应用 在做钉钉微应用开发的时候,遇到了一些相关性的问题,特此记录下,有遇到其他问题的,欢迎一起讨论 调试工具 当我们基于钉钉开发微应用时,难免会遇到调用钉钉api后的调试,这个时候可以安装eruda…...

【 SpringSecurity】第三方认证方法级别安全

文章目录 SpringSecurity 第三方认证实现方法级别的安全 SpringSecurity 第三方认证 在登录网页时,时常有用其他账号登录的方式,它们能够让用户避免在Web站点特定的登录页上自己输入凭证信息。这样的Web站点提供了一种通过其他网站(如Facebo…...

HTML 语义化

目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案&#xff1a; 语义化标签&#xff1a; <header>&#xff1a;页头<nav>&#xff1a;导航<main>&#xff1a;主要内容<article>&#x…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止

<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet&#xff1a; https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

【磁盘】每天掌握一个Linux命令 - iostat

目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat&#xff08;I/O Statistics&#xff09;是Linux系统下用于监视系统输入输出设备和CPU使…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)

🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

12.找到字符串中所有字母异位词

&#x1f9e0; 题目解析 题目描述&#xff1a; 给定两个字符串 s 和 p&#xff0c;找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义&#xff1a; 若两个字符串包含的字符种类和出现次数完全相同&#xff0c;顺序无所谓&#xff0c;则互为…...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)

上一章用到了V2 的概念&#xff0c;其实 Fiori当中还有 V4&#xff0c;咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务)&#xff0c;代理中间件&#xff08;ui5-middleware-simpleproxy&#xff09;-CSDN博客…...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解

在 C/C 编程的编译和链接过程中&#xff0c;附加包含目录、附加库目录和附加依赖项是三个至关重要的设置&#xff0c;它们相互配合&#xff0c;确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中&#xff0c;这些概念容易让人混淆&#xff0c;但深入理解它们的作用和联…...

MySQL 8.0 事务全面讲解

以下是一个结合两次回答的 MySQL 8.0 事务全面讲解&#xff0c;涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容&#xff0c;并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念&#xff08;ACID&#xff09; 事务是…...

从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践

作者&#xff1a;吴岐诗&#xff0c;杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言&#xff1a;融合数据湖与数仓的创新之路 在数字金融时代&#xff0c;数据已成为金融机构的核心竞争力。杭银消费金…...