飞行日志
常用链接
韭菜搞钱
三省吾身
知行合一
🐧使用指北-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 地址:
输入示例如下:
您可以使用以下语法在 IPv4 和 IPv6 之间进行选择:
还可以指定和列出特定的接口 TCP/IP 详细信息:
将 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 缓存
语法为:
示例输出(注意:我用字母屏蔽了一些数据):
最后一个字段显示此条目的" 邻居无法访问检测 "计算机的状态:
- STALE – 邻居是有效的,但可能已经无法访问,因此内核将尝试在第一次传输时检查它。
- DELAY – 数据包已发送到过时的邻居,内核正在等待确认。
- 可到达– 邻居是有效的,显然是可到达的。
添加新的 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
请注意,如果选项传递给 ip 命令,则忽略此标志。我们可以在Linux 上使用 alias 命令创建一个永久的 Bash 别名:-json
显示所有 Linux IP 地址
想要找出分配给所有接口的 IP 地址并仅显示 IP?尝试:
旧工具与新工具
已弃用的 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 查询。