2. ip 命令
ip 命令是 Linux 系统中功能强大的网络配置工具,用于替代传统的 ifconfig、route 等命令。它能够管理网络接口、IP 地址、路由表、ARP 缓存、隧道等网络相关功能。
作用
- 管理网络接口(查看、启用/禁用、配置参数)。
- 配置 IP 地址(IPv4/IPv6)。
- 管理路由表(添加/删除路由、策略路由)。
- 管理邻居表(ARP/NDP)。
- 管理隧道、VLAN、VPN 等虚拟设备。
命令个格式
ip [选项] [操作对象] 子命令
常用操作对象
操作对象
说明
address、 addr 或 a管理 IP 地址
link管理网络接口(如网卡状态)
route管理路由表
neigh管理邻居表(ARP)
tunnel配置隧道
maddr管理多播地址
如:
查看本机的IP地址: ip a
weimingze@mzstudio:~$ ip a # 或命令全称:ip address show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:c4:a8:57 brd ff:ff:ff:ff:ff:ff
altname enp2s1
inet 192.168.33.148/24 brd 192.168.33.255 scope global dynamic noprefixroute ens33
valid_lft 1606sec preferred_lft 1606sec
inet6 fe80::20c:29ff:fec4:a857/64 scope link
valid_lft forever preferred_lft forever
- 其中有两个网络设备
lo和ens33。lo是本地环回,ens33是硬件网卡。 ens33的 IPv4 地址是 192.168.33.148,24位用于标记地址,8(32-24)位用于标记网络。ens33的 IPv6 地址是 fe80::20c:29ff:fec4:a857,64位用于标记地址。
查看本机的IP地址(简洁显示 IP 信息):ip -br address
weimingze@mzstudio:~$ ip -br address
lo UNKNOWN 127.0.0.1/8 ::1/128
ens33 UP 192.168.33.148/24 fe80::20c:29ff:fec4:a857/64
常用选项
操作对象
说明
-br[ief]简洁显示(默认详细显示)
-4指定 IPv4
-6指定 IPv6
-s显示详细统计信息(如 ip -s link)
-c彩色输出
IP 地址管理(ip address)
1. 修改 IP 地址
weimingze@mzstudio:~$ sudo ip addr change 192.168.33.149/24 dev ens33
[sudo] password for weimingze:
2. 删除 IP 地址
weimingze@mzstudio:~$ sudo ip addr del 192.168.33.148/24 dev ens33
3. 添加临时 IP 地址
weimingze@mzstudio:~$ sudo ip addr add 192.168.33.148/24 dev ens33
接口管理(ip link)
1. 查看接口状态:
weimingze@mzstudio:~$ ip link show # 或简写 ip l
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:c4:a8:57 brd ff:ff:ff:ff:ff:ff
altname enp2s1
weimingze@mzstudio:~$ ip -br l
lo UNKNOWN 00:00:00:00:00:00 <LOOPBACK,UP,LOWER_UP>
ens33 UP 00:0c:29:c4:a8:57 <BROADCAST,MULTICAST,UP,LOWER_UP>
2. 启用接口 ip link set ens33 up
weimingze@mzstudio:~$ ip -br l
lo UNKNOWN 00:00:00:00:00:00 <LOOPBACK,UP,LOWER_UP>
ens33 UP 00:0c:29:c4:a8:57 <BROADCAST,MULTICAST>
weimingze@mzstudio:~$ sudo ip link set ens33 up
weimingze@mzstudio:~$ ip -br l
lo UNKNOWN 00:00:00:00:00:00 <LOOPBACK,UP,LOWER_UP>
ens33 UP 00:0c:29:c4:a8:57 <BROADCAST,MULTICAST,UP,LOWER_UP>
3. 禁用接口 ip link set ens33 down
weimingze@mzstudio:~$ ip -br l
lo UNKNOWN 00:00:00:00:00:00 <LOOPBACK,UP,LOWER_UP>
ens33 UP 00:0c:29:c4:a8:57 <BROADCAST,MULTICAST,UP,LOWER_UP>
weimingze@mzstudio:~$ sudo ip link set ens33 down
weimingze@mzstudio:~$ ip -br l
lo UNKNOWN 00:00:00:00:00:00 <LOOPBACK,UP,LOWER_UP>
ens33 UP 00:0c:29:c4:a8:57 <BROADCAST,MULTICAST>
4. 修改 MAC 地址: ip link set ens33 address 00:11:22:33:44:55
weimingze@mzstudio:~$ ip -br l
lo UNKNOWN 00:00:00:00:00:00 <LOOPBACK,UP,LOWER_UP>
ens33 UP 00:0c:29:c4:a8:57 <BROADCAST,MULTICAST,UP,LOWER_UP>
weimingze@mzstudio:~$
weimingze@mzstudio:~$ sudo ip link set ens33 address 00:11:22:33:44:55
weimingze@mzstudio:~$ ip -br l
lo UNKNOWN 00:00:00:00:00:00 <LOOPBACK,UP,LOWER_UP>
ens33 UP 00:11:22:33:44:55 <BROADCAST,MULTICAST,UP,LOWER_UP>
路由管理(ip route)
1. 查看路由表:ip route show
weimingze@mzstudio:~$ ip route show # 或简写: ip r
default via 192.168.33.2 dev ens33 proto dhcp src 192.168.33.148 metric 100
192.168.33.0/24 dev ens33 proto kernel scope link src 192.168.33.148 metric 100
2. 添加默认网关:ip route add
weimingze@mzstudio:~$ ip r
default via 192.168.33.2 dev ens33 proto dhcp src 192.168.33.148 metric 100
192.168.33.0/24 dev ens33 proto kernel scope link src 192.168.33.148 metric 100
weimingze@mzstudio:~$ sudo ip route add default via 192.168.33.2
weimingze@mzstudio:~$ ip r
default via 192.168.33.2 dev ens33
default via 192.168.33.2 dev ens33 proto dhcp src 192.168.33.148 metric 100
192.168.33.0/24 dev ens33 proto kernel scope link src 192.168.33.148 metric 100
加静态路由:ip route add
weimingze@mzstudio:~$ ip r
default via 192.168.33.2 dev ens33
default via 192.168.33.2 dev ens33 proto dhcp src 192.168.33.148 metric 100
192.168.33.0/24 dev ens33 proto kernel scope link src 192.168.33.148 metric 100
weimingze@mzstudio:~$ ip route add 10.0.0.0/24 via 192.168.33.2
RTNETLINK answers: Operation not permitted
weimingze@mzstudio:~$ sudo ip route add 10.0.0.0/24 via 192.168.33.2
weimingze@mzstudio:~$ ip r
default via 192.168.33.2 dev ens33
default via 192.168.33.2 dev ens33 proto dhcp src 192.168.33.148 metric 100
10.0.0.0/24 via 192.168.33.2 dev ens33
192.168.33.0/24 dev ens33 proto kernel scope link src 192.168.33.148 metric 100
删除路由:ip route del
weimingze@mzstudio:~$ ip r
default via 192.168.33.2 dev ens33
default via 192.168.33.2 dev ens33 proto dhcp src 192.168.33.148 metric 100
10.0.0.0/24 via 192.168.33.2 dev ens33
192.168.33.0/24 dev ens33 proto kernel scope link src 192.168.33.148 metric 100
weimingze@mzstudio:~$ sudo ip route del 10.0.0.0/24
weimingze@mzstudio:~$ ip r
default via 192.168.33.2 dev ens33
default via 192.168.33.2 dev ens33 proto dhcp src 192.168.33.148 metric 100
192.168.33.0/24 dev ens33 proto kernel scope link src 192.168.33.148 metric 100
weimingze@mzstudio:~$ sudo ip route del default via 192.168.33.2
weimingze@mzstudio:~$ ip r
default via 192.168.33.2 dev ens33 proto dhcp src 192.168.33.148 metric 100
192.168.33.0/24 dev ens33 proto kernel scope link src 192.168.33.148 metric 100
详细用法请通过 man ip 查看 ip 命令手册。
练习:
- 使用
ip -br addr命令查看你的电脑有几块网卡,对应的IP地址都是什么? - 使用
ip addr命令查看你的电脑上更多的网络信息。