一、如何查看linux系统的IP地址

最常用就是ifconfig,ifconfig属于net-tools库,而现在更加推崇的是iproute2这个库,比如查看ip地址就是ip addr。
下面比较一下net-tools和iproute2库的异同。

net-tools iproute2 含义
arp -na ip neigh 查看arp表项,包括静态配置的以及学习到的
ifconfig - 查看网络接口,不包含down的
ip link 查看网络接口 但是不包含ip地址。
ifconfig -a ip addr show 查看所有网络接口,包含ip地址,也包含down的
ifconfig —help ip help 查看help
ifconfig -s ip -s link 查看网络接口简要信息
ifconfig eth0 up ip link set eth0 up 将eth0从down变成up
ipmaddr ip maddr 查看组播
iptunnel ip tunnel 查看ip 隧道
netstat ss 查看socket统计
netstat -i ip -s link 查看网络接口简要信息
netstat -g ip maddr 查看组播
netstat -l ss -l 查看所有正在监听的sockets
netstat -r ip route 查看路由
route add ip route add 添加路由
route del ip route del 删除路由
route -n ip route show 查看路由
vconfig ip link 查看网络接口 但是不包含ip地址。

推荐大家拥抱iproute2,因为这个是趋势,并且可以尝试多敲一敲这些命令。推荐使用https://www.onworks.net/这个网站提供的免费在线虚拟机进行尝试,非常的方便。

二、五类ip地址

image.png

三、私网IP地址

image.png

四、网络设备详解

通过ip addr可以获得这样的结果,其中lo口是环路口,访问127.0.0.1就会走这个口。然后重点分析一下eth0口。

  1. root@test:~# ip addr
  2. 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
  3. link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  4. inet 127.0.0.1/8 scope host lo
  5. valid_lft forever preferred_lft forever
  6. inet6 ::1/128 scope host
  7. valid_lft forever preferred_lft forever
  8. 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
  9. link/ether fa:16:3e:c7:79:75 brd ff:ff:ff:ff:ff:ff
  10. inet 10.100.122.2/24 brd 10.100.122.255 scope global eth0
  11. valid_lft forever preferred_lft forever
  12. inet6 fe80::f816:3eff:fec7:7975/64 scope link
  13. valid_lft forever preferred_lft forever

首先是第一行,eth0表示的是设备号,然后是< BROADCAST,MULTICAST,UP,LOWER_UP > ,这个就是网络设备的状态标识,其中UP表示启动,BROADCAST表示该设置支持广播,MULTICAST表示可以发送多播包, LOWER_UP 表示网线是插着的,L1启动着。

mtu 1500表示的是最大传输单元,是以太网的规范,以太网规定传输的最大单元就是1500。

qlen 表示传输队列长度。

qdisc 全称是queueing discipline,网络包的排队队则,最简单的是pfifo,不对数据包进行任何处理,数据包采用先入先出的方式通过队列。而pfifo_fase就比较复杂一些,他将网络队列分为了3个优先级不同的队列,band 0 - 2。优先级递减,如果是该排队规则,那么网络包会打开IP头,然后按照IP头里的TOS(Type Of Service),来将包进行分类,发送到不同的队列里。

link/ether 后面跟随的是MAC地址,MAC地址是网络设备的唯一标识。brd标识二层广播地址。

inet 后面跟随的是IP地址。 同样的brd是三层广播地址。

valid_lft 表示上面地址的使用期限

inet6 Ipv6地址

五、总结一下:

  1. mtu 1500 最大传输单位(数据包大小)为1,500字节
  2. qdisc pfifo_fast 用于数据包排队
  3. state UP 网络接口已启用
  4. group default 接口组
  5. qlen 1000 传输队列长度
  6. link/ether 00:1e:4f:c8:43:fc 接口的 MAC(硬件)地址
  7. brd ff:ff:ff:ff:ff:ff 广播地址
  8. inet 192.168.0.24/24 IPv4 地址
  9. brd 192.168.0.255 广播地址
  10. scope global 全局有效
  11. dynamic enp0s25 地址是动态分配的
  12. valid_lft 80866sec IPv4 地址的有效使用期限
  13. preferred_lft 80866sec IPv4 地址的首选生存期
  14. inet6 fe80::2c8e:1de0:a862:14fd/64 IPv6 地址
  15. scope link 仅在此设备上有效
  16. valid_lft forever IPv6 地址的有效使用期限
  17. preferred_lft forever IPv6 地址的首选生存期