网络相关指令_ARP表,Route表,Mac表

网络相关指令_ARP表,Route表,Mac表详解了三大表 查看路由表

大家好,欢迎来到IT知识分享网。

ARP表,Route表,Mac表

  • 每个网络设备上的每个接口都会有一个interface name, 内核用其区分这些接口,例如图中的Lan1, 它的interface name 是 “eth1″. 可以通过 ifconfig, ipconfig 命令查看.
  • 每个网络设备都会有 ARP表用于存储学习到的ARP记录(ip和Mac的对应关系 ),每条记录都会有生存周期.
  • 每个网路设备都会有Route表,数据包会查找此表来确定由哪个接口转发.
  • 路由器的网桥,就是一个switch(交换机),switch有Mac的学习能力,switch会学习数据包的源Mac,然后把源Mac和接收它的接口的对应关系记录到Mac表.
  • 路由器有LAN(局域网) 和 WAN(广域网),网桥(interface name:br0)会把所有的Lan的接口(eth1~eth4)桥接起来组成LAN,而用一个单独的接口作为WAN.
  • LAN 端会有DHCP Server用于给连接到LAN的网络设备动态分配IP地址.
  • WAN 端会有DHCP Client 用于从其网络中获得IP地址.
  1. 首先,电脑1根据ping的目的ip(192.168.1.44)查找它的router table,查找的结果是ping数据包的目的ip和电脑1的网口ip是同一个网段, 即同一个LAN网络
  2. 由电脑1的网口发送,接下来会查找ARP table,看是否有192.168.1.44对应的Mac地址,如果没有记录,会向LAN发送ARP请求去询问192.168.1.44的MAC地址,然后电脑4通过ARP回复把其Mac地址告诉电脑1,电脑1会把学习到的记录加入到ARP tabel,然后对应的ping数据包从电脑1网口发出. 如果在查找ARP table的时候有对应的记录存在,直接用对应的Mac地址发送数据包.
  3. 其次,电脑1的ping数据包会被路由器1的lan1接口接收,因为ping的目的Mac不是网桥(br0)的地址,说明数据包需要转发,所以switch会根据ping的目的Mac查找Mac table,由于电脑4之前发送过ARP回复,电脑4的Mac和Lan4接口的对应关系已经被学习到Mac table,
  4. ping数据包就直接由Lan4接口发送,进而电脑4收到来自电脑1的ping请求.

查看接口信息

ipconfig / ifconfig/all –windows

image.pngimage.png

brctl–查看网桥 Mac表

安装brctl网桥工具

$ sudo apt-get install bridge-utils 

image.png
主要参数解释
image.png



brctl showmacs br_name:显示网桥学习到的MAC地址信息

image.png
image.png


brctl delif br_name device:网桥删除端口

image.png

查看ARP 表—arp

-a<主机>:显示arp缓冲区的所有条目; -H<地址类型>:指定arp指令使用的地址类型; -d<主机>:从arp缓冲区中删除指定主机的arp条目; -D:使用指定接口的硬件地址; -e:以 Linux 的显示风格显示arp缓冲区中的条目; -i<接口>:指定要操作arp缓冲区的网络接口; -s<主机><MAC地址>:设置指定的主机的IP地址与MAC地址的静态映射; -n:以数字方式显示arp缓冲区中的条目; -v:显示详细的arp缓冲区条目,包括缓冲区条目的统计信息; -f<文件>:设置主机的IP地址与MAC地址的静态映射。 

image.png
image.png

image.png
上面00:50:56:f3:c9:8e是网关192.168.2.2的MAC地址,00:50:56:c0:00:08是虚拟机VMnet8的MAC地址。
image.pngimage.png



IP指令–Route表

ip rule – 操作路由策略数据库

增加路由策略

格式类型

 判断条件 表ID 优先级 ip rule add from 192.168.3.1 table 10 prio 199 // 添加规则,源地址为192.168.3.1的包,使用表10 

参数解释:

  • From: 源地址
  • to: 目的地址
  • dev: 输入的数据,后面会接接口
  • fwmark n:做标记 n
