Linux:IP指令

ShineLee / 2023-08-03 / 原文

学习自:Linux IP命令_把我挂在云端的博客-CSDN博客

Linux 中的 ip 命令 - 知乎

linux的ip命令大全 linux 命令 ip - 变形虫

Linux中ip命令的使用实例 | 《Linux就该这么学》

 

 0、说明

  • ip命令是ifconfig的上位替代,功能更强大。
  • 很多指令可以用它的前若干位代替,比如addr可以用a、ad、add代替,route可以用r直到rout代替;

1、用法

用法

说明

网卡、IP

addr

ip addr

ip addr show enp0s3

 显示IP

显示某个网卡IP

ip addr add  IP/掩码 dev enp0s3

ip addr del  IP/掩码 dev enp0s3

给网卡增设IP地址(临时,重启主机后失效)

删除临时IP地址

link

ip -s link

统计传输字节、数据包

先del原IP,再add新IP

修改

ip link set enp0s3 down 

ip link set enp0s3 down

启用网卡

禁用网卡 

 

路由、网关  

route ip route  查路由表 
 ip route get to 192.168.43.2 查到某个IP的路由

ARP  (链路层)

neigh ip neigh  查看IP到MAC的映射关系 

ip n add

ip n del

ARP表中增加一个条目

删除ARP中的一个条目

网络命名空间

 netns   ip netns  查看所有网络命名空间 

ip netns add Name

ip netns del Name 

新增/删除一个名为Name的命名空间
ip netns exec Nama CMD   在命名空间Name中执行CMD
     
     
     
     
     
     
     
     
     
     
     
     

 

1)网卡、网络接口:link

用法

网络接口信息:ip link 
网络接口统计信息:ip -s link 

ip l add [ link DEVICE ] [ name ] NAME type TYPE:创建虚拟网络设备。注意,此处的 DEVICE 必须是真实的物理设备。

ip l del DEVICE:删除虚拟设备。只有虚拟设备才能被删除。

ip l set ens33 up:打开 ens33 网卡。

ip l set ens33 down :关闭 ens33 网卡。

2)网络命名空间 netns

用法

ip netns 查看所有网络命名空间

ip netns add/del 新增/删除一个名为Name的命名空间

ip netns exec Nama CMD 在命名空间Name中执行CMD

例子

ip netns add ns0 
ip netns     #  等同于 ls /var/run/netns/ 
ip net exec ns0 ip l set lo up    # ip l set lo up 整体是一个命令
ip netns del ns0

 

3)IP地址信息:ip addr 

用法

ip addr 显示全部IP

ip addr show enp0s3 显示某个网卡IP

ip addr add  IP/掩码 dev enp0s3 给网卡增设IP地址(临时,重启主机后失效)

ip addr del  IP/掩码 dev enp0s3  删除临时IP地址

没有修改IP的命令,修改=删除原+添加新

例子

#向 ens33 网卡上添加一个临时 IP 地址 192.168.10.10/24 (dev 是 device 的简写)。
ip a add 192.168.10.10/24 dev ens33 

#通过 ip a add 添加的 IP 会在重启主机后失效。

#从 ens33 网卡上删除一个临时 IP 地址 192.168.10.10/24。
ip a del 192.168.10.10/24 dev ens33

 

4)路由表信息:ip route

用法

ip r:查看路由。

ip r add 192.168.10.0/24 dev DEVICE [src IP_ADDR]:网络路由。192.168.10.0/24 是直连网络。前往网络 192.168.10.0/24 的请求从 DEVICE 网卡发出。如果该网卡上有多个 IP,可以选择一个偏爱的源 IP 地址。

ip r add 192.168.10.0/24 via 172.17.0.1 dev DEVICE [src IP_ADDR]:网络路由。192.168.10.0/24 不是直连网络。前往网络 192.168.10.0/24 的请求下一跳前往 172.17.0.1。

ip r add 192.168.10.10 dev DEVICE:主机路由。前往主机 192.168.10.10 的请求从 DEVICE 网卡发出。(与前两个的区别在于前两个指出的是网卡,而这里是准确的IP)

ip r add default via 172.17.0.1:默认路由(网关)。172.17.0.1 就是网关的 IP。

ip r del 192.168.10.0/24 via 172.17.0.1:删除路由

ip r get 192.168.10.11:显示到达 192.168.10.11 的路由信息。

说明

  • via 后面的 IP 必须是可达的(reachable)。
  • 去往直连的网络,会 ARP 广播请求目标主机的 MAC 地址;
  • 去往非直连的网络,会 ARP 广播请求下一跳主机的 MAC 地址。
  • 为了使网卡重启后路由仍然有效,需要①在/etc/sysconfig/network-scripts/目录下创建名为route-enp0s3(enp0s3是本机网卡,连接172.17.0.1所在网络);②向该文件添加内容
    192.168.10.0/24 via 172.17.0.1
    192.168.10.10 via 172.17.0.1
  • 网卡的默认路由在/etc/sysconfig/network-scripts/ifcfg-enp0s3下通过GATEWAY选项设置
    GATEWAY=172.17.0.1
  • 系统的默认路由在/etc/sysconfig/networkGATEWAY选项中设置
    GATEWAY=172.17.0.1
  • 报文的路由方式为,先判断是否走系统的默认路由,确定从哪个网卡发出,到了该网卡之后,再确定是否走网卡的默认路由

例子

ip r

default via 10.0.0.2 dev enp0s3 proto static metric 100 10.0.0.0/24 dev enp0s3 proto kernel scope link src 10.0.0.128 metric 100 172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1

首行:默认路由,在路由表上查不到时,报文都从默认路由走。即从enp0s3发出,去IP为10.0.0.2的主机。

第二行:网络路由,表明去10.0.0.0/24网络的报文都从enp0s3网卡走,报文中携带的源地址(本机)为10.0.0.128

第三行:网络路由,表明去172.17.0.0/16网络的报文都从docker0网卡走,报文中携带的源地址(本机)为172.17.0.1

5)ARP缓存表信息:ip route

6)组播地址:ip maddr

7)多路传输的所有者信息:ip mroute 

8)VLAN信息:ip vlan 

9)添加/删除VLAN接口

  • ip link add link <parent-dev> name <vlan-dev> type vlan id <vlan-id>

  • ip link delete <vlan-dev>

10)配置网络接口(网卡):ip link set <dev> up|down

11)添加/删除IP地址:ip addr add/del <ip_addr>/<masklen> dev <dev>

12)添加/删除路由表规则:ip route add/delete <network>/<masklen> via <gateway> dev <dev>

13)默认路由:ip route add default via <gateway> [dev <dev>]

14)添加/删除ARP缓存表项:ip neigh add/dev <ip_addr> lladdr <mac_addr> dev <dev>

15)添加/删除多路传输层关系:ip maddr add/del <multicast_addr> dev <dev>

16)多路传输层路由表项:ip mroute add/del [src <src_addr>] <multicast_addr> [dev <dev>] [oif <oif>] [via <next_hop>]

17)查找并修改接口名:ip link set <dev> name <new_name>

18)显示QoS统计信息:ip -s link show <dev>

19)修改MAC地址:ip link set <dev> address <new_mac>

20)将路由表项写入文件:ip route save > filename

21)从文件中加载路由表项:ip route restore < filename