Linux:网络指令(IP)

学习自: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指令)

route ip r 查路由表 
 ip r get to 192.168.43.2 查到某个IP的路由
ip r add 192.168.10.0/24 dev DEVICE [src IP_ADDR]

设置直连网络的route

192是目的地址

ip r add 192.168.10.0/24 via 172.17.0.1 dev DEVICE [src IP_ADDR]

设置非直连网络的route

192是目的地址,172是下一跳的地址

ip r add default via 172.17.0.1:默认路由(网关) 设置默认路由
ip r del 192.168.10.0/24 via 172.17.0.1 删除某条路由
ip r get 192.168.10.11 显示到192的路由

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

 

posted @ 2023-08-03 00:26  ShineLe  阅读(960)  评论(0编辑  收藏  举报