ip rule add to 168.95.1.1 table 10 // 目的地址是 168.95.1.1 使用 table 10 ip rule add dev eth2 table 1 // dev eth2 输入的数据,使用 table 1 ip rule add dev eth3 table 3 // dev eth3 输入的数据,使用 table 3 
ip rule add fwmark 1 table 1 // fwmark 1 的数据,使用 table 1 标记为1的数据 ip rule add fwmark 2 table 2 ip rule add fwmark 3 table 3 
  1. 通过路由表 1 路由来自源地址为192.203.80/24的数据包
ip rule add from 192.203.80/24 table 1 prio 220 #增加规则220 prio 

image.png
如果去掉prio的话,最后的222默认就是路由表的名称,并且因为没有设定规则ID,就默认在目前的规则上添加一个,220->219
image.png
image.png


  1. 添加一个路由策略,使得所有来自172.21.45.122的数据包都传递到main表中

image.png

  1. 把源地址为193.233.7.83的数据报的源地址转换为192.168.80.144,并通过表1进行路由
ip rule add from 193.233.7.83 nat 192.168.80.144 table 1 prio 311 #nat网络地址转换 

image.png
image.png

  1. 增加标记
删除路由策略

删除规则,可以使用 优先级,源地址,目的地址,路由表 等信息作为判断条件。

ip rule del prio 10 # 按照优先级 ip rule del from 192.168.1.0/24 # 按照判断条件 ip rule del table 1 # 删除表 ip rule del from 192.168.1.0/24 table 1 prio 10 
  1. 根据优先级来删除对应的路由策略

image.png

  1. 按照判断条件来删除源地址的策略

image.png

  1. 删除表中的策略
ip rule del table 1 #一次只能删除一个策略 

image.pngimage.png

在 Linux 系统启动时,内核会为路由策略数据库配置三条缺省的规则:

  • 0 匹配任何条件 查询路由表local(ID 255) 路由表local是一个特殊的路由表,包含对于本地和广播地址的高优先级控制路由。rule 0非常特殊,不能被删除或者覆盖。
  • 32766 匹配任何条件 查询路由表main(ID 254) 路由表main(ID 254)是一个通常的表,包含所有的无策略路由。系统管理员可以删除或者使用另外的规则覆盖这条规则。
  • 32767 匹配任何条件 查询路由表default(ID 253) 路由表default(ID 253)是一个空表,它是为一些后续处理保留的。对于前面的缺省策略没有匹配到的数据包,系统使用这个策略进行处理。这个规则也可以删除。

注:不要混淆路由表和策略:规则指向路由表,多个规则可以引用一个路由表,而且某些路由表可以策略指向它。如果系统管理员删除了指向某个路由表的所有规则,这个表没有用了,但是仍然存在,直到里面的所有路由都被删除,它才会消失。

route – 管理路由表

route 命令用于查看和操作Linux操作系统中的路由表。它允许您添加,删除和修改路由表的条目,以确定数据包从一台计算机到另一台计算机的传输路径。

查看路由表: windows下
image.png
image.png
查看路由表:Linux下 “ip route” 或 “route”


以下是一些 route 命令的常用选项:

  • route -n:以数字格式显示路由表。这将以 IP 地址和网络掩码的数字形式而非主机名和网络掩码的形式来显示路由表的内容。
  • route add:添加新的路由表项。
  • route del:从路由表中删除一条路由。
  • route change:更改路由表中的一条路由。
  • route flush:清空整个路由表。

image.png
image.png

route = route -n #默认显示的是中文,显示当前路由表 route -en #显示的是英文,显示当前路由表 

image.png
在 route -n 命令的输出中可以看见标志即路由类型。以下是一些常见的路由类型及其含义:

  • U 表示该路由是可用的 (up)
  • G 表示该路由是一个默认网关 (gateway)
  • H 表示该路由是一个主机路由 (host)
  • UG 表示该路由同时具有默认网关和可用的属性
  • UGH 表示该路由同时具有默认网关、可用和主机路由属性

