Linux网络排查
目录
一、ip命令介绍
1.1 ip命令简介
IP命令是一个非常强大的命令行工具,用于管理与配置网络接口和路由表。
1.2 ip命令的由来
IP命令的由来可以追溯到Unix操作系统,IP命令是一个网络工具,用于配置和管理网络接口和路由表。它是从早期的Unix系统中的ifconfig命令发展而来的。ifconfig命令可以用于配置和管理网络接口,但是它的功能有限,不能管理路由表,因此IP命令应运而生。随着网络技术的不断发展,IP命令也不断进行更新和扩展,成为了一个功能强大的网络工具。现在,在许多Linux和Unix系统中,IP命令已经取代了ifconfig命令,成为管理网络接口和路由表的主要工具。
二、ip命令使用帮助
2.1 ip命令的help帮助信息
2.2 ip命令对象介绍
where OBJECT := { link | address | addrlabel | route | rule | neigh | ntable | tunnel | tuntap | maddress | mroute | mrule | monitor | xfrm | netns | l2tp | fou | macsec | tcp_metrics | token | netconf | ila | vrf }
对象参数释义:
对象 | 释义 |
link | 网络设备 |
address | 设备的协议地址(IP或IPv6) |
addrlabel | 用于协议地址选择的标签配置 |
route | 路由表项 |
rule | 路由策略数据库中的规则 |
neighbour | 管理ARP或NDISC缓存项 |
ntable | 管理邻居cache的操作 |
tunnel | IP隧道 |
tuntap | 管理TUN/TAP设备 |
maddress | 多播地址 |
mroute | 组播路由缓存项 |
mrule | 组播路由策略数据库中的规则 |
monitor | 监控netlink消息 |
xfrm | 管理IPSec策略 |
l2tp | 隧道以太网over IP (L2TPv3) |
2.3 ip命令选项介绍
OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] | -h[uman-readable] | -iec | -f[amily] { inet | inet6 | ipx | dnet | mpls | bridge | link } | -4 | -6 | -I | -D | -B | -0 | -l[oops] { maximum-addr-flush-attempts } | -br[ief] | -o[neline] | -t[imestamp] | -ts[hort] | -b[atch] [filename] | -rc[vbuf] [size] | -n[etns] name | -a[ll] | -c[olor]} -V:显示指令版本信息; -s:输出更详细的信息; d: 输出更详细的信息 -r:使用系统的名称解析器来打印DNS名称而不是主机地址 -h:输出带有人类可读值的统计信息,后面跟着后缀 -f:强制使用指定的协议族; -4:指定使用的网络层协议是IPv4协议; -6:指定使用的网络层协议是IPv6协议; -0:输出信息每条记录输出一行,即使内容较多也不换行显示; -l: 指定“ip地址刷新”逻辑在放弃之前尝试的最大循环次数。默认值是10。零(0)表示循环,直到移除所有地址 -b: 从提供的文件或标准输入中读取命令并调用它们。第一次失败将导致ip终止 -o: 在单行上输出每个记录,用'\'字符替换换行。这在你需要的时候很方便以wc(1)或grep(1)计数输出记录 -rc: 设置netlink套接字接收缓冲区大小,默认为1MB -n: 将ip切换到指定的网络命名空间NETNS
三、查看网络信息
3.1 显示当前网络接口信息
ip addr show #简写 ip a
3.2 显示网络设备运行状态
使用以下命令,显示网络设备运行状态。 ip link list
3.3 显示详细设备信息
ip -stats link list # 简写 ip -s l l
3.4 查看路由表
ip route show ip route list
3.5 查看ARP缓存
ip neighbour show ip neighbour list
3.5 正则匹配截取信息
# 获取主机所有网络接口 ip link | grep -E '^[0-9]' | awk -F: '{print $2}' # 提取本地IP地址 ip addr show | grep 'inet ' | awk '{print $2}' | awk -F/ '{print $1}'
四、设置网卡IP地址
4.1 启用或停止网卡
使用以下命令,启用或停止网卡。
ip link set <interface> up/down
4.2 新增网卡地址
使用以下命令,给ens192网卡,新增ip地址。
ip link add link ens192 br0 type vlan id 2
- "ip link add link":添加一个新的网络接口;
- "ens192":指定要添加网络接口的物理接口;
- "br0":新添加的网络接口名称;
- "type vlan":指定创建一个VLAN类型的网络接口;
- "id 2":VLAN ID为 2;
接下来,我们可以配置新添加的网络接口,可以为该接口指定IP地址、子网掩码等等。
ip addr add 192.168.2.19/24 broadcast 192.168.2.255 dev br0 ip addr del 192.168.2.19/24 broadcast 192.168.2.255 dev br0
- "ip addr add":为指定设备添加IP地址
- "192.168.2.99/24":指定IP地址和
- "dev br0":指定为哪个网络接口添加IP地址
ip link 是 Linux 系统中的一个命令,用于显示或操纵网络接口的链路层属性。链路层也被称为第二层,在这个层级上,数据被封装成帧(frame)进行发送和接收。
基本用法:ip link 的基本用法可以分为两类,查看和设置。
查看网络接口信息:你可以直接输入 ip link 或者 ip link show 来查看系统中所有网络接口的链路层信息。
设置网络接口属性:ip link set 命令可以用于更改网络接口的链路层属性,如改变接口状态(up/down)、改变接口的 MTU 值等。
应用场景:
当你需要查看系统中的网络接口信息,如接口名称、接口状态(UP 或 DOWN)、MTU(Maximum Transmission Unit,最大传输单元)值,MAC 地址等信息时,可以使用 ip link 命令。
当你需要更改网络接口的链路层属性,如开启或关闭一个网络接口(up/down)、改变接口的 MTU 值、改变接口的 MAC 地址等,也可以使用 ip link 命令。
你也可以使用 ip link 命令来创建或删除虚拟网络接口,如虚拟网桥、虚拟以太网设备(veth)、虚拟隧道等。
因为它涉及到底层的网络设置,所以在使用时需要谨慎,特别是在生产环境中。当你对某个设定不确定时,最好先在测试环境中试验,确认无误后再应用到生产环境中。
4.3 设置默认网关
使用以下命令设置默认网卡地址,<gateway_ip>为网关地址,为网络接口。
ip route add default via <gateway_ip> dev <interface> # 删除 ip route del default via <gateway_ip> dev <interface>
4.4 删除新增网卡的IP地址
使用以下命令,删除新增网卡IP地址。
ip addr del 192.168.2.19/24 broadcast 192.168.2.255 dev br0
4.5 删除默认网关
使用以下命令,删除默认网关。
ip route del default
五、管理路由表
5.1 新增路由表
使用以下命令,新增路由表。
ip route add 192.168.80.0/24 via 192.168.2.254 dev br0
查看路由表信息:
5.2 删除路由表条目
使用以下命令,删除路由表条目。
ip route del 192.168.80.0/24 via 192.168.2.254 dev br0
5.3 永久设置静态路由方法
进入网卡目录中,在网卡配置文件中,新建及编辑文件 route-ens192
cd /etc/sysconfig/network-scripts/ vim route-eth0 172.16.10.0/24 via 192.168.3.254
重启network服务
service network restart
查看路由表
ip route
六、ip命令总结
1. ip命令是Linux下管理网络接口的主要工具之一,可以用于设置IP地址、路由表、网络接口等。 2. ip命令的常见操作包括查看网络接口信息、设置IP地址、设置网络接口等。 3. 查看网络接口信息的操作: - ip addr:显示所有网络接口的详细信息,包括接口名称、MAC地址、IPv4地址、IPv6地址等。 - ip link:显示所有网络接口的名称和状态信息。 4. 设置IP地址的操作: - ip addr add IP地址/掩码 dev 网络接口名:给指定网络接口添加IP地址。 - ip addr del IP地址/掩码 dev 网络接口名:删除指定网络接口的IP地址。 - ip -4 addr add IP地址/掩码 dev 网络接口名:给指定网络接口添加IPv4地址。 - ip -6 addr add IPv6地址/掩码 dev 网络接口名:给指定网络接口添加IPv6地址。 5. 设置网络接口的操作: - ip link set 网络接口名 up/down:设置指定网络接口的状态为up或down。 - ip link set 网络接口名 name 新名称:给指定网络接口修改名称。 - ip link set 网络接口名 mtu MTU值:设置指定网络接口的最大传输单元大小。 - ip route add 目标地址/掩码 via 网关 dev 网络接口名:添加路由规则,指定目标地址走指定的网关。 6. 其他常用操作: - ip neigh:显示ARP缓存表。 - ip route:显示和管理路由表。 - ip rule:显示和管理路由策略。
参考: