侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux ip命令教程:如何管理网络接口和路由(附实例详解和注意事项)

Linux ip命令介绍

ip命令是Internet Protocol Command的缩写,它是一个用于管理网络接口和路由的命令,可以替代传统的ifconfig、route等命令。ip命令可以显示、添加、删除、修改网络接口的属性,以及显示、添加、删除、修改路由表、ARP表、邻居表等。ip命令的功能非常强大,可以用来配置复杂的网络环境,如VLAN、隧道、策略路由等。

Linux ip命令适用的Linux版本

ip命令是Linux内核的一部分,因此适用于所有的Linux发行版,包括CentOS、Ubuntu、Debian、Fedora等。不过,不同的Linux发行版可能会有不同的ip命令的版本和选项,因此在使用ip命令时,最好先查看ip命令的帮助信息或手册页,以了解具体的用法和参数。可以使用以下命令来查看ip命令的帮助信息或手册页:

[linux@bashcommandnotfound.cn ~]$ ip help
[linux@bashcommandnotfound.cn ~]$ man ip

Linux ip命令的基本语法

ip命令的基本语法格式如下:

ip [选项] 对象 操作 [参数]

其中,对象是指要操作的网络组件,如link、addr、route、neigh等;操作是指要对对象执行的动作,如show、add、del、change、replace等;参数是指要指定的对象的属性或条件,如name、address、dev、via、table等。

例如,要显示所有的网络接口的信息,可以使用以下命令:

ip link show

要添加一个名为eth0的网络接口,并指定其MAC地址为00:11:22:33:44:55,可以使用以下命令:

ip link add name eth0 address 00:11:22:33:44:55

要删除一个名为eth0的网络接口,可以使用以下命令:

ip link del eth0

Linux ip命令的常用选项或参数说明

ip命令的选项或参数有很多,这里只列举一些常用的,更多的选项或参数可以参考ip命令的帮助信息或手册页。以下是一些常用的选项或参数的说明:

选项或参数说明
-4使用IPv4协议
-6使用IPv6协议
-s显示更多的统计信息
-c使用彩色输出
-f指定地址族,如inet、inet6、link等
-o以单行的形式输出信息
-d显示详细的信息
-V显示ip命令的版本信息
-h显示ip命令的帮助信息
link操作网络接口
addr操作网络接口的地址
route操作路由表
neigh操作邻居表
show显示对象的信息
add添加对象
del删除对象
change修改对象
replace替换对象
name指定网络接口的名称
address指定网络接口的地址
dev指定网络接口的设备
via指定路由的下一跳地址
table指定路由表的编号或名称

Linux ip命令的实例

以下是一些使用ip命令的常见的实例,可以帮助您更好地理解和使用ip命令。

实例1:显示所有网络接口的信息

要显示所有网络接口的信息,可以使用以下命令:

[linux@bashcommandnotfound.cn ~]$ 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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 00:11:22:33:44:66 brd ff:ff:ff:ff:ff:ff

输出结果中,每一行表示一个网络接口的信息,包括接口的编号、名称、状态、类型、MAC地址等。

实例2:显示指定网络接口的信息

要显示指定网络接口的信息,可以使用以下命令:

[linux@bashcommandnotfound.cn ~]$ ip link show dev eth0

输出结果如下:

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff

输出结果中,只显示了eth0接口的信息。

实例3:显示所有网络接口的地址

要显示所有网络接口的地址,可以使用以下命令:

[linux@bashcommandnotfound.cn ~]$ 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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic eth0
       valid_lft 86399sec preferred_lft 86399sec
    inet6 fe80::211:22ff:fe33:4455/64 scope link 
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 00:11:22:33:44:66 brd ff:ff:ff:ff:ff:ff

输出结果中,每一行表示一个网络接口的地址信息,包括接口的类型、地址、掩码、广播地址、作用域等。

实例4:显示指定网络接口的地址

要显示指定网络接口的地址,可以使用以下命令:

[linux@bashcommandnotfound.cn ~]$ ip addr show dev eth0

输出结果如下:

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff
...

实例5:为网络接口添加IPv4地址

要为网络接口添加IPv4地址,可以使用以下命令:

[linux@bashcommandnotfound.cn ~]$ ip addr add 192.168.1.100/24 dev eth0

这个命令会为eth0接口添加一个192.168.1.100/24的IPv4地址,其中/24表示子网掩码为255.255.255.0。

实例6:为网络接口添加IPv6地址

要为网络接口添加IPv6地址,可以使用以下命令:

[linux@bashcommandnotfound.cn ~]$ ip addr add 2001:db8::1/64 dev eth0