因此,对于输出中的每一行,第一列的字符组合表示该路由的类型和属性。例如,UG 表示该路由是一个默认网关,并且可用。同样,UGH 表示该路由是一个主机路由,并且是默认网关,并且可用。

route add —— 添加路由

在 route add 命令中,可以使用 -gw 选项指定一个网关,也可以使用 -dev 选项指定要使用的网络设备

  1. 添加一个新路由,源地址是172.21.45.0,子网掩码是255.255.255.0,网关/目的地址是172.21.45.254
route add -net 172.21.45.0 netmask 255.255.255.0 gw 172.21.45.254 

image.png

  1. 添加默认路由172.21.45.33

image.png

  1. 添加路由的时候指定接口
route add -net 172.21.45.44 netmask 255.255.255.0 dev eth0 

route delete —— 删除路由
  1. 删除指定默认路由 gw 172.21.45.33
route del default gw 172.21.45.33 #指定删除默认路由 #如果不加iP地址,则会默认删除当前的默认路由 

image.png

  1. 删除到网络的路由

image.png

route change —— 更改路由表
  1. 更改到网络的路由网关
route change -net 172.21.45.0 netmask 255.255.255.0 gw 172.21.45.2 

route flush —— 清空路由表

使用 route flush 命令将清空整个路由表,这意味着所有当前定义的路由都将被删除。在路由表被清空后,系统将无法将数据包路由到其目标地址,将无法访问网络。

ip route – 管理静态路由表

image.png
linux 系统中,可以自定义从 1-252个路由表。其中,linux系统维护了4个路由表:

  • 0#表: 系统保留表
  • 253#表: defulte table 没特别指定的默认路由都放在改表
  • 254#表: main table 没指明路由表的所有路由放在该表
  • 255#表: local table 保存本地接口地址,广播地址、NAT地址 由系统维护,用户不得更改

查找路由表可以通过ip route show table table_number[table name]命令,路由表和表明的对应关系记录在/etc/iproute2/rt_tables

ip route show table ——查看路由表信息
ip route show table 表号[表名] 

image.png

# 第一行是默认路由,表示在路由表上查不到数据时时,报文都从 enp0s3 网卡出去,去 IP 为 10.0.0.2 的另一台主机。 # 第二行是网络路由,表示去 10.0.0.0/24 网络的报文都从 enp0s3 网卡出去,报文中携带的源地址(本机地址)为 10.0.0.128。 # 第三行也是网络路由,表示去 172.17.0.0/16 网络的报文都从 docker0 网卡出去,报文中携带的源地址(本机地址)为 172.17.0.1。 # 由第二行可知,走默认路由时,报文中携带的源地址(本机地址)为 10.0.0.128。 

ip route add – 增加路由
  1. 增加默认网关(在main路由表中)172.21.45.22

6c1ee5aaa5da71af9104f8d611bffaf.png
image.png
image.png

  1. 在1号路由表中增加默认网管172.21.45.11
ip route add default via 172.21.45.11 table 1 

image.png

  1. 添加源地址是172.21.45.2,目的地址是172.21.45.5的路由
ip route add 172.21.45.2 via 172.21.45.5 

image.png

  1. 设置172.21.45.4网段的网关为172.21.45.8,数据走enp0s8接口
ip route add 172.21.45.4 via 172.21.45.8 dev enp0s8 

image.png

  1. 在2号路由表中增加172.21.45.5网段的网关为172.21.45.10
ip route add 172.21.45.5 via 172.21.45.10 dev enp0s8 table 2 

image.png

ip route show – 显示系统路由
  • ip route 或:ip route show
  • 显示系统路由
  • ip route show table local
  • 查看本地路由表

ip route get – 获取单目标路由
ip route get 172.21.45.4 

image.png
获取到目标的单个路由,并按照内核所看到的方式打印其内容


ip route delete – 删除路由

网络相关指令_ARP表,Route表,Mac表

ip route del default #删除当前默认网关 

image.png
如果要想删除指定的默认路由,则需要加上via + ip地址

ip route del default via 172.21.45.254 

image.png
删除指定路由
image.png

ip route del 地址 

image.png

