【linux网络相关的命令工具】之ip
不管是什么设备,只要想加入一个网络(或是互联网,或是局域网),都离不开IP地址,设备想要发收东西总要给别人一个你的地址吧。
实验环境:Fedora 30
一、ifconfig
ifconfig
命令是一个linux下常用的网络接口配置的命令行工具
直接在终端输入ifconfig会输出当前配置好且激活的网络端口,也可以在后面接上端口名来查看特定端口的信息。
可以看到该命令输出可以查看端口状态,配置好的IP地址等。
也可以通过一些options来进行网络地址的设置。
比如
sudo ifconfig eth0 192.168.88.1/28
命令ifconfig 端口号 ip/掩码
就可以进行端口的ip和子网掩码的配置
但ifconfig已经过时了,未来有可能被取代,而现在大部分linux已经提供了更先进的iproute2来进行网络的配置
二、iproute2
传统的ifconfig、route等命令属于老版本Linux内核中的net-tools,而net-tools已停止维护,大部分新系统里都自带iproute2。一些Linux发行版比如Arch Linux和CentOS/RHEL 7则已经完全抛弃了net-tools,只支持iproute2。
如果linux版本太老可以手动安装
# centos
yum install -y iproute2
# 或则Ubuntu下
sudo apt-get update -y
sudo apt-get install -y iproute2
iproute2由Alexey N. Kuznetsov开发,在Linux 2.2.加入,有着更强大的功能。
三、ip
ip只是iproute2中的工具之一,可以对路由,设备,策略隧道等进行管理。
1. 命令格式
ip [option] 对象 [指令]
- OPTIONS: 选项
-s
: 显示设备统计信息
- OBJECT: 对象
- 常用操作对象有link(第二层)
- addr(第三层)
- route(路由)
2. 二层相关
ip link用来设定数据链路层相关的参数,比如MTU,网络接口的开关甚至MAC地址(前提是可修改)
2.1 查看链路状态
ip link show
可以看到,这里是无法获取到网卡的IP地址的,IP地址属于三层信息,应该在下面的ip addr show
命令查看。
2.2 网卡端口的开启和关闭
ip link set { DEVICE | dev | group } [ { up | down } ]
如:关闭网卡ens33
ip link set ens33 down
再激活关闭的网卡ens33
2.3 更精细的操作
ip link set DEVICE [arp] [name] [address] [ broadcast] [mtu]
可以设置网卡的arp开关,广播开关,可以修改网卡名字,修改MAC地址,mtu大小等
2.4 常用命令总结
ip link show # 查看设备链路状态
ip -s link show # 查看设备链路统计信息
ip link set ens33 down # 关闭ens33网卡
ip link set ens33 up # 激活ens33网卡
ip link set ens33 mtu 1000 # 修改网卡mtu大小
ip link set ens33 name other # 修改网卡名
ip link set ens33 address ab:ab:ab:ab:ab:ab # 修改网卡mac
3. 三层相关
ip addr相关命令与网络层三层相关
ip address [show]
[add|del] [IFADDR] [dev IFNAME] [CONFIG]
相关参数
- broadcast(brd): 设定广播地址,
+
表示自动计算 - label: 设置别名
- scope: 设备的域
3.1 查看网卡IP配置和地址信息
ip addr show
当然也可以通过网卡名来指定查看某张网卡的三层信息,可以看到和ip link show
相比多了很多信息,比如网卡的IP地址,网络的广播地址等
3.2 网卡ip地址的分配
ip address {add|change|replace} IFADDR dev IFNAME
如:向ens33网卡添加ip为192.168.88.1/28的地址
移除ip配置
3.3 记得添加广播地址
光设置ip地址不够,还需要给网卡添加一个广播地址
只需要在添加IP地址的命令里加入brd +
就可以添加属于它的网段的默认广播地址,如下
ip addr add 192.168.88.2/28 brd + dev ens33
3.4 给一张网卡添加多个IP
ip addr add 192.168.88.2/24 dev ens33 label ens33:1
3.5 常用命令总结
ip addr show # 查看网卡三层信息
ip addr add 192.168.88.2/24 brd + dev ens33 # 给ens33网卡设置IP为192.168.88.2,掩码24位,默认广播地址
ip addr del 192.168.88.2/24 dev ens33 # 删除指定的IP
ip addr add 192.168.88.2/24 dev ens33 label ens33:1 # 一张网卡添加多个IP
4. 路由相关
ip route [add|del] [IP] [via gateway] [dev IFNAME]
IP可以是单个IP或网段
4.1 查看路由表
ip route show
获取到某个ip地址的路由条目
ip route get IFADDR
4.2 添加路由
- 默认路由
想要正常访问网络,还需要一条默认路由,默认路由通过以下命令添加
ip route add default via IFADDR dev ens33
- 添加静态路由
ip route add 192.168.10.0/24 via 192.168.59.2 dev ens33
- 删除路由条目
ip route del 192.168.10.0/24
4.3 刷新路由表
ip route flush cache
4.4 常用命令总结
ip route show # 查看设备路由表
ip route get IPADDR # 获取到某个IP地址的路由条目
ip route add default via IFADDR dev ens33 # 添加一条默认路由
ip route add 192.168.10.0/24 via 192.168.59.2 dev ens33 # 添加一条到192.168.10.0网段从ens33走的静态路由
ip route flush cache # 刷新路由表
ARP表
使用这个命令
ip neigh