ipv4原理
IP 数据报由 报头 和 数据 两部分组成。报头包含了实现 IP 数据传输所需的关键信息,而数据部分则是承载实际的应用数据。IPv4 报文的基本结构如下:
字节偏移 | 0-3 | 4-7 | 8-15 | 16-31 |
---|---|---|---|---|
0 | 版本号(4) | 首部长度(4) | 区分服务(8) | 总长度(16) |
32 | 标识(16) | 标志位(3) | 片偏移(13) | |
64 | 生存时间(8) | 协议号(8) | 头部校验和(16) | |
96 | 源 IP 地址(32 位) | |||
128 | 目的 IP 地址(32 位) |
各字段详细说明
版本号:IP 协议的版本(如 IPv4 为 4,IPv6 为 6)。
首部长度:IP 报头的长度(通常为 20 字节)。
区分服务:用于实现优先级和服务质量(QoS)的标识。
总长度:整个 IP 数据报的长度,包括报头和数据。
标识、标志位、片偏移:用于 IP 分片和重组。
生存时间(TTL):数据报在网络中的最大跳数,防止数据报在网络中无限循环。
协议号:指示上层协议(如 TCP、UDP)。
头部校验和:用于检测报头的完整性。
源 IP 地址和目的 IP 地址:分别标识数据报的发送端和接收端。
ipv4图形配置方法
nm-connection-editor
可视化配置:
nmtui
利用命令临时配置IP
ifconfig ens160 192.168.94.100 netmask 255.255.255.0
ip addr flush ens160
ifconfig ens160
ip address add 192.168.94.100 dev ens160
ip addr flush ens160
ip a
ip addr del 192.168.94.100 dev ens160
nmcli命令
作用:
nmcli
,可以实现创建,显示,编辑,删除,激活和停用网络连接以及控制和显示网络设备状态等
查看网卡信息
[root@server ~]# nmcli c show # 全写为:nmcli connection show
[root@server ~]# nmcli con show ens160 # 查看指定网卡的详细信息,q键退出
[root@server ~]# nmcli dev status # 查看已有设备的连接状态
[root@server ~]# nmcli dev show # 看所有网络设备详情,q键退出
激活和关闭网络连接
[root@server ~]# nmcli c up 网卡名 # 激活,也是重启网卡的一种方法
[root@server ~]# nmcli c down 网卡名 # 关闭
添加网络连接
# 例:添加网络连接ens161
[root@server ~]# nmcli c add type ethernet ifname ens160 con-name ens161
autoconnect yes ip4 192.168.48.135/24 gw4 192.168.48.2
连接 "ens161" (37bc8e79-92ea-4c01-a4af-1dfd7c687014) 已成功添加。
[root@server ~]# nmcli c up ens161 # 不能在xshell操作,否则ssh连接断掉
[root@server ~]# nmcli c show
[root@server ~]# nmcli c up ens160
设置静态
IP
[root@server ~]# nmcli c modify ens160 ipv4.method manual ipv4.addresses '192.168.48.134/24' ipv4.gateway '192.168.48.2' ipv4.dns '114.114.114.114'
[root@server ~]# nmcli c up ens160
[root@server ~]# ip a
# ipv4.method manual:手动获取
增加
ip
地址
[root@server ~]# nmcli c mod ens160 +ipv4.addresses 192.168.48.136/24
[root@server ~]# nmcli c up ens160
[root@server ~]# ip a
删除网络连接
# 删除上例的ens161
[root@server ~]# nmcli c show
NAME UUID TYPE DEVICE
ens160 0f83fcfd-bc6d-3866-b82b-fc4b09df2068 ethernet ens160
ens161 37bc8e79-92ea-4c01-a4af-1dfd7c687014 ethernet --
[root@server ~]# nmcli c del ens161
成功删除连接 "ens161" (37bc8e79-92ea-4c01-a4af-1dfd7c687014)。
[root@server ~]# nmcli c show
NAME UUID TYPE DEVICE
ens160 0f83fcfd-bc6d-3866-b82b-fc4b09df2068 ethernet ens160
修改配置文件
# 设置静态IP
[root@server ~]# cd /etc/NetworkManager/system-connections
[root@server system-connections]# ls
ens160.nmconnection
[root@server system-connections]# vim ens160.nmconnection
[connection]
id=ens160
uuid=d97d603d-5bb5-3d11-bfeb-11fbc8cb867d
type=ethernet
autoconnect-priority=-999
interface-name=ens160
timestamp=1682493359
[ethernet]
[ipv4] address1=192.168.48.134/24,192.168.48.2
dns=114.114.114.114;
method=manual
[ipv6]
addr-gen-mode=eui64
method=auto
[proxy]
[root@server ~]# nmcli c reload
[root@server ~]# nmcli c up ens160
# 会话和网卡的关系:一个网卡可以有多个会话,但是一个时刻只能连接到一个会话
ping命令
作用:
用来检测网络的连通情况和分析网络速度
根据域名得到服务器
IP
根据
ping
返回的
TTL
值来判断对方所使用的操作系统及数据包经过路由器数量。
格式
ping -参数 目标主机IP或域名
-c 数字:用于设定本命令发出的ICMP消息包的数量,若无此选项,则会无限次发送消息包直到用户按【Ctrl+C】组合键才终止命令。
-s
字节数:设置
ping
命令发出的消息包的大小,默认发送的测试数据大小为
56
字节;自动添加
8
字
节的
ICMP
协议头后
,
显示的是
64
字节;再添加
20
字节的
IP
协议头,则显示的为
84
字节。最大设置值
为
65507B
-i
时间间隔:设定前后两次发送
ICMP
消息包之间的时间间隔,无此选项时,默认时间间隔为
1
秒。
为了保障本机和目标主机的安全,一般不要小于
0.2
秒
-t
:设置存活时间
TTL(Time To Live)
ping -c 2 -s 198 -w 1 www.baidu.com
ping -s 128 2 www.baidu.com
wget命令
用于在终端命令行里下载网络文件,英文全称为:
“web get”
ping -参数 目标主机IP或域名
-P 下载到指定目录
-t 最大尝试次数
-b 后台下载模式
-c 断点续传
-p 下载页面内所有资源,包括图片、视频等
-r 递归下载
[root@server ~]# wget
https://dldir1.qq.com/qqfile/qq/QQNT/2355235c/linuxqq_3.1.1-11223_x86_64.rpm
# 下载qq软件
curl命令
curl
命令是一个网络工具,其主要作用是通过
http
、
https
、
ftp
等方式下载
/
上传文件
[root@server ~]# curl www.baidu.com -o index.html
[root@server ~]# ll index.html
-rw-r--r--. 1 root root 2381 5月 6 19:12 index.html