ip route flush – 输出特定路由
  • ip route flush 10.38.0.0/16
  • 删除特定路由
  • ip route flush table main
  • 清空路由表

ip address – 查看所有Ip地址

显示自己的IP地址

hostname -I 

ip a:查看所有 IP 地址(以网卡分组)。
image.png
ip a show lo:查看 本地 网卡上的 IP 地址。
image.png
ip a add 192.168.10.10/24 dev ens33:向 ens33 网卡上添加一个临时 IP 地址 192.168.10.10/24 (dev 是 device 的简写)。
ip a del 192.168.10.10/24 dev ens33:从 ens33 网卡上删除一个临时 IP 地址 192.168.10.10/24。




iptables指令 – 实现对网络数据包进出设备及转发的控制

iptables 是 Linux 防火墙系统的重要组成部分,iptables 的主要功能是实现对网络数据包进出设备及转发的控制。当数据包需要进入设备、从设备中流出或者由该设备转发、路由时,都可以使用 iptables 进行控制。

iptables 是集成在 Linux 内核中的包过滤防火墙系统。使用 iptables 可以添加、删除具体的过滤规则,iptables 默认维护着 4 个表和 5 个链,所有的防火墙策略规则都被分别写入这些表与链中。

四表”是指 iptables 的功能,默认的 iptables 规则表有 filter 表(过滤规则表)、nat 表(地址转换规则表)、mangle(修改数据标记位规则表)、raw(跟踪数据表规则表):

  • filter 表:控制数据包是否允许进出及转发,可以控制的链路有 INPUT、FORWARD 和 OUTPUT。
  • nat 表:控制数据包中地址转换,可以控制的链路有 PREROUTING、INPUT、OUTPUT 和 POSTROUTING。
  • mangle:修改数据包中的原数据,可以控制的链路有 PREROUTING、INPUT、OUTPUT、FORWARD 和 POSTROUTING。
  • raw:控制 nat 表中连接追踪机制的启用状况,可以控制的链路有 PREROUTING、OUTPUT。

五链”是指内核中控制网络的 NetFilter 定义的 5 个规则链。每个规则表中包含多个数据链:
INPUT(入站数据过滤)、
OUTPUT(出站数据过滤)、
FORWARD(转发数据过滤)、
PREROUTING(路由前过滤)
POSTROUTING(路由后过滤),
防火墙规则需要写入到这些具体的数据链中。
Linux 防火墙的过滤框架,如图所示:
网络相关指令_ARP表,Route表,Mac表
可以看出,








  1. 如果是外部主机发送数据包给防火墙本机,数据将会经过 PREROUTING 链与 INPUT 链;
  2. 如果是防火墙本机发送数据包到外部主机,数据将会经过 OUTPUT 链与 POSTROUTING 链;
  3. 如果防火墙作为路由负责转发数据,则数据将经过 PREROUTING 链、FORWARD 链以及 POSTROUTING 链。

iptables语法格式

iptables 命令的基本语法格式如下:

iptables [-t table] COMMAND [chain] CRETIRIA -j ACTION 

各参数的含义为:

  • -t:指定需要维护的防火墙规则表 filter、nat、mangle或raw。在不使用 -t 时则默认使用 filter 表
  • COMMAND:子命令,定义对规则的管理。
  • chain:指明链表
  • CRETIRIA:匹配参数。cretiria
  • ACTION:触发动作。action

iptables 命令常用的选项及各自的功能:

选 项 功 能 -A 添加防火墙规则 -D 删除防火墙规则 -I 插入防火墙规则 -F 清空防火墙规则 -L 列出添加防火墙规则 -R 替换防火墙规则 -Z 清空防火墙数据表统计信息 -P 设置链默认规则 

iptables 命令常用匹配参数及各自的功能:

