Linux:网络指令(IP)
学习自:Linux IP命令_把我挂在云端的博客-CSDN博客
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/network的GATEWAY选项中设置
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