四、网络管理
网络管路演变过程
在Redhat6中只支持network.service服务来管理网络,网络的及配置信息是保存在/etc/sysconfig/network-srcips/目录中的。
在Redhat7只支持network.server服务也支持NetworkManager.service服务来管理网络。
在Redhat8中默认只支持NetworkManager.service服务来管理网络,如果希望使用network.service来管理,需要安装network-scriots文件。
在Redhat9中只支持NetworkManager.service服务来管理网络,而且网络的配置信息是保存在/etc/NetworkManager/system-connections/目录下。
NetworkManager优势
首先使用NetworkManager.service服务管理网络具有以下特点:
- 他能够管理各种网络
- 有线网络
- 无线网络
- 动态IP
- 静态IP
- 以太网
- 非以太网
- 物理网卡
- 虚拟网卡
- 工具齐全:命令行、文本界面、图形界面
- 参数丰富
网络相关的说明
什么是网络接口
网络接口是计算机与网络设备进行通信的进出口,一般是指计算机的网络接口即网卡设备。
网络接口的命名规则
网络接口地名称地前两个字符为网路地类型:
- en:表示它是以太网(Ethenrnet)
- wl:表示无线网络(wlan)
- ww:表示无线广域网(wwan)
接下来的字符根据设备类型或位置选择:
- o:表示内置于主板上的集成设备
- s:表示插在可以热插拔的独立设备
- x:表示基于MAC地址命名的设备
- p:表示PIC插槽的物理位置及设备
网络配置方式
IP命令
使用IP命令可以配置临时,常用的命令如下:
ip link 命令
这个命令的作用是显示网络设备的运行状态
bash
[root@redhat12 ~]# ip link
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: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:39:b7:92 brd ff:ff:ff:ff:ff:ff
altname enp3s0
ip -s link
这个命令的作用是显示更详细的设备信息。
bash
[root@redhat12 ~]# ip -s link
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
RX: bytes packets errors dropped missed mcast
0 0 0 0 0 0
TX: bytes packets errors dropped carrier collsns
0 0 0 0 0 0
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:39:b7:92 brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped missed mcast
373248 5331 0 0 0 0
TX: bytes packets errors dropped carrier collsns
ip link show [设备名称]
作用:仅显示指定设备名称的信息
bash
[root@redhat12 ~]# ip link show ens160
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:39:b7:92 brd ff:ff:ff:ff:ff:ff
altname enp3s0
ip -s link show [设备名称]
作用:显示指定设备的详细信息,包括统计数据。
bash
[root@redhat12 ~]# ip -s link show ens160
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:39:b7:92 brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped missed mcast
489658 6993 0 0 0 0
TX: bytes packets errors dropped carrier collsns
1352392 11604 0 0 0 0
altname enp3s0
ip link show up
作用:仅显示当前处于激活状态的设备。
bash
[root@redhat12 ~]# ip link show up
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: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:39:b7:92 brd ff:ff:ff:ff:ff:ff
altname enp3s0
ip link set [设备名称] down
作用:将指令设备下载
bash
[root@redhat12 ~]# ip link set ens160 down
ip link set [设备名称] up
作用:将指定设备激活(在线)
bash
[root@redhat12 ~]# ip link set ens160 up
添加一个ip地址
语法:ip [-4 | -6] addr|a add IP地址/掩码 dev [网络设备名称]
说明:
- -4 添加ipv4的地址
- -6 表示添加IPV6的iP地址
- addr|a 表示添加IP
- del 表示删除IP
示例:为ens160网络设备添加一个临时的IPV4的地址192.168.214.123/24
bash
# 添加临时IP
[root@redhat12 ~]# ip -4 a add 192.168.214.123/24 dev ens160
# 查看添加的结果
[root@redhat12 ~]# ip a show ens160
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:39:b7:92 brd ff:ff:ff:ff:ff:ff
altname enp3s0
inet 192.168.214.121/24 brd 192.168.214.255 scope global noprefixroute ens160
valid_lft forever preferred_lft forever
inet 192.168.214.123/24 scope global secondary ens160
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe39:b792/64 scope link noprefixroute
valid_lft forever preferred_lft forever
# 验证IP是否可用
# 可以使用xshell 来链接这个IP
ssh root@192.168.214.123
示例2:删除ens160设备上的192.168.214.123/24 IP地址
bash
# 删除IP
[root@redhat12 ~]# ip -4 a del 192.168.214.123/24 dev ens160
# 查看IP的结果
[root@redhat12 ~]# ip a show ens160
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:39:b7:92 brd ff:ff:ff:ff:ff:ff
altname enp3s0
inet 192.168.214.121/24 brd 192.168.214.255 scope global noprefixroute ens160
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe39:b792/64 scope link noprefixroute
valid_lft forever preferred_lft forever
nmcli命令
作用:可以实现创建、编辑、删除、激活以及停用对网络设备控制等。
查看网卡设备
语法:nmcli device
nmcli dev
nmcli d
示例:
bash
# 查看网卡设备
[root@redhat12 ~]# nmcli device
DEVICE TYPE STATE CONNECTION
ens160 ethernet connected ens160
lo loopback connected (externally) lo
[root@redhat12 ~]# nmcli dev
DEVICE TYPE STATE CONNECTION
ens160 ethernet connected ens160
lo loopback connected (externally) lo
[root@redhat12 ~]# nmcli d
DEVICE TYPE STATE CONNECTION
ens160 ethernet connected ens160
lo loopback connected (externally) lo
# 查看网卡的链接状态
[root@redhat12 ~]# nmcli dev status
DEVICE TYPE STATE CONNECTION
ens160 ethernet connected ens160
lo loopback connected (externally) lo
# 查看指定网卡设备的详细信息
[root@redhat12 ~]# nmcli dev show ens160
GENERAL.DEVICE: ens160
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 00:0C:29:39:B7:92
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connected)
GENERAL.CONNECTION: ens160
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
WIRED-PROPERTIES.CARRIER: on
IP4.ADDRESS[1]: 192.168.214.121/24
IP4.GATEWAY: 192.168.214.2
IP4.ROUTE[1]: dst = 0.0.0.0/0, nh = 192.168.214.2, mt = 100
IP4.ROUTE[2]: dst = 192.168.214.0/24, nh = 0.0.0.0, mt = 100
IP4.DNS[1]: 223.5.5.5
IP6.ADDRESS[1]: fe80::20c:29ff:fe39:b792/64
IP6.GATEWAY: --
IP6.ROUTE[1]: dst = fe80::/64, nh = ::, mt = 1024
# 查看当前连接的设备信息
[root@redhat12 ~]# nmcli d connect ens160
Device 'ens160' successfully activated with '1f4bab4b-1e0f-3acd-bc77-2ee0eb673b39'.
# 查看断开的网卡设备
[root@redhat12 ~]# nmcli d discount ens160
Error: argument 'discount' not understood. Try passing --help instead.
查看网关信息
语法:route -n
示例:
bash
[root@redhat12 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.214.2 0.0.0.0 UG 100 0 0 ens160
192.168.214.0 0.0.0.0 255.255.255.0 U 100 0 0 ens160
目标 网关 掩码 标识 指标数据 使用 设备名称
查看网卡配置
语法:nmcli connection
nmcli con
nmcli c
示例:
bash
# 查看网卡信息
[root@redhat12 ~]# nmcli connection
NAME UUID TYPE DEVICE
ens160 1f4bab4b-1e0f-3acd-bc77-2ee0eb673b39 ethernet ens160
lo aa0c7569-eafb-4024-bf36-51f375e06fec loopback lo
# 完整命令的写法
[root@redhat12 ~]# nmcli connection show
NAME UUID TYPE DEVICE
ens160 1f4bab4b-1e0f-3acd-bc77-2ee0eb673b39 ethernet ens160
lo aa0c7569-eafb-4024-bf36-51f375e06fec loopback lo
# 查看指定网卡设备信息
[root@redhat12 ~]# nmcli c show ens160
connection.id: ens160
connection.uuid: 1f4bab4b-1e0f-3acd-bc77-2ee0eb673b39
connection.stable-id: --
connection.type: 802-3-ethernet
connection.interface-name: ens160
connection.autoconnect: yes
connection.autoconnect-priority: -999
connection.autoconnect-retries: -1 (default)
connection.multi-connect: 0 (default)
connection.auth-retries: -1
connection.timestamp: 1759989830
connection.permissions: --
connection.zone: --
connection.master: --
connection.slave-type: --
connection.autoconnect-slaves: -1 (default)
connection.secondaries: --
connection.gateway-ping-timeout: 0
connection.metered: unknown
connection.lldp: default
connection.mdns: -1 (default)
connection.llmnr: -1 (default)
connection.dns-over-tls: -1 (default)
connection.mptcp-flags: 0x0 (default)
connection.wait-device-timeout: -1
connection.wait-activation-delay: -1
......
# 查看网卡设备的相关信息,区分大小写
[root@redhat12 ~]# nmcli c show ens160 | grep gateway
connection.gateway-ping-timeout: 0
ipv4.gateway: 192.168.214.2
ipv6.gateway: --
# 查看网卡设备的网关信息,不区分大小写
[root@redhat12 ~]# nmcli c show ens160 | grep gateway -i
connection.gateway-ping-timeout: 0
ipv4.gateway: 192.168.214.2
ipv6.gateway: --
IP4.GATEWAY: 192.168.214.2
IP6.GATEWAY: --
# 查看网卡的dns信息
[root@redhat12 ~]# nmcli c show ens160 | grep dns -i
connection.mdns: -1 (default)
connection.dns-over-tls: -1 (default)
ipv4.dns: 223.5.5.5
ipv4.dns-search: --
ipv4.dns-options: --
ipv4.dns-priority: 0
ipv4.ignore-auto-dns: no
ipv6.dns: --
ipv6.dns-search: --
ipv6.dns-options: --
ipv6.dns-priority: 0
ipv6.ignore-auto-dns: no
IP4.DNS[1]: 223.5.5.5
配置静态IP
语法;nmcli c modify|mod 网路设备 [属性 值]...
示例:ens160添加一个IP地址为192.168.214.124,并配置IPv4,自动连接,dns为223.5.5.5,网关为192.168.214.2,子网掩码为255.255.255.0
bash
[root@redhat12 ~]# nmcli c modify ens160 ipv4.addresses 192.168.214.124/24 ipv4.gateway 192.168.214.2 ipv4.dns 223.5.5.5 ipv4.method manual autoconnect yes
命令的参数说明:
- modify: 修改网卡信息
- ipv4.addresses:指定IPv4的地址,格式为xxx.xxx.xxx.xxx/掩码
- ipv4.gateway:指定IPv4的网关地址
- ipv4.dns 223.5.5.5 指定dns地址
- ipv4.method manual:指定网络的连接方式,manual为手动配置
- autoconnect yes:表示自动连接,即系统一启动就连接
激活网络连接
语法:nmcli c up 网卡名称
bash
[root@redhat12 ~]# nmcli c up ens160
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5)
注意:当执行以上命令后,MobaXterm_Personal_25.2就断开了,因为网络配置生效了
bash
# 重新使用192.168.214.124进行登录,然后进行查看信息
[root@redhat12 ~]# ip a show ens160
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:39:b7:92 brd ff:ff:ff:ff:ff:ff
altname enp3s0
inet 192.168.214.124/24 brd 192.168.214.255 scope global noprefixroute ens160
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe39:b792/64 scope link noprefixroute
valid_lft forever preferred_lft forever
添加网络连接(增加静态IP)
- 添加IP,登录对ens160网卡添加192.168.214.121/24 IP
bash
# 使用 + 号来增加IP地址
[root@redhat12 ~]# nmcli c modify ens160 +ipv4.addresses 192.168.214.121/24 ipv4.gateway 192.168.214.2 ipv4.dns 223.5.5.5 autoconnect yes ipv4.method manual
# 让配置生效
[root@redhat12 ~]# nmcli c up ens160
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/6)
[root@redhat12 ~]# ip a show ens160
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:39:b7:92 brd ff:ff:ff:ff:ff:ff
altname enp3s0
inet 192.168.214.124/24 brd 192.168.214.255 scope global noprefixroute ens160
valid_lft forever preferred_lft forever
inet 192.168.214.121/24 brd 192.168.214.255 scope global secondary noprefixroute ens160
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe39:b792/64 scope link noprefixroute
valid_lft forever preferred_lft forever、
出现的问题:
1、命令敲错
2、网卡名称不对
3、IP地址不对
4、没有执行设备激活命令
增加网络连接
语法:nmcli c add type 网络类型 ifname 设备名称 con-name 网卡名称/连接名称 [([+|-]设备名称.属性 值)...]
示例:添加网络连接ens161, 网络类型为以太网(ethernet),并将IP设置为192.168.214.135
bash
# 添加网络连接,注意:ifname 是指定设备的名称,即使硬件设备(device),而con-name 用于指定链接名称,即connection namev 或者name
[root@redhat12 ~]# nmcli c add type ethernet ifname ens160 con-name ens161 autoconnect yes ip4 192.168.214.135/24 gw4 192.168.214.2
Connection 'ens161' (8773e7b4-f77e-46b8-a868-fd0f2d296eb0) successfully added.
# 让配置生效
[root@redhat12 ~]# nmcli c up ens160
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7)
[root@redhat12 ~]# nmcli c show
NAME UUID TYPE DEVICE
ens160 1f4bab4b-1e0f-3acd-bc77-2ee0eb673b39 ethernet ens160
lo aa0c7569-eafb-4024-bf36-51f375e06fec loopback lo
ens161 8773e7b4-f77e-46b8-a868-fd0f2d296eb0 ethernet --
ens161 502010c6-1f40-4444-b16d-fc17562c1356 ethernet --
关闭网络连接
语法:nmcli c down 网卡名称
示例:关闭ens161
bash
[root@redhat12 ~]# nmcli c down ens161
删除网络连接
语法:nmcli c del 网卡名称
示例:将上面添加的ens161删除
bash
# 查看网络设备
[root@redhat12 ~]# nmcli c show
NAME UUID TYPE DEVICE
ens160 1f4bab4b-1e0f-3acd-bc77-2ee0eb673b39 ethernet ens160
lo aa0c7569-eafb-4024-bf36-51f375e06fec loopback lo
ens161 8773e7b4-f77e-46b8-a868-fd0f2d296eb0 ethernet --
ens161 502010c6-1f40-4444-b16d-fc17562c1356 ethernet --
# 删除名为ens161 的网络设备
[root@redhat12 ~]# nmcli c del ens161
Connection 'ens161' (8773e7b4-f77e-46b8-a868-fd0f2d296eb0) successfully deleted.
Connection 'ens161' (502010c6-1f40-4444-b16d-fc17562c1356) successfully deleted.
# 查看删除之后网络设备
[root@redhat12 ~]# nmcli c show
NAME UUID TYPE DEVICE
ens160 1f4bab4b-1e0f-3acd-bc77-2ee0eb673b39 ethernet ens160
lo aa0c7569-eafb-4024-bf36-51f375e06fec loopback lo
修改配置文件
在Redhat9中,已经不推荐去修改配置文件了,而是推荐使用nmcli命令去配置。
这个网络的配置文件的路径是:/etc/NetworkManager/system-connections目录下以设备名开头的文件。
注意:当执行nmcli命令后,就会向这个文件写入配置数据
bash
# 编辑网络配置文件
[root@redhat12 ~]# vim /etc/NetworkManager/system-connections/ens160.nmconnection
# 文件的内容如下:
[connection] # 网络连接配置
id=ens160 # 网卡标识,必须唯一,用于连接,它可以和设备名称不一致
uuid=1f4bab4b-1e0f-3acd-bc77-2ee0eb673b39 # 网络的设备唯一标识
type=ethernet # 网络类型,默认是以太网
autoconnect-priority=-999 # 自动连接的策略
interface-name=ens160 # 指定网卡名称,它就是设备名称
timestamp=1759993934 # 创建时间戳,当前时间与1970年1月1日0点0分0秒的差值
[ethernet] # 网络类型
[ipv4] # ipv4的配置
address1=192.168.214.124/24,192.168.214.2 # ip地址和网关
address2=192.168.214.121/24 # ip地址
dns=223.5.5.5; # dns. 多个之间使用分号分隔
method=manual # IP类型:manual表示手动,这里可以指定static表示静态,而dhcp表示动态获取
[ipv6] # ipv6的配置
addr-gen-mode=eui64
method=auto
[proxy]
可视化配置
可以使用nmtui命令来进行可视化配置,它这种方式只能有图形界面才可以。
ping命令
作用:
- 用来检测网络是否流畅
- 根据域名得到服务的IP
- 根据ping返回的TTL值来判断对方使用的系统及经过的路由器数量
语法:ping [选项] 目标主机IP或域名
选项:
- -c 数字:用于指定ping的次数
- -s 字节数:设置ping命令发出的信息包的大小
- -i 时间间隔:设置前后两次发送ICMP消息包之间的时间间隔。
- -t 设置存活时间TTL(Time To live)
示例:
bash
# 会一直检测
[root@redhat12 ~]# ping www.baidu.com
PING www.a.shifen.com (183.2.172.17) 56(84) bytes of data.
64 bytes from 183.2.172.17 (183.2.172.17): icmp_seq=1 ttl=128 time=51.0 ms
64 bytes from 183.2.172.17 (183.2.172.17): icmp_seq=2 ttl=128 time=49.7 ms
64 bytes from 183.2.172.17 (183.2.172.17): icmp_seq=3 ttl=128 time=37.4 ms
64 bytes from 183.2.172.17 (183.2.172.17): icmp_seq=4 ttl=128 time=56.0 ms
# 只检测3次
[root@redhat12 ~]# ping -c 3 www.baidu.com
PING www.a.shifen.com (183.2.172.177) 56(84) bytes of data.
64 bytes from 183.2.172.177 (183.2.172.177): icmp_seq=1 ttl=128 time=130 ms
64 bytes from 183.2.172.177 (183.2.172.177): icmp_seq=2 ttl=128 time=157 ms
64 bytes from 183.2.172.177 (183.2.172.177): icmp_seq=3 ttl=128 time=47.0 ms
--- www.a.shifen.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 47.010/111.336/156.526/46.712 ms
[root@redhat12 ~]# ping -c2 -s32 www.baidu.com
PING www.a.shifen.com (183.2.172.17) 32(60) bytes of data.
40 bytes from 183.2.172.17 (183.2.172.17): icmp_seq=1 ttl=128 time=134 ms
40 bytes from 183.2.172.17 (183.2.172.17): icmp_seq=2 ttl=128 time=152 ms
--- www.a.shifen.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 134.428/143.186/151.945/8.758 ms
显示的内容说明:
- bytes: 数据包大小,单位字节
- time: 响应的时间,时间越小,速度越快
- ttl: 表示DNS记录在DNS服务器上的存活时间
通过域名访问主机
使用:通过配置/etc/hosts文件实现域名的静态解析。
示例:
bash
# 编写域名主机映射文件
[root@redhat12 ~]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.214.121 www.baidu.com # 增加一行,格式是:ip 域名
保存退出
为什么要配置这个文件
原因:域名一般不会有变化,而IP可能会变化,通过这个文件的配置,在后续使用的地方就可以不写IP地址,而是写映射的主机名称,这样就更方便。
在windows中也有这个文件,路径为:C:\Windows\System32\drivers\etc\hosts
从网站下载文件
wget命令
作用:用于在终端命令中下载网络文件
格式:wget [选项] URL
选项:
- -P: 下载到指定的目录
- -t: 最大尝试次数
- -b:后台模式下载
- -c: 断点续传
- -p:下载页面所有资源
- -r:递归下载
示例:
bash
# 下载到当前目录
[root@redhat12 ~]# wget https://nginx.org/download/nginx-1.28.0.tar.gz
--2025-10-09 21:59:52-- https://nginx.org/download/nginx-1.28.0.tar.gz
Resolving nginx.org (nginx.org)... 3.125.197.172, 52.58.199.22, 2a05:d014:5c0:2600::6, ...
Connecting to nginx.org (nginx.org)|3.125.197.172|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1280111 (1.2M) [application/octet-stream]
Saving to: 'nginx-1.28.0.tar.gz'
nginx-1.28.0.tar.gz 100%[====================================================================>] 1.22M 426KB/s in 2.9s
2025-10-09 21:59:57 (426 KB/s) - 'nginx-1.28.0.tar.gz' saved [1280111/1280111]
[root@redhat12 ~]# ll
total 1256
-rw-------. 1 root root 1200 Sep 13 18:34 anaconda-ks.cfg
-rw-r--r--. 1 root root 1280111 Apr 23 19:55 nginx-1.28.0.tar.gz
# 下载到指定目录
[root@redhat12 ~]# wget -P Desktop https://nginx.org/download/nginx-1.28.0.tar.gz
--2025-10-09 22:02:01-- https://nginx.org/download/nginx-1.28.0.tar.gz
Resolving nginx.org (nginx.org)... 52.58.199.22, 3.125.197.172, 2a05:d014:5c0:2600::6, ...
Connecting to nginx.org (nginx.org)|52.58.199.22|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1280111 (1.2M) [application/octet-stream]
Saving to: 'Desktop/nginx-1.28.0.tar.gz.1'
nginx-1.28.0.tar.gz.1 100%[====================================================================>] 1.22M 750KB/s in 1.7s
2025-10-09 22:02:05 (750 KB/s) - 'Desktop/nginx-1.28.0.tar.gz.1' saved [1280111/1280111]
# 查看指定目录
[root@redhat12 ~]# ls Desktop/
nginx-1.28.0.tar.gz nginx-1.28.0.tar.gz.1
curl命令
作用:通过http或者https或者ftp等方式下载或上传文件。
格式:curl [选项] URL
选项:
- -A :设置用户代理,如模拟浏览器
- -C : 断点续传
- -e/--referer : 来源网址
- -o/--output : 把输出写到文件中
- -O/--remote-name:把输出写到文件中并保留远程文件
- -u/--user
<user[:passwd]>
:设置权限 - -w/--write-out : 输出内容
- -l: 只显示http reponse头的信息
- -d/--data
<data>
: 发送POST请求
使用:
1)基本使用
bash
[root@redhat12 ~]# curl https://nginx.org/download.html
2)保存文件页面
bash
[root@redhat12 ~]# curl https://nginx.org/download.html > dowmload.html
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1943 100 1943 0 0 1528 0 0:00:01 0:00:01 --:--:-- 1528
[root@redhat12 ~]# ls dowmload.html
dowmload.html
或者使用-o选项:
bash
[root@redhat12 ~]# curl https://nginx.org/download.html -o dowmload.html
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1943 100 1943 0 0 879 0 0:00:02 0:00:02 --:--:-- 879
[root@redhat12 ~]# ls
anaconda-ks.cfg Desktop dowmload.html nginx-1.28.0.tar.gz
3)显示头信息
bash
[root@redhat12 ~]# curl https://nginx.org/en/download.html -I
HTTP/1.1 200 OK
Server: nginx/1.29.0
Date: Thu, 09 Oct 2025 14:41:23 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 9367
Last-Modified: Wed, 08 Oct 2025 23:22:43 GMT
Connection: keep-alive
Keep-Alive: timeout=15
ETag: "68e6f243-2497"
Strict-Transport-Security: max-age=31536000