参 数 功 能 [!]-p 匹配协议,! 表示取反 [!]-s 匹配源地址 [!]-d 匹配目标地址 [!]-i 匹配入站网卡接口 [!]-o 匹配出站网卡接口 [!]--sport 匹配源端口 [!]--dport 匹配目标端口 [!]--src-range 匹配源地址范围 [!]--dst-range 匹配目标地址范围 [!]--limit 四配数据表速率 [!]--mac-source 匹配源MAC地址 [!]--sports 匹配源端口 [!]--dports 匹配目标端口 [!]--stste 匹配状态(INVALID、ESTABLISHED、NEW、RELATED) [!]--string 匹配应用层字串 

iptables 命令触发动作及各自的功能:

触发动作 功 能 ACCEPT 允许数据包通过 DROP 丢弃数据包 REJECT 拒绝数据包通过 LOG 将数据包信息记录 syslog 曰志 DNAT 目标地址转换 SNAT 源地址转换 MASQUERADE 地址欺骗 REDIRECT 重定向 
规则的查看与清除
iptables -nvL 

各参数的含义为:

  • -L 表示查看当前表的所有规则,默认查看的是 filter 表,如果要查看 nat 表,可以加上 -t nat 参数。
  • -n 表示不对 IP 地址进行反查,加上这个参数显示速度将会加快。
  • -v 表示输出详细信息,包含通过该规则的数据包数量、总字节数以及相应的网络接口。
iptables -A INPUT -s 192.168.1.5 -j DROP iptables -nL --line-number 

image.png
修改规则
在修改规则时需要使用-R参数。
【例 4】把添加在第1 行规则的 DROP 修改为 ACCEPT。首先需要使用 su 命令,切换当前用户到 root 用户,然后在终端页面输入如下命令:


iptables -R INPUT 1 -s 192.168.1.5 -j ACCEPT iptables -nL --line-number 

image.png
对比发现,第 1 行规则的 target 已修改为 ACCEPT。
删除规则
删除规则有两种方法,但都必须使用 -D 参数。
【例 5】删除添加的第 1 行的规则。首先需要使用su命令,切换当前用户到 root 用户,然后在终端页面输入如下命令:



iptables -D INPUT 1 -s 192.168.1.5 -j ACCEPT 或 iptables -D INPUT 1 

image.png
已经删除第一行的规则
注意:有时需要删除的规则较长,删除时需要写一大串的代码,这样比较容易写错,这时可以先使用 -line-number 找出该条规则的行号,再通过行号删除规则。



防火墙的备份与还原
保存在默认文件夹中(保存防火墙规则):iptables-save > /etc/sysconfig/iptables 保存在其他位置(备份防火墙规则):iptables-save > 文件名称 
iptables-save -t nat 

image.png
“-t表名”:表示列出某一个表。
iptables-restore命令
iptables-restore 命令可以批量导入Linux防火墙规则,同时也需要结合重定向输入来指定备份文件的位置。命令如下:


iptables-restore < 文件名称 
iptables-restore < test iptables -t nat -nvL 

image.png

ip rule,ip route,iptables 三者之间的关系

iptables:iptables其实不是真正的防火墙,我们可以把它理解成一个客户端代理,用户通过iptables这个代理,将用户的安全设定执行到对应的”安全框架”中,这个”安全框架”才是真正的防火墙,这个框架的名字叫netfilter。
网络相关指令_ARP表,Route表,Mac表
注:图中 “路由判断” 就是使用ip rule,ip route设置的规则,其中ip route配置的路由表服务于ip rule配置的规则。
以一例子来说明:公司内网要求192.168.0.100 以内的使用 10.0.0.1 网关上网 (电信),其他IP使用 20.0.0.1 (网通)上网。


  1. 首先要在网关服务器上添加一个默认路由,当然这个指向是绝大多数的IP的出口网关:ip route add default via 20.0.0.1
  2. 之后通过 ip route 添加一个路由表:ip route add table 3 via 10.0.0.1 dev ethX (ethx 是 10.0.0.1 所在的网卡, 3 是路由表的编号)
  3. 之后添加 ip rule 规则:ip rule add fwmark 3 table 3 (fwmark 3 是标记,table 3 是路由表3 上边。 意思就是凡事标记了 3 的数据使用 table3 路由表)
  4. 之后使用 iptables 给相应的数据打上标记:iptables -A PREROUTING -t mangle -i eth0 -s 192.168.0.1 – 192.168.0.100 -j MARK –set-mark 3
