Linux中的IP命令详解

华子目录

1.ip命令是什么

  • ip命令是一个非常强大的命令行工具,用于管理与配置网络接口和路由表

1.1ip命令的由来

  • ip命令是从早起的Unix系统中的ifconfig命令发展而来的。ifconfig命令可以用于配置和管理网络接口,但是他的功能有限不能管理路由器,因此ip命令应运而生。随着网络技术的不断发展,ip命令也不断进行更新和扩展,成为了一个功能强大的网络工具。现在,在许多Linux和Unix系统中,ip命令已经取代了ifconfig命令,成为管理网络接口和路由表的主要工具

1.2ip命令的安装包

  • ip命令来自iproute软件包
bash 复制代码
[root@server ~]# yum whatprovides ip
iproute-6.0.0-2.el9.x86_64 : Advanced IP routing and network device configuration tools
仓库        :base
匹配来源:
文件名    :/usr/sbin/ip
提供    : /sbin/ip

    
    
     AI生成项目
     bash
     
     

    
    
    
    
     
* 1

     
* 2

     
* 3

     
* 4

     
* 5

     
* 6

    

1.2ip选项(基本不用)

  • -V:显示指令版本信息
  • -s:输出更详细的信息
  • -f:强制使用指定的协议簇
  • -4:指定使用的网络层协议是ipv4协议
  • -6:指定使用的网络层协议是ipv6协议
  • -0:输出信息每条记录输出一行即使内容较多也不换行显示
  • -r:显示主机时,不使用ip地址,而使用主机的域名

2.查看网络信息

2.1显示全部网络接口信息

  • ip address show
