通过12个实例掌握 Linux IP 命令

多年来,我们一直在使用 ifconfig 命令来执行网络相关的任务,例如检查网络接口或配置它们。但是 ifconfig 不再维护,在最新版本的 Linux 上已弃用。ifconfig 命令已替换为 IP 命令。

ip 命令有点类似于 ifconfig 命令,但它更强大,附加了更多的功能。ip 命令可以执行 ifconfig 命令无法执行的一些任务。

(1) 查看当前网络接口信息 ( LAN Cards )

查询网络接口的 IP 地址和子网等信息,使用如下命令

[linuxtechi@localhost]$ ip addr show
or
[linuxtechi@localhost]$ ip a s

如果我们想查看单个接口的相同信息,则使用如下命令

[linuxtechi@localhost]$ ip addr show enp0s3

(2) 启用和禁用网络接口 (or LAN card)

使用 ip 命令启用网络接口 (enp0s3),如下所示

[linuxtechi@localhost]$ sudo ip link set enp0s3 up

使用 ip 命令禁用网络接口 (enp0s3),如下所示

[linuxtechi@localhost]$ sudo ip link set enp0s3 down

(3) 配置接口的 IP 地址和广播地址

使用 IP 命令为接口分配 IP 地址,如下所示

[linuxtechi@localhost]$ sudo ip addr add 192.168.0.50/255.255.255.0 dev enp0s3

使用 IP 命令为接口设置广播地址,如下所示

[linuxtechi@localhost]$ sudo ip addr add broadcast 192.168.0.255 dev enp0s3

我们还可以设置标准广播地址和 IP 地址,如下所示

[linuxtechi@localhost]$ sudo ip addr add 192.168.0.10/24 brd + dev enp0s3

(4) 删除接口的 IP 地址

从接口中清除或删除已分配的 IP,运行如下命令

[linuxtechi@localhost]$ sudo ip addr del 192.168.0.10/24 dev enp0s3

(5) 为接口添加别名 (enp0s3)

要添加别名,即为一个接口分配多个 IP 地址,请执行以下命令

[linuxtechi@localhost]$ sudo ip addr add 192.168.0.20/24 dev enp0s3 label enp0s3:1

(6) 查看路由表和默认网关信息

查看路由表和默认网关信息,执行如下命令

[linuxtechi@localhost]$ ip route show

获取到达特定 ip 的路由信息,使用如下命令

[linuxtechi@localhost]$ sudo ip route get 192.168.0.1

(7) 添加静态路由

如果要改变报文的缺省路由,可以通过 IP 命令添加静态路由来实现。

如果要分配一个新的默认网关,执行如下命令

[linuxtechi@localhost]$ sudo ip route add default via 192.168.0.150/24

现在所有的网络数据包都将通过 192.168.0.150 传输,而不是旧的默认路由。

如果需要修改单个接口的缺省路由,执行如下命令

[linuxtechi@localhost]$ sudo ip route add 172.16.32.32 via 192.168.0.150/24 dev enp0s3

(8) 删除静态路由

删除或移除先前添加的默认路由,执行如下命令

[linuxtechi@localhost]$ sudo ip route del 192.168.0.150/24

注意: 使用上述命令对默认路由进行的更改只是暂时的,在系统重新启动后将丢失所有更改。为了持久性改变路由,我们需要修改 / 创建相关配置文件。

For RHEL / Centos

编辑 /etc/sysconfig/network-scripts/route-enp0s3 文件

[linuxtechi@localhost]$ sudo vi /etc/sysconfig/network-scripts/route-enp0s3

添加如下行,保存并退出文件

172.16.32.32 via 192.168.0.150/24 dev enp0s3

For Ubuntu / Debian

编辑 /etc/network/interfaces 文件

[linuxtechi@localhost]$ sudo vi /etc/network/interfaces

添加如下行,保存并退出文件

ip route add 172.16.32.32 via 192.168.0.150/24 dev enp0s3

(9) 查看所有 ARP 表项 (ip neigh)

ARP (Address Resolution Protocol) 用于将 IP 地址转换为MAC 地址,所有的 IP 及其对应的MAC地址信息存储在一个称为 ARP 缓存的表中。

要查看 ARP 缓存中的表项,即局域网中连接的设备的 MAC 地址,使用如下命令

[linuxtechi@localhost]$ ip neigh

要查看 arp 表项,使用如下命令

$ arp -a

(10) 修改 ARP 表项

删除 ARP 表项,使用如下命令

[linuxtechi@localhost]$ sudo ip neigh del 192.168.0.106 dev enp0s3

如果我们想添加一个新的条目到 ARP 缓存,使用如下命令

[linuxtechi@localhost]$ sudo ip neigh add 192.168.0.150 lladdr 33:1g:75:37:r3:84 dev enp0s3 nud perm

其中 nud 表示 neighbour state,它的值可以是:

  • perm – permanent & can only be removed by administrator,
  • noarp – entry is valid but can be removed after lifetime expires,
  • stale – entry is valid but suspicious,
  • reachable – entry is valid until timeout expires.

(11) 查看网络统计信息

我们还可以查看所有接口的网络统计信息,如传输的字节和数据包,错误或丢弃的数据包等。

[linuxtechi@localhost]$ ip -s link

(12) 查看帮助

如果要查看帮助,使用如下命令

[linuxtechi@localhost]$ ip --help

请记住 ip 命令对于 Linux 管理员来说是非常重要的命令,应该学习和掌握它,以便轻松地配置网络。到此为止,请提供您的建议并在下面的评论框中留下您的疑问。

我的开源项目

作者:鸠摩智首席音效师原文地址:https://segmentfault.com/a/1190000043386718

%s 个评论

要回复文章请先登录注册