iptables -t mangle -A FORWARD -i eth3 -p tcp --dport 80 -j MARK --set-mark 1 // eth3输入的HTTP协议数据,标记为 mark 1 iptables -t mangle -A FORWARD -i eth3 -p tcp --dport 25 -j MARK --set-mark 2 // eth3 输入的SMTP协议数据,标记为 mark 2 iptables -t mangle -A FORWARD -i eth3 -p tcp --dport 110 -j MARK --set-mark 2 // eth3 输入的POP协议数据,标记为 mark 2 iptables -t mangle -A FORWARD -i eth3 -j MARK --set-mark 3 // eth3 输入的其他数据,标记为 mark 3 ip rule add fwmark 1 table 1 // fwmark 1 的数据,使用 table 1 ip rule add fwmark 2 table 2 ip rule add fwmark 3 table 3 

ip link——管理和查看网络接口

ip link set DEVICE { 
     up | down | arp { 
     on | off } | name NEWNAME | address LLADDR } 

举例:

  1. 控制 eth1网卡
# 停用 eth1网卡: ip link set eth1 down # 启用 eth1网卡: ip link set eth1 up 等价于: ifconfig eth1 down 或 ifconfig eth1 up 
  1. 查看所有的网络链接——ip link show
ip link show 语法格式: ip [ -s | -h | -d ] link show [dev DEV] 选项说明: -s[tatistics]:将显示各网络接口上的流量统计信息; -h[uman-readable]:以人类可读的方式显式,即单位转换; -d[etails]:显示详细信息 (选项说明可以通过ip help查看) 

image.png

ip -s -h -d link show dev eth0 #没有eth0 Device "eh0" does not exist. 

不过可以看一下别人的答案

ip -s -h -d link show dev eth0 5: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UNKNOWN mode DEFAULT group default qlen 1000 link/ether 00:01:02:a4:71:28 brd ff:ff:ff:ff:ff:ff promiscuity 0 numtxqueues 8 numrxqueues 8 RX: bytes packets errors dropped overrun mcast 160M 2.86M 0 0 0 0 TX: bytes packets errors dropped carrier collsns 192k 1.43k 0 0 0 0 

各字段含义说明:

BROADCAST:支持广播 MULTICAST:支持组播 UP:代表网卡开启状态;如果是关闭状态则不显示UP(重要) LOWER_UP: 有说法是代表网卡的网线被接上, 自己测试验证发现使用ifconfig eth0 down后,UP和LOWER_UP均不显示; 使用ifconfig eth0 up后,UP和LOWER_UP均显示(重要) mtu 1500:网络接口的最大传输单元(Maximum Transmission Unit ):1500字节。是包或帧的最大长度,一般以字节记。 qdisc:排队规则 state UNKNOWN : mode DEFAULT : group default : qlen 1000: link/ether 00:01:02:a4:71:28 表示物理网卡地址 brd ff:ff:ff:ff:ff:ff promiscuity 0 numtxqueues 8 numrxqueues 8 
ip -s -h -d link show dev can0 3: can0: <NOARP,UP,LOWER_UP,ECHO> mtu 16 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 10 link/can promiscuity 0 can state ERROR-ACTIVE restart-ms 100 bitrate  sample-point 0.800 tq 400 prop-seg 3 phase-seg1 4 phase-seg2 2 sjw 1 mcp251x: tseg1 3..16 tseg2 2..8 sjw 1..4 brp 1..64 brp-inc 1 clock  re-started bus-errors arbit-lost error-warn error-pass bus-off 0 0 0 0 0 0 numtxqueues 1 numrxqueues 1 RX: bytes packets errors dropped overrun mcast 21.6M 2.71M 1 0 1 0 TX: bytes packets errors dropped carrier collsns 0 0 0 0 0 0 

各字段含义说明:

