route路由命令、ip route命令、default默认路由(0.0.0.0 )

文章目录

  • 概述
  • 3. route语法
    • 3.1 查看路由表
      • 3.1 参数解释
    • 3.2 添加路由记录
      • 3.2.1 添加到达单个目标主机的路由
      • 3.2.2 添加到达目标网络的路由
      • 3.2.3 添加默认路由
    • 3.3 删除路由记录
  • 4. ip route
    • 4.1 查看路由
      • 4.1.1 不带条件
      • 4.1.2 带条件
      • 4.1.3 字段解释
      • 4.1.3 字段解释
    • 4.2 添加路由
    • 4.3 删除路由
    • 4.4 清空路由表:

路由的基础概念:
【计算机网络】Linux下路由配置总结

概述

网络管理是一个复杂而庞大的体系,博主最近刚好学了一点关于网络的知识,就跟大家分享一下如何管理网卡、配置及查看ip地址和路由表。主要通过以下几个命令来演示一下。

现在一些旧的命令由于功能上有欠缺,已经逐渐被新命令取代。

旧命令新命令
ifconfigip addr
routeip route
ip link

3. route语法

通过man route查看详细语法

NAME
       route - show / manipulate the IP routing table

SYNOPSIS
       route [-CFvnNee] [-A family |-4|-6]

       route  [-v] [-A family |-4|-6] add [-net|-host] target [netmask Nm] [gw Gw] [metric N] [mss M] [window W] [irtt I] [reject] [mod] [dyn] [reinstate] [[dev] If]

       route  [-v] [-A family |-4|-6] del [-net|-host] target [gw Gw] [netmask Nm] [metric N] [[dev] If]

       route  [-V] [--version] [-h] [--help]

  • route add 和 route del 是主体命令

  • -net | -host 表示是 号段 | 单个ip,必选,二选一
    host类型时,单个地址,掩码 固定位255.255.255.255,也可以不填,自动补为255.255.255.255(ipv4时)
    net时,掩码必填

  • netmask 掩码,非必选

  • -4|-6 ,表示是 ip4 | ipv6,可以为空,默认是ipv4

  • -n 把专用字符 替换为数字形式的

    例如 default会自动替换为0.0.0.0

    # route
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    default         gateway         0.0.0.0         UG    0      0        0 eth0
    
    # route -n
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    0.0.0.0         10.238.88.254   0.0.0.0         UG    0      0        0 eth0
    
    
  • target 表示想到达的目标网络或单个地址

  • gw 网关地址 ,即下一跳地址
    注意:这个网关不是随便填的,必须是一个真实存在的能通的,例如你的网卡必须有一个连接到某个3层路由的网线,否则会报 Network is unreachable
    网关地址概念参见 【计算机网络】集线器、网桥、交换机、路由器、网关(网关地址)大解析

  • dev ethxxx 目标网卡,非必选。若不指定所用的网卡设备,则会自动选择电脑上的第一个网卡(不包括 loopback)。也就是说当你环境上就一个非lo的网卡时,可以不指定,否则最好指定。

3.1 查看路由表

route 或route -n ,多用后者
在这里插入图片描述
这里的网关是指下一跳地址

默认是查看ipv4路由,如果想查看ipv6的:

route -n -6

3.1 参数解释

在这里插入图片描述
Flags标志说明:

  • U Up表示此路由当前为启动状态

  • H Host,表示此网关为单一主机地址 , 由 route add -host 命令创建的, 无需指掩码,自动为255.255.255.255(ipv4时)

    也就是说不带H参数时,表示是一个网段地址,即多个地址,此时route add -net 命令需指定掩码参数。有的文章说网段为对应的- Flags为N,可能是不同的linux版本。

  • G Gateway,表示此网关为一路由器

  • R Reinstate Route,使用动态路由重新初始化的路由

  • D Dynamically,此路由是动态性地写入

  • M Modified,此路由是由路由守护程序或导向器动态修改

3.2 添加路由记录

是临时添加的记录,重启network服务就失效

3.2.1 添加到达单个目标主机的路由

如果你想添加一个目标地址的话,可以采用这个方法,[]表示可选

 route add -host 目标主机 gw 网关 [ dev 接口 ]

比如 给eth0网卡添加一条到达10.1.111.111的路由记录,网关是10.2.111.111

 route add -host 10.1.111.111 gw 10.2.111.111 dev eth0

在这里插入图片描述

3.2.2 添加到达目标网络的路由

如果你想把某个网络的全部地址都加入路由的话,可以采用这个方法

 route add -net 目标网络 netmask 子网掩码 gw 网关 dev 接口

或者 CIDR格式:

route add -net 目标网络/子网掩码 gw 网关 dev 接口

