ip link 子命令

使用 ip 链接对象来显示和管理系统上网络接口设备的状态。
下面是 ip link 子命令的一些常见用法。

1.检查网络设备状态

以下示例显示了所有活动设备的状态。
show 参数是默认值。
请注意,输出类似于 ip addr 命令的输出,但没有 IP 地址信息。

# ip link show

2.打开/关闭网络接口

使用 set 参数更改设备属性。
up 和 down 参数改变设备的状态。
以下示例关闭 eth0 接口,然后重新打开。
show 参数显示 set 参数的结果。

# ip link set eth0 down
# ip link show eth0
2: eth0: [BROADCAST,MULTICAST] mtu 9001 qdisc pfifo_fast state DOWN mode DEFAULT qlen 1000
# ip link set eth0 up
# ip link show eth0
2: eth0: [BROADCAST,MULTICAST,UP,LOWER_UP] mtu 9001 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 06:e6:41:84:10:48 brd ff:ff:ff:ff:ff:ff

3.更改MTU属性

以下示例使用 set 参数将 MTU 属性更改为 1000:

# ip link set eth0 mtu 1000
# ip link show eth0
2: eth0: [BROADCAST,MULTICAST,UP,LOWER_UP] mtu 1000 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 06:e6:41:84:10:48 brd ff:ff:ff:ff:ff:ff

ip 路由子命令

ip route 实用程序显示或者操作 IP 路由表。
它的主要用途是通过网络接口建立到特定主机或者网络的静态路由。

1. 显示路由表

使用 ip route 命令显示路由表。
例子:

# ip route
default via 172.31.112.1 dev eth0 proto static metric 100 
172.31.112.0/20 dev eth0 proto kernel scope link src 172.31.124.62 metric 100

我们还可以使用旧的“netstat -r”命令来显示路由表。

# netstat -r
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
default         gateway         0.0.0.0         UG        0 0          0 eth0
172.31.112.0    0.0.0.0         255.255.240.0   U         0 0          0 eth0

2. 添加路由

使用 ip route add 命令添加静态路由。
下面的示例添加了一个默认路由,如果没有其他路由匹配,则使用该路由。
所有使用此路由的网络包都通过 172.31.112.1 IP 地址“网关”:

# ip route add default via 172.31.112.1 dev eth0 proto static

以下示例通过特定网络接口添加到主机地址的静态路由。

# ip route add 192.0.2.1 via 10.150.36.2 dev eth0

3. 删除路由

使用 ip route delete 命令从路由表中删除一个条目,例如:

# ip route delete default via 172.31.112.1
# ip route delete 192.0.2.1

4. 配置永久静态路由

我们使用 ip route 对路由表所做的任何更改在系统重新启动后都不会保留。
要使静态路由永久化,请为每个接口配置它们。
静态路由配置存储在 /etc/sysconfig/network-scripts/route-interface 文件中。
例如,eth0 接口的静态路由将存储在 /etc/sysconfig/network-scripts/route-eth0 文件中。

路由接口文件有两种格式:

  • IP 命令参数
  • 网络/网络掩码指令

IP 命令参数格式使用以下语法:

x.x.x.x/x via x.x.x.x dev interface

使用术语 default 创建默认网关,例如:

default via x.x.x.x dev interface

以下示例通过 eth0 接口 (10.10.10.1) 创建到 192.168.2.0/24 子网的静态路由:

# cat /etc/sysconfig/network-scripts/route-eth0 198.168.2.0/24 via 10.10.10.1 dev eth0

我们还可以对路由接口文件使用网络/网络掩码指令格式。
格式如下:

ADDRESS0=X.X.X.X NETMASK0=X.X.X.X GATEWAY0=X.X.X.X

以下示例显示使用 IP 命令参数来定义相同的条目:

ADDRESS0=198.168.2.0
NETMASK0=255.255.255.0
GATEWAY0=10.10.10.1

从 0 开始(如图所示),每增加一个静态路由就递增 1.

更多: zhilu jiaocheng

用于管理 ARP 表的 ip neigh 子命令

ARP 将 IP 地址解析为 MAC 地址。
MAC地址是一个48位的物理硬件地址,烧入网络接口卡(NIC)。
网络应用程序使用 IP 地址与另一台设备通信,但需要 MAC 地址来确保网络数据包的传递。