NOARP:没有arp协议 ECHO:Echo发送的数据包 can state ERROR-ACTIVE restart-ms 100: 一般情况,正常的时候,每个节点大多数时间出于CAN_STATE_ERROR_ACTIVE这个状态,也就是错误主动状态。别看这个状态名字叫错误,但是实际上就 是对应的普通状态。标示这个节点检测到错误,会发出主动错误标示。 随着问题的增多,节点逐渐会升级到CAN_STATE_ERROR_WARNING状态。但是这个状态并没有固定的硬件标示,实际上是一个软件层面的预警。也就是 说,对于CAN_STATE_ERROR_ACTIVE和CAN_STATE_ERROR_WARNING而言,这个节点的任何逻辑行为(包括软硬件)都不会有什么区别。 随着问题的继续增多,节点会升级到CAN_STATE_ERROR_PASSIVE状态。在这个状态下,节点的硬件行为会改变,收到错误的时候,发送的是被动错误标 示。 如果此时问题还会继续,则节点会进入CAN_STATE_BUS_OFF状态。这个时候只有检测到128个连续的11个隐性位才能回到CAN_STATE_ERROR_ACTIVE。(参考文献8) 如果使用ip link set can0 down关闭can设备,can state显示为: STOPPED restart-ms 100:自动重启的延时时间。出现太多错误时,设备可能进入总线关闭状态,给canrestart-ms 设置一个非零值,可以开启总线关闭自动恢复功能, 设置时需要先关闭can设备,如: ip link set can0 down ip link set can0 type can bitrate  loopback on ip link set can0 type can restart-ms 200 ip link set can0 up bitrate  sample-point 0.800 波特率: sample-point:采样点 tq 400 prop-seg 3 phase-seg1 4 phase-seg2 2 sjw 1 mcp251x: tseg1 3..16 tseg2 2..8 sjw 1..4 brp 1..64 brp-inc 1 re-started bus-errors arbit-lost error-warn error-pass bus-off 重启次数、总线错误、仲裁丢失错误、错误主动(error-warning)、错误被动(error-passive)、总线关闭。接收的过载错误在统计信息的"overrun"域下面列出。 TX :将套接字缓冲区的CAN帧发送到CAN控制器;RX :从CAN控制器的CAN帧读取到套接字缓冲区。 

还是看自己本地的吧

ip -s -h -d link show dev lo 

image.png
补充:
(1)除了ip link set 和ip link show,ip link还有其他选项,可以通过ip link help查看;
(2)ip命令除了ip link还有其他选项,可以通过ip help查看;
总结了指令参数的含义



IFF_ALLMULTI Receive all multicast packets. 接收所有多播数据包。 IFF_AUTOMEDIA Auto media selection active. 自动媒体选择激活。 IFF_BROADCAST Valid broadcast address set. 有效的广播地址集。 IFF_DEBUG Internal debugging flag. 内部调试标志。 IFF_DORMANT Driver signals dormant (since Linux 2.6.17) 驱动程序信号休眠(从Linux 2.6.17开始) IFF_DYNAMIC The addresses are lost when the interface goes down. 当接口关闭时,地址将丢失。 IFF_ECHO Echo sent packets (since Linux 2.6.25) Echo发送的数据包(从Linux 2.6.25开始) IFF_LOOPBACK Interface is a loopback interface. 接口是一个环回接口。 IFF_LOWER_UP Driver signals L1 up (since Linux 2.6.17) 驱动程序信号L1启动(从Linux 2.6.17开始) IFF_MASTER Master of a load balancing bundle. 负载平衡捆绑包的主控程序。。 IFF_MULTICAST Supports multicast 支持多播 IFF_NOARP No arp protocol, L2 destination address not set. 没有arp协议,未设置二级目标地址。 IFF_NOTRAILERS Avoid use of trailers. IFF_POINTOPOINT Interface is a point-to-point link. IFF_PORTSEL Is able to select media type via ifmap. IFF_PROMISC Interface is in promiscuous mode. IFF_RUNNING Resources allocated. IFF_SLAVE Slave of a load balancing bundle. IFF_UP Interface is running. 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/117911.html

(0)
上一篇 2025-11-17 11:00
下一篇 2025-11-17 11:15

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信