🐧使用指北-021-ip命令[译]

type
status
date
slug
summary
tags
category
icon
password

目的

使用此命令可以显示和配置主机接口的网络参数。

语法

了解 ip 命令 对象语法

OBJECTS 可以是以下任一形式,并且可以完整或缩写形式编写:
对象
缩写形式
目的
link
l
网络设备。
address
a addr
设备上的协议(IP 或 IPv6)地址。
addrlabel
addrl
协议地址选择的标签配置。
neighbour
n neigh
ARP 或 NDISC 缓存条目。
route
r
路由表条目。
rule
ru
路由策略数据库中的规则。
maddress
m maddr
多播地址。
mroute
mr
多播路由缓存条目。
tunnel
t
通过 IP 建立隧道。
xfrm
x
IPsec 协议框架。
若要获取有关每个对象的信息,请使用 help 命令,如下所示:
警告:必须谨慎执行以下命令。如果出错,您将失去与服务器的连接。在处理基于 ssh 的远程会话时必须特别小心。

ip 命令示例

不要被 ip 命令语法吓倒。让我们通过示例快速开始。

显示有关所有网络接口的信息

键入以下命令以列出并显示所有网络接口上关联的所有 IP 地址:
输入示例如下:
notion image
您可以使用以下语法在 IPv4 和 IPv6 之间进行选择:
还可以指定和列出特定的接口 TCP/IP 详细信息:
notion image

将 IP 地址分配给接口

添加 IPv4/IPv6 地址的语法如下:
要将 192.168.1.200/255.255.255.0 分配给 eth0,请输入:

在接口上添加广播地址

默认情况下,除非显式请求,否则 ip 命令不会设置任何广播地址。因此,设置广播地址的语法如下:
可以通过使用 “+” 或 “-” 而不是广播地址来设置/重置主机网络 prex 位。在此示例中,将地址 192.168.1.50 和网络掩码 255.255.255.0 (/24) 与标准广播和标签"eth0Home"添加到接口 eth0:
您可以设置环回设备 lo 的环回地址,如下所示:

从接口中删除 IP 地址

语法如下,用于删除 IPv4/IPv6 地址:
要从 eth0 中删除 192.168.1.200/24,请输入:

从接口刷新 IP 地址

您可以逐个删除或远程访问 IPv4/IPv6 地址,如上所述。但是,flush 命令可以根据给定条件删除刷新 IP 地址。例如,可以使用以下命令从专用网络 192.168.2.0/24 中删除所有 IP 地址:
示例输出:
您可以在所有 ppp(点对点)接口上移除 IP 地址:
以下是所有以太网接口一个通用示例:

如何将设备的状态更改为 "up" 或 "down"?

语法如下:
要使设备 eth1 的状态关闭,请输入:
要使设备 eth1 的状态变为 up,请输入:

如何更改设备的 txqueuelen?

您可以使用 ifconfig 命令或 ip 命令设置设备的传输队列的长度,如下所示:
在此示例中,将 eth0 的默认 txqueuelen 从 1000 更改为 10000:

如何更改设备的 MTU?

对于千兆位网络,您可以设置最大传输单位 (MTU)大小(巨型帧),以获得更好的网络性能。语法为:
要将设备 eth0 的 MTU 更改为 9000,请输入:
示例输出:

显示 neighbour /arp 缓存

语法为:
示例输出(注意:我用字母屏蔽了一些数据):
最后一个字段显示此条目的" 邻居无法访问检测 "计算机的状态:
  1. STALE – 邻居是有效的,但可能已经无法访问,因此内核将尝试在第一次传输时检查它。
  1. DELAY – 数据包已发送到过时的邻居,内核正在等待确认。
  1. 可到达– 邻居是有效的,显然是可到达的。

添加新的 ARP 条目

语法为:
在此示例中,为设备 eth0 上的邻居 192.168.1.5 添加一个永久 ARP 条目:
其中,
neighbour state (nud)
意义
permanent
邻居条目永久有效,只能在管理上删除
noarp
邻居条目有效。不会尝试验证此条目,但可以在其生存期到期时将其删除。
stale
邻居条目有效但可疑。如果邻居状态有效且此命令未更改地址,则 ip 邻里输入的此选项不会更改相邻状态。
reachable
邻居条目在可访问性超时到期之前一直有效。

删除 ARP 条目

语法如下:
设备 eth1 上的邻居 192.168.1.5 的 ARP 条目失效或删除的语法如下。
更改状态,以便设备 eth1 上的邻居 192.168.1.100 访问:

刷新 ARP 条目

此 flush 或 f 命令通过指定某些条件来刷新 neighbour/arp 表。语法为:
在此示例中,刷新邻居/arp 表:

ip 路由:路由表管理命令

使用以下命令来管理或操作内核路由表。

显示路由表

显示路由表的内容:
示例输出:
192.168.1.0/24 的显示路由:
输出为:

添加新路由

语法为:

删除路由

删除默认网关的语法如下:
在此示例中,删除在上一小节中创建的路由:

如何在 Linux 上更改 MAC 地址

可以按如下方式更改 Linux 网络接口卡 (NIC) 的 MAC 地址:

配置颜色输出

我们可以通过传递以下选项使 ip 命令输出漂亮:-c
notion image
请注意,如果选项传递给 ip 命令,则忽略此标志。我们可以在Linux 上使用 alias 命令创建一个永久的 Bash 别名:-json

显示所有 Linux IP 地址

想要找出分配给所有接口的 IP 地址并仅显示 IP?尝试:
notion image

旧工具与新工具

已弃用的 Linux 命令及其替换备忘单:
旧命令(已弃用)
新建命令
ifconfig -a
ip a
ifconfig enp6s0 down
ip link set enp6s0 down
ifconfig enp6s0 up
ip link set enp6s0 up
ifconfig enp6s0 192.168.2.24
ip addr add 192.168.2.24/24 dev enp6s0
ifconfig enp6s0 netmask 255.255.255.0
ip addr add 192.168.1.1/24 dev enp6s0
ifconfig enp6s0 mtu 9000
ip link set enp6s0 mtu 9000
ifconfig enp6s0:0 192.168.2.25
ip addr add 192.168.2.25/24 dev enp6s0
netstat
ss
netstat -tulpn
ss -tulpn
netstat -neopa
ss -neopa
netstat -g
ip maddr
route
ip r
route add -net 192.168.2.0 netmask 255.255.255.0 dev enp6s0
ip route add 192.168.2.0/24 dev enp6s0
route add default gw 192.168.2.254
ip route add default via 192.168.2.254
arp -a
ip neigh
arp -v
ip -s neigh
arp -s 192.168.2.33 1:2:3:4:5:6
ip neigh add 192.168.3.33 lladdr 1:2:3:4:5:6 dev enp6s0
arp -i enp6s0 -d 192.168.2.254
ip neigh del 192.168.2.254 dev wlp7s0

总结

如果不记得,可以使用 man 或者 ip --help 查询。

原文地址

中年码农的困境log-001-我与计算机