比如 给eth0网卡添加一条到达网络10.1.0.0/16的路由,网关是10.2.111.111

    route add -net 10.1.0.0 netmask 255.255.0.0 gw 10.2.111.111 dev eth0

或者 CIDR格式:

  route add -net 10.1.0.0/16 gw 10.2.111.111 dev eth0

在这里插入图片描述

3.2.3 添加默认路由

默认路由作用参见 【计算机网络】0.0.0.0与127.0.0.1的区别、默认路由原理

语法:

 route add default gw 网关  [dev ethxxx]

比如给eth0添加一条默认路由,网关是10.2.111.111

 route add default gw 10.2.111.111  dev eth0 

等价于 :

#可以 default是一个网段 ,要以-net开头 
route add -net 0.0.0.0  netmask 0.0.0.0 gw 10.2.111.111  dev eth0 

在这里插入图片描述

3.3 删除路由记录

删除路由记录只需要把添加路由记录命令中的add改成del就可以了,不过删除路由记录可以省略接口

1)删除到达目标主机的路由记录

route del -host 主机名

2)删除到达目标网络的路由记录

route del -net 目标网络/子网掩码

3)删除默认路由

route del default 或 route del -net 0.0.0.0

4. ip route

ip route 的用法与route大同小异

 ip route { list | flush } SELECTOR   //查看路由
 ip route save SELECTOR
 ip route restore
 ip route showdump
 ip route get ADDRESS [ from ADDRESS iif STRING ]
                      [ oif STRING ] [ tos TOS ]
                      [ mark NUMBER ] [ vrf NAME ]
                      [ uid NUMBER ]
 ip route { add | del | change | append | replace } ROUTE   //添加路由、删除路由

SELECTOR := [ root PREFIX ] [ match PREFIX ] [ exact PREFIX ]
            [ table TABLE_ID ] [ vrf NAME ] [ proto RTPROTO ]
            [ type TYPE ] [ scope SCOPE ]
ROUTE := NODE_SPEC [ INFO_SPEC ]
NODE_SPEC := [ TYPE ] PREFIX [ tos TOS ]
             [ table TABLE_ID ] [ proto RTPROTO ]
             [ scope SCOPE ] [ metric METRIC ]
INFO_SPEC := NH OPTIONS FLAGS [ nexthop NH ]...
NH := [ encap ENCAPTYPE ENCAPHDR ] [ via [ FAMILY ] ADDRESS ]
            [ dev STRING ] [ weight NUMBER ] NHFLAGS
FAMILY := [ inet | inet6 | ipx | dnet | mpls | bridge | link ]
OPTIONS := FLAGS [ mtu NUMBER ] [ advmss NUMBER ] [ as [ to ] ADDRESS ]
           [ rtt TIME ] [ rttvar TIME ] [ reordering NUMBER ]
           [ window NUMBER ] [ cwnd NUMBER ] [ initcwnd NUMBER ]
           [ ssthresh NUMBER ] [ realms REALM ] [ src ADDRESS ]
           [ rto_min TIME ] [ hoplimit NUMBER ] [ initrwnd NUMBER ]
           [ features FEATURES ] [ quickack BOOL ] [ congctl NAME ]
           [ pref PREF ] [ expires TIME ]
TYPE := { unicast | local | broadcast | multicast | throw |
          unreachable | prohibit | blackhole | nat }
TABLE_ID := [ local | main | default | all | NUMBER ]
SCOPE := [ host | link | global | NUMBER ]          //scop 传播范围
NHFLAGS := [ onlink | pervasive ]
RTPROTO := [ kernel | boot | static | NUMBER ]    //proto  来源类型
PREF := [ low | medium | high ]
TIME := NUMBER[s|ms]
BOOL := [1|0]
FEATURES := ecn
ENCAPTYPE := [ mpls | ip | ip6 ]
ENCAPHDR := [ MPLSLABEL ]

4.1 查看路由

ip route { list | flush } SELECTOR ,查看路由

SELECTOR 是过滤的条件,可选参数,具体的条件参见SELECTOR ;

4.1.1 不带条件

当SELECTOR 为空时,可以简写 ,以下均可以:

ip r
ip route
ip route show
ip route list

ip route显示的路由记录与route显示的格式不一样
在这里插入图片描述

4.1.2 带条件

例如过滤出 unicast类型的路由:

ip route list type unicast     

4.1.3 字段解释

表示默认路由,即当没有其他路由匹配时,数据包将会被发送到的地址。

4.1.3 字段解释

  • default:表示默认路由,即当没有其他路由匹配时,数据包将会被发送到的地址。

  • via xxx:后面跟随的IP地址是数据包应当被转发到的下一跳IP地址

  • dev xxxx:表示数据包应通过的出接口。

  • proto 路由的来源
    proto kernel 表示该路由条目是由内核自动创建的,通常用于处理本地流量或者路由决策是由内核模块(如策略路由或IPVS)做出的,而不是由用户手动添加的
    类似动态主机配置协议 DHCP ,会自动给我们的机器分配地址,同时能联网,即自动也添加了一条路由。 参见 DHCP是什么意思 路由器中DHCP服务器怎么设置?

    proto boot 表示由系统启动时从某些配置文件(如/etc/fstab)加载

  • scope 限定了转发范围。
    scope link 这意味着这些路由条目只适用于本地链路(local link),不会被转发到其他网络。

    local link
    是网络术语,指的是在同一物理或逻辑链路上的设备之间的通信。在数据链路层(第二层),局域网(LAN)和城域网(MAN)中的设备通常属于同一个局部链路。

    在TCP/IP模型中,局部链路层负责在同一局部链路内的直接点对点通信。这种通信不经过路由器,因为路由器的任务是将数据包从一个网络传输到另一个网络。

    因此,当您在Linux网络命令中看到 scope link 时,它表示该路由条目只适用于本地链路,不会被转发到其他网络。
    简单来说,路由是3层概念,link 降级了,改为2层,提高了效率。由于是2层,不带路由,则仅限于当前的局域网中,不会被转发出去
    scope host 主机路由,只适用于特定的主机
    scope global 全局路由,适用于所有的网络接口,通常通过路由协议(如RIP、OSPF等)学习到的路由
    scope site:站点路由,适用于同一站点内的所有网络接口

  • src 表示路由产生的源地址

4.2 添加路由

1)添加到达目标主机的路由记录

ip route add 目标主机 via 网关 dev ethxxx

2)添加到达网络的路由记录

ip route add 目标网络/掩码 via 网关 dev ethxxx

3)添加默认路由

ip route add default via 网关 dev ethxxx

下面只举一个例子说明一下。

比如增加一条到达主机10.2.111.112的路由,网关是10.1.111.112

ip route add 10.2.111.112 via 10.1.111.112   dev eth0

在这里插入图片描述

4.3 删除路由

ip route del 目标网络/掩码

ip route del default [via 网关]

4.4 清空路由表:

ip route flush

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/544551.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于Springboot+Vue的Java项目-高校心理教育辅导系统开发实战(附演示视频+源码+LW)

大家好!我是程序员一帆,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:Java毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计 &am…

发布 Chrome/Edge浏览器extension扩展到应用商店

Chrom Extension发布流程 创建和发布自定义 Chrome 应用和扩展程序:https://support.google.com/chrome/a/answer/2714278?hlzh-Hans 在 Chrome 应用商店中发布:https://developer.chrome.com/docs/webstore/publish?hlzh-cn 注册开发者帐号&#…

Eclipse+Java+Swing实现图书信息管理系统-TXT存储信息

一、系统介绍 1.开发环境 操作系统:Win10 开发工具 :Eclipse2021 JDK版本:jdk1.8 存储方式:Txt文件存储 2.技术选型 JavaSwingTxt 3.功能模块 4.工程结构 5.系统功能 1.系统登录 管理员可以登录系统 2.查看图书 管理员…

软件无线电安全之HackRF One初探

HackRF介绍 HackRF是一款开源软件无线电(SDR)平台,由Great Scott Gadgets公司推出。它具有广泛的频率覆盖范围,从1 MHz到6 GHz,支持大部分常见的无线通信频段。采用软件定义无线电技术,HackRF提供了自定义…

vue快速入门(二十四)输入停顿再进行响应

注释很详细&#xff0c;直接上代码 上一篇 新增内容 使用侦听器监视数据变化情况使用clearTimeout与定时器实现停顿一段时间再操作内容 源码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"view…

【王道数据结构笔记】顺序表的动态分配代码分析

&#x1f388;个人主页&#xff1a;豌豆射手^ &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 &#x1f917;收录专栏&#xff1a;数据结构 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共同学习、交流进…

docker 安装 nginx + httpd + php-fpm

原文地址&#xff1a;http://www.taoluyuan.com/index.php/archives/30/#2 展示 1.安装 1.1安装docker 1.2安装nginx 1.3安装apache-httpd 1.4安装php-fpm 2.配置nginx反向代理 httpdphp-fmp 1.安装 1.1安装docker 移除旧的版本&#xff1a; sudo yum remove docker 安装…

redis-plus-plus的安装与使用

本文参考自 redis-plus-plus 官方文档 一、安装 因为redis-plus-plus是基于hiredis封装的&#xff0c;所以需要先安装hiredis&#xff1b; 第一步&#xff1a;安装hiredis # 使用git下载源代码 git clone https://github.com/redis/hiredis.git # 进入源代码主目录 cd hired…

ChatGPT在线网页版