使用“ip neigh”子命令显示 ARP 表、删除 ARP 条目或者向表中添加条目。
ip neigh 子命令替换了已弃用的 arp 命令。
ARP 表也有另一个名称,即 IP 邻居表。

ip neigh object 命令总结如下:

子命令描述和任务
ip neigh add添加新的邻居条目。
ip neigh change更改现有条目。
ip neigh replace添加新条目或者更改现有条目。
ip neigh delete删除邻居表项。
ip neigh show列出邻居条目。
ip neigh flush刷新邻居表。

1.显示ARP表

以下示例显示 ARP 表。
show 命令是默认的。

# ip neigh
172.31.112.1 dev eth0 lladdr 06:75:25:15:b5:ba REACHABLE

2.清除所有ARP表项

以下示例以详细程度清除 ARP 表中的所有条目:

# ip -s -s neigh flush all
172.31.112.1 dev eth0 lladdr 06:75:25:15:b5:ba ref 1 used 33/0/29 probes 1 REACHABLE
*** Round 1, deleting 1 entries ***
*** Flush is complete after 1 round ***

3. 仅删除特定接口的 ARP 表项

以下示例删除设备 eth0 上的 ARP 表中的条目:

# ip neigh flush dev eth0
在 Linux 中使用ip 命令进行管理网络示例

我们可以使用 ip 命令来显示接口状态、配置网络属性或者调试或者调整网络。
ip 命令替换了不推荐使用的 ifconfig 命令。
ip 实用程序的语法如下:

# ip [OPTIONS] OBJECT {COMMAND | help}

ip 命令提供了许多 OBJECT 参数,例如:

  • 链接:网络设备
  • 地址(或者地址):设备上的 IPv4 或者 IPv6 地址
  • 路由:路由表条目

它还为每个 OBJECT 提供了许多 COMMANDS,例如:

  • 添加、更改、删除、显示等

下面是 Linux 中几个最常用的 ip 命令示例。

ip addr 子命令

1. 显示当前网络配置

使用 ip addr 对象来显示和管理设备上的 IPv4 或者 IPv6 地址。
以下示例显示所有活动设备的 IP 状态。
show 命令是默认的。

# ip addr show

2. 为网络接口分配 IPv4 地址

以下示例使用 add 参数将 IPv4 地址 172.31.29.90/20 添加到 eth0 接口。
之后给出 show 参数以显示结果。
之后给出 show 参数以显示结果。
此示例假定接口已分配有 172.31.124.62/20。

# ip addr add 172.31.29.90/20 dev eth0
# ip addr show eth0
2: eth0: [BROADCAST,MULTICAST,UP,LOWER_UP] mtu 9001 qdisc pfifo_fast state UP qlen 1000
    link/ether 06:e6:41:84:10:48 brd ff:ff:ff:ff:ff:ff
    inet 172.31.124.62/20 brd 172.31.127.255 scope global dynamic eth0
       valid_lft 3311sec preferred_lft 3311sec
    inet 172.31.29.90/20 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::4e6:41ff:fe84:1048/64 scope link 
       valid_lft forever preferred_lft forever

3. 从接口中删除 IPv4 地址

使用 del 参数删除 IPv4 地址。
例子:

# ip addr del 172.31.29.90/20 dev eth0
# ip addr show eth0
2: eth0: [BROADCAST,MULTICAST,UP,LOWER_UP] mtu 9001 qdisc pfifo_fast state UP qlen 1000
    link/ether 06:e6:41:84:10:48 brd ff:ff:ff:ff:ff:ff
    inet 172.31.124.62/20 brd 172.31.127.255 scope global dynamic eth0
       valid_lft 3248sec preferred_lft 3248sec
    inet6 fe80::4e6:41ff:fe84:1048/64 scope link 
       valid_lft forever preferred_lft forever

4. 刷新分配给接口的所有 IPv4 地址

使用flush 参数删除分配给接口的所有IPv4 地址。
例子:

# ip addr flush dev eth0

注意:我们使用 ip 为网络接口配置的任何设置在系统重新启动后都不会保留。
要使更改永久化,请在 /etc/sysconfig/network-scripts/ifcfg-[interface] 文件中设置属性。

日期:2020-09-17 00:14:33 来源:oir作者:oir