【linux网络相关的命令工具】之ip

【linux网络相关的命令工具】之ip

不管是什么设备,只要想加入一个网络(或是互联网,或是局域网),都离不开IP地址,设备想要发收东西总要给别人一个你的地址吧。

实验环境:Fedora 30

一、ifconfig

ifconfig命令是一个linux下常用的网络接口配置的命令行工具

直接在终端输入ifconfig会输出当前配置好且激活的网络端口,也可以在后面接上端口名来查看特定端口的信息。

【linux网络相关的命令工具】之ip_第1张图片

可以看到该命令输出可以查看端口状态,配置好的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] 对象 [指令]

【linux网络相关的命令工具】之ip_第2张图片

  • 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

【linux网络相关的命令工具】之ip_第3张图片

再激活关闭的网卡ens33

【linux网络相关的命令工具】之ip_第4张图片

2.3 更精细的操作

ip link set DEVICE [arp] [name] [address] [ broadcast] [mtu]

【linux网络相关的命令工具】之ip_第5张图片

可以设置网卡的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

【linux网络相关的命令工具】之ip_第6张图片

当然也可以通过网卡名来指定查看某张网卡的三层信息,可以看到和ip link show相比多了很多信息,比如网卡的IP地址,网络的广播地址等

3.2 网卡ip地址的分配

ip address {add|change|replace} IFADDR dev IFNAME

如:向ens33网卡添加ip为192.168.88.1/28的地址

【linux网络相关的命令工具】之ip_第7张图片

移除ip配置

【linux网络相关的命令工具】之ip_第8张图片

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

【linux网络相关的命令工具】之ip_第9张图片

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

【linux网络相关的命令工具】之ip_第10张图片

  • 删除路由条目
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

可以看到设备的ARP表

你可能感兴趣的:(【linux网络相关的命令工具】之ip)