这个命令会为eth0接口添加一个2001:db8::1/64的IPv6地址,其中/64表示子网掩码为ffff:ffff:ffff:ffff::。

实例7:删除网络接口的地址

要删除网络接口的地址,可以使用以下命令:

[linux@bashcommandnotfound.cn ~]$ ip addr del 192.168.1.100/24 dev eth0

这个命令会删除eth0接口的192.168.1.100/24的IPv4地址。

实例8:显示路由表的信息

要显示路由表的信息,可以使用以下命令:

[linux@bashcommandnotfound.cn ~]$ ip route show

输出结果如下:

default via 192.168.1.1 dev eth0 
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100 

输出结果中,每一行表示一条路由规则,包括目的地址、下一跳地址、出口接口、协议、作用域、源地址等。

实例9:显示指定目的地址的路由信息

要显示指定目的地址的路由信息,可以使用以下命令:

[linux@bashcommandnotfound.cn ~]$ ip route get 8.8.8.8

输出结果如下:

8.8.8.8 via 192.168.1.1 dev eth0 src 192.168.1.100 
    cache 

输出结果中,显示了到达8.8.8.8的最佳路由,包括下一跳地址、出口接口、源地址等。

实例10:添加一条静态路由

要添加一条静态路由,可以使用以下命令:

[linux@bashcommandnotfound.cn ~]$ ip route add 10.0.0.0/8 via 192.168.1.2 dev eth0

这个命令会添加一条静态路由,表示到达10.0.0.0/8网段的数据包,需要通过192.168.1.2的网关,从eth0接口发送。

实例11:删除一条静态路由

要删除一条静态路由,可以使用以下命令:

[linux@bashcommandnotfound.cn ~]$ ip route del 10.0.0.0/8 via 192.168.1.2 dev eth0

这个命令会删除一条静态路由,表示不再使用192.168.1.2的网关,从eth0接口发送到达10.0.0.0/8网段的数据包。

实例12:显示ARP表的信息

要显示ARP表的信息,可以使用以下命令:

[linux@bashcommandnotfound.cn ~]$ ip neigh show

输出结果如下:

192.168.1.1 dev eth0 lladdr 00:aa:bb:cc:dd:ee REACHABLE
192.168.1.2 dev eth0 lladdr 00:aa:bb:cc:dd:ff STALE

输出结果中,每一行表示一条ARP记录,包括目的地址、出口接口、MAC地址、状态等。

实例13:添加一条ARP记录

要添加一条ARP记录,可以使用以下命令:

[linux@bashcommandnotfound.cn ~]$ ip neigh add 192.168.1.3 lladdr 00:aa:bb:cc:dd:11 dev eth0

这个命令会添加一条ARP记录,表示192.168.1.3的MAC地址为00:aa:bb:cc:dd:11,从eth0接口发送数据包。

实例14:删除一条ARP记录

要删除一条ARP记录,可以使用以下命令:

[linux@bashcommandnotfound.cn ~]$ ip neigh del 192.168.1.3 lladdr 00:aa:bb:cc:dd:11 dev eth0

这个命令会删除一条ARP记录,表示不再使用00:aa:bb:cc:dd:11的MAC地址,从eth0接口发送数据包到192.168.1.3。

实例15:刷新ARP表

要刷新ARP表,可以使用以下命令:

[linux@bashcommandnotfound.cn ~]$ ip neigh flush dev eth0

这个命令会刷新eth0接口的所有ARP记录,表示需要重新解析目的地址的MAC地址。

Linux ip命令的注意事项

在使用ip命令时,有以下几点需要注意:

  • ip命令需要root权限或sudo权限才能执行,否则会提示Permission denied。
  • ip命令的操作和参数可能会因为Linux内核的版本和发行版的不同而有所差异,因此在使用ip命令时,最好先查看ip命令的帮助信息或手册页,以了解具体的用法和参数。
  • ip命令的操作和参数可能会影响网络的正常通信,因此在使用ip命令时,最好先备份原有的网络配置,以便在出现问题时恢复。
  • 如果在执行ip命令时,提示bash: ip: command not found,表示系统没有安装ip命令,需要先安装iproute2软件包,可以使用以下命令来安装:
# CentOS 7
[linux@bashcommandnotfound.cn ~]$ sudo yum install iproute
# CentOS 8
[linux@bashcommandnotfound.cn ~]$ sudo dnf install iproute
# Ubuntu/Debian
[linux@bashcommandnotfound.cn ~]$ sudo apt-get install iproute2

Linux ip命令的相关命令

以下是一些与ip命令相关的命令,可以用来管理网络接口和路由的其他方面:

0

评论区