bash 复制代码
[root@server ~]# ip address 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: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:9e:1d:25 brd ff:ff:ff:ff:ff:ff
    altname enp3s0
    inet 192.168.54.131/24 brd 192.168.54.255 scope global noprefixroute ens160
       valid_lft forever preferred_lft forever
    inet 172.25.254.130/24 scope global ens160
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe9e:1d25/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

    
    
     AI生成项目
     bash
     
     

    
    
    
    
     ![](https://csdnimg.cn/release/blogv2/dist/pc/img/runCode/icon-arrowwhite.png)
    
    
    
    
     
* 1

     
* 2

     
* 3

     
* 4

     
* 5

     
* 6

     
* 7

     
* 8

     
* 9

     
* 10

     
* 11

     
* 12

     
* 13

     
* 14

     
* 15

     
* 16

    

2.2显示单个网络接口信息

  • ip address show ens160
bash 复制代码
[root@server ~]# ip address show ens160
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:9e:1d:25 brd ff:ff:ff:ff:ff:ff
    altname enp3s0
    inet 192.168.54.131/24 brd 192.168.54.255 scope global noprefixroute ens160
       valid_lft forever preferred_lft forever
    inet 172.25.254.130/24 scope global ens160
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe9e:1d25/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

    
    
     AI生成项目
     bash
     
     

    
    
    
    
     ![](https://csdnimg.cn/release/blogv2/dist/pc/img/runCode/icon-arrowwhite.png)
    
    
    
    
     
* 1

     
* 2

     
* 3

     
* 4

     
* 5

     
* 6

     
* 7

     
* 8

     
* 9

     
* 10

    

2.3显示单个接口状态

  • ip link show ens160
bash 复制代码
[root@server ~]# nmcli networking 
disabled
[root@server ~]# ip link show ens160 
2: ens160: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:9e:1d:25 brd ff:ff:ff:ff:ff:ff
    altname enp3s0

    
    
     AI生成项目
     bash
     
     

    
    
    
    
     
* 1

     
* 2

     
* 3

     
* 4

     
* 5

     
* 6

    
bash 复制代码
[root@server ~]# nmcli networking 
enabled
[root@server ~]# ip link show ens160 
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:9e:1d:25 brd ff:ff:ff:ff:ff:ff
    altname enp3s0

    
    
     AI生成项目
     bash
     
     

    
    
    
    
     
* 1

     
* 2

     
* 3

     
* 4

     
* 5

     
* 6

    

2.4查看路由表

  • ip route show
bash 复制代码
[root@server ~]# ip route show
default via 192.168.54.2 dev ens160 proto static metric 100
172.25.254.0/24 dev ens160 proto kernel scope link src 172.25.254.130
192.168.54.0/24 dev ens160 proto kernel scope link src 192.168.54.131 metric 100

    
    
     AI生成项目
     bash
     
     

    
    
    
    
     
* 1

     
* 2

     
* 3

     
* 4

    

2.5查看arp缓存

  • ip neighbour show
bash 复制代码
[root@server ~]# ip neighbour show
172.25.254.1 dev ens160 lladdr 00:50:56:c0:00:08 REACHABLE

    
    
     AI生成项目
     bash
     
     

    
    
    
    
     
* 1

     
* 2

    

3.设置网卡ip地址

3.1启用或停用网卡

  • 启动接口为ens160的网卡
bash 复制代码
[root@server ~]# ip link set ens160 up

    
    
     AI生成项目
     bash
     
     

    
    
    
    
     
* 1

    
  • 关闭接口为ens160的网卡
bash 复制代码
[root@server ~]# ip link set ens160 down

    
    
     AI生成项目
     bash
     
     

    
    
    
    
     
* 1

    

3.2设置默认网关

  • <gateway_ip>为网关地址,<interface>为网络接口
bash 复制代码
[root@server ~]# ip route add default via <gateway_ip> dev <interface>

    
    
     AI生成项目
     bash
     
     

    
    
    
    
     
* 1

    

3.3新增网卡地址

  • 注意新增的IP地址临时生效重启无效),要长久生效,修改网卡配置文件或者使用nmcli命令
  • ens160网卡,新增ip地址
bash 复制代码
[root@server ~]# ip address add 192.168.1.100/24 dev ens160

    
    
     AI生成项目
     bash
     
     

    
    
    
    
     
* 1

    

3.4删除ip地址

bash 复制代码
[root@server ~]# ip address del 192.168.1.100/24 dev ens160

    
    
     AI生成项目
     bash
     
     

    
    
    
    
     
* 1

    
  • 发现已经没有192.268.1.100/24这个ip地址

3.5删除默认网关

bash 复制代码
[root@server ~]# ip route del default

    
    
     AI生成项目
     bash
     
     

    
    
    
    
     
* 1

    

4.管理路由表

4.1新增路由表

bash 复制代码
[root@server ~]# ip route add 192.168.80.0/24 via 172.25.254.2

    
    
     AI生成项目
     bash
     
     

    
    
    
    
     
* 1

    
  • 注意:此时的网关地址必须在主机真实存在,否则添加失败
  • 如果主机中有多个网卡,添加路由时指定网卡
bash 复制代码
[root@server ~]# ip route add 192.168.70.0/24 via 172.25.254.2 dev ens160

    
    
     AI生成项目
     bash
     
     

    
    
    
    
     
* 1

    

4.2查看路由表

bash 复制代码
[root@server ~]# ip route show
default via 192.168.54.2 dev ens160 proto static metric 100
172.25.254.0/24 dev ens160 proto kernel scope link src 172.25.254.10
192.168.54.0/24 dev ens160 proto kernel scope link src 192.168.54.131 metric 100
192.168.70.0/24 via 172.25.254.2 dev ens160
192.168.80.0/24 via 172.25.254.2 dev ens160

    
    
     AI生成项目
     bash
     
     

    
    
    
    
     
* 1

     
* 2

     
* 3

     
* 4

     
* 5

     
* 6

    

4.3删除路由表条目

bash 复制代码
[root@server ~]# ip route del 192.168.70.0/24 via 172.25.254.2 dev ens160
[root@server ~]# ip route show
default via 192.168.54.2 dev ens160 proto static metric 100
172.25.254.0/24 dev ens160 proto kernel scope link src 172.25.254.10
192.168.54.0/24 dev ens160 proto kernel scope link src 192.168.54.131 metric 100
192.168.80.0/24 via 172.25.254.2 dev ens160

    
    
     AI生成项目
     bash
     
     

    
    
    
    
     
* 1

     
* 2

     
* 3

     
* 4

     
* 5

     
* 6

    

总结

bash 复制代码
1. ip命令是Linux下管理网络接口的主要工具之一,可以用于设置IP地址、路由表、网络接口等。
  1. ip命令的常见操作包括查看网络接口信息、设置IP地址、设置网络接口等。

  2. 查看网络接口信息的操作:

  • ip addr:显示所有网络接口的详细信息,包括接口名称、MAC地址、IPv4地址、IPv6地址等。
  • ip link:显示所有网络接口的名称和状态信息。
  1. 设置IP地址的操作:
  • ip addr add IP地址/掩码 dev 网络接口名:给指定网络接口添加IP地址。
  • ip addr del IP地址/掩码 dev 网络接口名:删除指定网络接口的IP地址。
  • ip -4 addr add IP地址/掩码 dev 网络接口名:给指定网络接口添加IPv4地址。
  • ip -6 addr add IPv6地址/掩码 dev 网络接口名:给指定网络接口添加IPv6地址。
  1. 设置网络接口的操作:
  • ip link set 网络接口名 up/down:设置指定网络接口的状态为up或down。
  • ip link set 网络接口名 name 新名称:给指定网络接口修改名称。
  • ip link set 网络接口名 mtu MTU值:设置指定网络接口的最大传输单元大小。
  • ip route add 目标地址/掩码 via 网关 dev 网络接口名:添加路由规则,指定目标地址走指定的网关。
  1. 其他常用操作:
  • ip neigh:显示ARP缓存表。
  • ip route:显示和管理路由表。
  • ip rule:显示和管理路由策略。
    AI生成项目 bash
相关推荐
不怕犯错,就怕不做1 小时前
linux 如何查看自己的帐号密码及samba的帐号和密码
linux·运维·服务器
地下核武1 小时前
Ubuntu 24.04 在线安装 Qt 6.10.2 后 Qt Creator 无法启动问题记录与解决
linux·qt·ubuntu
张3232 小时前
Linux 启动过程
linux·运维
三万棵雪松2 小时前
【Linux 物联网网关主控系统-Linux主控部分(二)】
linux·嵌入式linux
chinesegf2 小时前
ubuntu建虚拟环境制作docker容器
linux·ubuntu·docker
Stack Overflow?Tan902 小时前
标注软件labelImg在linux下鼠标滚轮闪退解决办法
linux·labelimg
李彦亮老师(本人)2 小时前
Rocky Linux 9.x 新特性详解
linux·运维·服务器·centos·rocky linux
NiKick2 小时前
在Linux系统上使用nmcli命令配置各种网络(有线、无线、vlan、vxlan、路由、网桥等)
linux·服务器·网络
biubiubiu07063 小时前
Python 环境安装与 Linux 控制入门
linux·开发语言·python
扛枪的书生4 小时前
包管理器用法速查
linux