这 linux ip命令 类似于 ifconfig,但功能更强大,旨在替代它。 使用 ip,您可以通过一个命令执行多项网络管理任务。
在本教程中,我们将讨论 ‘ip’ 命令的 15 种最常见用法,让我们开始吧。
1. 使用 ip 命令识别可用的网络接口
如果您运行 ip link show 命令,它将列出您服务器上所有可用的网络接口。
$ ip link show
示例输出:
$ ip link show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 08:00:27:64:ab:7a brd ff:ff:ff:ff:ff:ff
2. 如何检查 IP 地址
要获取网络接口的深度信息,如 IP 地址、MAC 地址信息,请使用以下命令,如下所示。
$ ip addr show
输出将显示当前为所有网络接口分配的 IP 配置。
$ ip addr show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 08:00:27:64:ab:7a brd ff:ff:ff:ff:ff:ff inet 192.168.100.8/24 brd 192.168.100.255 scope global enp0s3 valid_lft forever preferred_lft forever inet 192.168.100.20/24 scope global secondary enp0s3:1 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fe64:ab7a/64 scope link valid_lft forever preferred_lft forever
3. 如何启用网络接口
带有接口名称 (enp0s3) 的“up”标志启用网络接口。 例如,以下命令将激活 enp0s3 网络接口。
$ ip link enp0s3 up Or $ sudo ip link set enp0s3 up
4. 如何禁用网络接口
带有接口名称的“down”标志禁用网络接口。 例如,以下命令将取消激活 enp0s3 网络接口。
$ ip link set enp0s3 down or $ sudo ip link set enp0s3 down
5.如何为特定接口分配IP地址
要为接口分配 IP 地址,我们将使用:
$ sudo ip addr add 192.168.100.4/255.255.255.0 dev enp0s3
我们还可以设置广播地址以使用“ip”命令进行接口。 默认没有设置广播地址,所以设置广播地址的命令是:
$ $ sudo ip addr add broadcast 192.168.100.255 dev enp0s3
我们还可以使用以下命令设置标准广播地址和 IP 地址,
$ sudo ip addr add 192.168.100.4/24 brd + dev enp0s3
如上例所示,我们也可以在’broadcast’上使用’brd’来设置广播IP地址。
6. 如何删除 IP 地址
以下命令将从给定的接口中删除分配的 IP 地址:
$ sudo ip addr del 192.168.100.4/24 dev enp0s3
7. 为接口添加别名
要添加别名,即为一个接口分配多个 IP,请执行以下命令:
$ sudo ip addr add 192.168.100.20/24 dev enp0s3 label enp0s3:1
示例输出:
$ ip addr show enp0s3 2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 08:00:27:64:ab:7a brd ff:ff:ff:ff:ff:ff inet 192.168.100.8/24 brd 192.168.100.255 scope global enp0s3 valid_lft forever preferred_lft forever inet 192.168.100.20/24 scope global secondary enp0s3:1 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fe64:ab7a/64 scope link valid_lft forever preferred_lft forever
8.检查路由表
检查路由信息向我们展示了数据包到达目的地的路线。 要检查网络路由信息,请执行以下命令:
$ ip route show
示例输出:
$ ip route show default via 192.168.100.1 dev enp0s3 proto static 192.168.100.0/24 dev enp0s3 proto kernel scope link src 192.168.100.8
假设现在您有一个 IP 地址,您需要知道数据包将采用的路由。 您可以使用路由选项如下:
$ ip route get 192.168.100.4
9. 添加静态路由
要更改默认路由,可以使用 ip 命令,如下所示:
$ sudo ip route add default via 192.168.100.150/24
所以现在所有网络数据包都将通过 192.168.100.150 而不是旧的默认路由。 要更改单个接口的默认路由并进一步更改路由,请执行
$ sudo ip route add 10.0.0.2 via 192.168.100.150/24 dev enp0s3
10. 删除静态路由
要删除分配的静态路由,只需键入以下命令。
$ sudo ip route del 10.0.0.2
11.如何添加默认网关
默认网关可以全局指定,也可以在特定于接口的配置文件中指定。 默认网关的优点是如果系统中存在多个 NIC。 您可以如以下命令所示动态添加默认网关。
sudo ip route add default via 192.168.100.1
12. 显示网络统计信息
ip 命令还可用于显示各种网络接口的统计信息。 为此,您可以使用带有选项 -s 的 ip 命令,然后指定网络设备。
$ ip -s link
当您需要获取有关特定网络接口的信息时,添加选项 ls 后跟网络接口的名称。 多次使用 -s 选项可为您提供有关该特定接口的更多信息。 这非常有用,尤其是在对网络连接中的错误进行故障排除时。
ip -s -s link ls enp0s3
13.检查ARP表项
地址解析协议 (ARP) 用于将 IP 地址转换为其相应的物理地址,通常称为 MAC 地址。 使用 ip 命令,您可以使用选项 neigh 或 neighbor 查看 LAN 中连接的设备的 MAC 地址。
$ ip neigh
14.监控netlink消息
也可以使用 ip 命令查看 netlink 消息。 监视器选项允许您查看网络设备的状态。 例如,您 LAN 上的计算机可以根据其状态分类为 REACHABLE 或 STALE。 该命令可以如下使用:
$ ip monitor all
示例输出:
$ ip monitor all [NEIGH]192.168.100.4 dev enp0s3 lladdr c8:f7:33:de:30:d7 REACHABLE [NEIGH]192.168.100.4 dev enp0s3 lladdr c8:f7:33:de:30:d7 STALE [NEIGH]192.168.100.4 dev enp0s3 lladdr c8:f7:33:de:30:d7 PROBE [NEIGH]192.168.100.4 dev enp0s3 lladdr c8:f7:33:de:30:d7 REACHABLE
15.查看帮助
如果您想查找上述示例中未列出的选项,则可以查找手册。
$ man ip
结论
命令 ip 是网络管理员和所有 Linux 用户必备的工具。 是时候离开 ifconfig 了,尤其是在编写脚本时。