介绍
该
ip
命令是供系统和网络管理员使用的Linux网络工具。IP代表Internet协议,顾名思义,该工具用于配置网络接口。较旧的Linux发行版使用ifconfig 命令,其操作类似。但是
ifconfig
与ip
命令相比,它的功能范围有限。
如何使用 ip 命令
代码语言:javascript复制ip [OPTION] OBJECT {COMMAND | help}
- 1.
link
(l
) – 用于显示和修改网络接口。 - 2.
address
(addr/a
)——用于显示和修改协议地址(IP、IPv6)。 - 3.
route
(r
) – 用于显示和更改路由表。 - 4.
neigh
(n
) – 用于显示和操作邻居对象(ARP表)
还有许多其他可用的对象和命令。要查看完整列表,请在以下命令中键入:
ip help
要执行命令,你可以使用完整形式或缩写形式。例如,
ip link
和ip l
将给出相同的结果。配置网络接口时,你必须以root
或具有sudo权限的用户身份运行命令。警告:默认情况下,系统不会永久保留更改。重启Linux 服务器后,新修改的状态将丢失。有两种方法可以使你的调整永久化:
- 1.将命令添加到启动脚本或
- 2.编辑特定于发行版的配置文件。
管理和显示网络接口
你可以通过键入以下内容获取所有以下命令选项的列表以及更多内容:
link
ip link help
获取网络接口信息
- 要查看所有可用设备(已加载驱动程序)的链路层信息,请使用以下命令
ip link show
- 如果你希望它显示特定设备的信息,请输入以下内容:
ip link show dev [device]
- 要查看所有网络接口的统计信息详细信息,例如传输或丢弃的数据包,甚至错误,请使用:
ip -s link
- 你还可以通过以下方式查看单个网络接口的类似信息:
ip -s link ls [interface]
- 如果你需要更多详细信息
-s
,请在语法中添加另一个:
ip -s -s link ls [interface]
- 要查看仅正在运行的接口的列表,请使用:
ip link ls up
修改网络接口状态
- 如果要启动网络接口(在线),请使用以下命令:
ip link set [interface] up
- 通过输入以下命令禁用接口(离线)
ip link set [interface] down
- ip link 命令允许你修改传输队列、加速或减慢接口以反映你的需求和硬件可能性。
ip link set txqueuelen [number] dev [interface]
- 你可以设置 MTU(最大传输单元)来提高网络性能:
ip link set mtu [number] dev [interface]
- 通过键入以下内容查找所有链接命令选项:
ip link help
监控和管理 IP 地址
通过键入以下内容检查所有下面提到的
address
命令 和更多命令
ip addr help
监控 IP 地址
- 使用以下命令显示所有设备:
ip addr
- 要列出所有网络接口和关联的IP地址,请使用以下命令:
ip addr show
- 你还可以查看有关单个网络的信息:
ip addr show dev [interface]
- 要列出 IPv4 地址,请使用:
ip -4 addr
- 要列出 IPv6 地址,请键入:
ip -6 addr
如何在 Linux 中添加 IP 地址
- 使用以下命令将 IP 地址添加到接口:
ip addr add [ip_address] dev [interface]
- 注意:如果指定的接口不存在,输出将显示找不到设备[接口]消息。
- 如果你需要向接口添加广播地址,请使用以下命令:
ip addr add brd [ip_address] dev [interface]
- 从接口类型中删除 IP 地址:
ip addr del [ip_address] dev [interface]
管理和显示 IP 路由表
使用以下命令查看完整的命令列表:
ip route
ip route help
显示 IP 路由表
- 使用以下任一命令列出所有路由条目:
ip route
ip route list
- 使用上面的命令,输出会显示内核中的所有路由条目。如果你需要缩小搜索范围,请添加
SELECTOR
对象:
ip route list SELECTOR
注意: SELECTOR := [ root PREFIX ] [ match PREFIX ] [ exact PREFIX ] [ table TABLE_ID ] [ proto RTPROTO ] [ type TYPE ] [ scope SCOPE ]
- 要查看不同网络的路由,请使用以下语法:
ip route list [ip_address]
修改 IP 路由表
- 要在路由表中添加可在特定设备上访问的新条目,请键入以下命令:
ip route add [ip_address] dev [interface]
- 或者你可以通过键入以下内容通过网关添加新路由:
ip route add [ip_address] via [gatewayIP]
- 此外,该命令允许你通过添加
default
选项通过本地网关为所有地址添加路由:
ip route add default [ip_address] dev [device]
代码语言:javascript复制ip route add default [network/mask] via [gatewayIP]
- 要删除路由表中的现有条目,请使用以下命令:
ip route del [ip_address]
ip route del default
ip route del [ip_address] dev [interface]
显示和修改 IP 邻居条目
邻居条目将协议地址和链路层地址绑定在同一条链路下。组织成IPv4表,它们也称为 ARP(地址解析协议)表。有关所有
neigh
命令选项的完整列表,请使用:
ip neigh help
显示IP邻居条目
要显示邻居表,请使用以下命令:
ip neigh show
输出显示作为系统一部分的设备的 MAC 地址及其状态。设备的状态可以是:
REACHABLE
– 表示有效的、可访问的条目,直到超时到期PERMANENT
– 表示只有管理员才能删除的永久条目STALE
- 表示有效但无法访问的条目;为了检查它的状态,内核在第一次传输时检查它DELAY
- 表示内核仍在等待陈旧条目的验证
修改 IP 邻居条目
代码语言:javascript复制使用以下命令添加新表条目:
ip neigh add [ip_address] dev [interface]
代码语言:javascript复制或者,删除现有的ARP条目:
ip neigh del [ip_address] dev [interface]