Linux:网络指令(IP)

0、说明

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

1、用法

用法 说明
网卡、IP
addr ip addrip addr show enp0s3 显示IP显示某个网卡IP
ip addr add IP/掩码 dev enp0s3ip 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] 设置直连网络的route192是目的地址
ip r add 192.168.10.0/24 via 172.17.0.1 dev DEVICE [src IP_ADDR] 设置非直连网络的route192是目的地址,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 addip n del ARP表中增加一个条目删除ARP中的一个条目
网络命名空间
netns ip netns 查看所有网络命名空间
ip netns add Nameip netns del Name 新增/删除一个名为Name的命名空间
ip netns exec Nama CMD 在命名空间Name中执行CMD

用法

网络接口信息: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的命令,修改=删除原+添加新

例子

[复制代码](javascript:void(0)😉

#向 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

[复制代码](javascript:void(0)😉

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/network

    GATEWAY选项

    中设置

    GATEWAY=172.17.0.1
    
  • 报文的路由方式为,先判断是否走系统的默认路由,确定从哪个网卡发出,到了该网卡之后,再确定是否走网卡的默认路由。**
    **

例子

ip rdefault 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接口

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

12)添加/删除路由表规则:ip route add/delete / via dev

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

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

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

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

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

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

posted @ 2024-01-23 15:29  寻梦99  阅读(373)  评论(0)    收藏  举报