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 |
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的命令,修改=删除原+添加新
例子
[
](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接口
-
ip link add link
name type vlan id -
ip link delete
浙公网安备 33010602011771号