ChatGPT镜像 今天在知乎看到一个问题&#xff1a;“平民不参与内测的话没有账号还有机会使用ChatGPT吗&#xff1f;” 从去年GPT大火到现在&#xff0c;关于GPT的消息铺天盖地&#xff0c;真要有心想要去用&#xff0c;途径很多&#xff0c;别的不说&#xff0c;国内GPT的镜像…

LangChain LangServe 学习笔记

LangChain LangServe 学习笔记 0. 引言1. LangServe 概述2. 特性3. 限制4. 安装5. 示例应用程序6. OpenAPI文档7. Python SDK 客户端8. Playground9. 聊天可运行页面 0. 引言 使用 LangServe 可以立即将您的LLM应用程序变成 API 服务器。 LangServe 使用 FastAPI 构建&#x…

5. Mysql的binlog介绍

参考&#xff1a;InnoDB学习&#xff08;三&#xff09;之BinLog 1. BinLog介绍 BinLog又称为二进制日志&#xff0c;是MySQL服务层的数据日志&#xff0c;MySQL所有的存储引擎都支持BinLog。 BinLog记录了MySQL中的数据更新和可能导致数据更新的事件&#xff0c;可以用于主从…

大数据深度学习:基于Tensorflow深度学习卷积神经网络CNN算法垃圾分类识别系统

文章目录 大数据深度学习&#xff1a;基于Tensorflow深度学习卷积神经网络CNN算法垃圾分类识别系统一、项目概述二、深度学习卷积神经网络&#xff08;Convolutional Neural Networks&#xff0c;简称CNN&#xff09;三、部分数据库架构四、系统实现系统模型部分核心代码模型训…

【C++】模板初阶——泛型编程、函数模板、类模板

1. 泛型编程 如何实现一个通用的交换函数呢&#xff1f; void Swap(int& left, int& right) {int temp left;left right;right temp; } void Swap(double& left, double& right) {double temp left;left right;right temp; } void Swap(char& left…

双向链表的实现(详解)

目录 前言初始化双向链表的结构为双向链表的节点开辟空间头插尾插打印链表尾删头删查找指定位置之后的插入删除pos节点销毁双向链表 前言 链表的分类&#xff1a; 带头 不带头 单向 双向 循环 不循环 一共有 (2 * 2 * 2) 种链表 带头指的是&#xff1a;带有哨兵位节点 哨兵位&a…

关于部署ELK和EFLK的相关知识

文章目录 一、ELK日志分析系统1、ELK简介1.2 ElasticSearch1.3 Logstash1.4 Kibana&#xff08;展示数据可视化界面&#xff09;1.5 Filebeat 2、使用ELK的原因3、完整日志系统的基本特征4、ELK的工作原理 二、部署ELK日志分析系统1、服务器配置2、关闭防火墙3、ELK ElasticSea…

个人笔记目录

目录 一、lora 微调 alpaca 笔记 二、全量微调 Llama2-7b笔记 三、Huggingface trainer 与 from_pretrained简单介绍&#xff08;笔记&#xff09; 四、vscode调试launch.json常用格式 五、huggingface generate函数简介 六、Trl: llama2-7b-hf使用QLora 4bit量化后ds zer…

自动化收集Unity版本更新日志

自动化收集Unity版本更新日志 &#x1f365;功能介绍&#x1f96a;食用手册填写配置开始搜集 &#x1f368;数据展示 &#x1f365;功能介绍 &#x1f4a1;获取指定年份中所有的Unity版本更新日志。 &#x1f4a1;根据指定字符串过滤。 &#x1f4a1;.收集后自动保存成markdow…

Redis队列与Stream

Redis队列与Stream、Redis 6多线程详解 Redis队列与StreamStream总述常用操作命令生产端消费端单消费者消费组消息消费 Redis队列几种实现的总结基于List的 LPUSHBRPOP 的实现基于Sorted-Set的实现PUB/SUB&#xff0c;订阅/发布模式基于Stream类型的实现与Java的集成消息队列问…

OpenHarmony实战开发-FaultLoggerd组件。

简介 Faultloggerd部件是OpenHarmony中C/C运行时崩溃临时日志的生成及管理模块。面向基于 Rust 开发的部件&#xff0c;Faultloggerd 提供了Rust Panic故障日志生成能力。系统开发者可以在预设的路径下找到故障日志&#xff0c;定位相关问题。 架构 Native InnerKits 接口Sig…

向量 | vector;标量 | scalar;矩阵;张量

目录 什么是标量 什么是向量? 向量的3种表达方式 向量的矩阵表示 什么是矩阵 什么是张量 什么是标量 标量只有大小概念,没有方向的概念。通过一个具体的数值就能表达完整。 比如:重量、温度、长度、提及、时间、热量等都数据标量。