多年来,我们一直在使用 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 管理员来说是非常重要的命令,应该学习和掌握它,以便轻松地配置网络。到此为止,请提供您的建议并在下面的评论框中留下您的疑问。