网络服务操作
# 1. 管理系统服务 (systemctl)
systemctl命令是CentOS 7及以上版本引入的新的服务管理工具,用于管理系统服务、单位和系统状态。它提供了更强大和灵活的功能,适用于基于systemd的发行版。
**Linux系统很多软件(内置或第三方)均支持使用systemctl命令控制:启动、停止、开机自启能够被systemctl管理的软件,一般也称之为服务。**一些系统内置的服务,如NetworkManager(主网络服务)、network(副网络服务)、firewalld(防火墙服务)和ssh(远程终端)等,可以通过systemctl命令进行控制。
# 1.1 systemctl的基本操作和命令
启动服务:
systemctl start 服务名
1启动一个服务。如果服务已安装但未运行,此命令将启动它。
停止服务:
systemctl stop 服务名
1停止正在运行的服务。
重启服务:
systemctl restart 服务名
1如果服务已经在运行,此命令会先停止服务,然后再重新启动它。如果服务未运行,就直接启动服务。
重新加载服务:
systemctl reload 服务名
1重新加载服务的配置文件。如果服务支持在不中断当前运行状态的情况下重新加载配置,这是一个很有用的命令。
启用服务:
systemctl enable 服务名
1设置服务为开机自启。这意味着在系统下次启动时,服务会自动启动。
禁用服务:
systemctl disable 服务名
1取消服务的开机自启设置。
检查服务状态:
systemctl status 服务名
1显示服务的当前状态,包括是否正在运行、是否开机自启等信息。
检查服务是否活动(正在运行):
systemctl is-active 服务名
1检查服务当前是否处于活动状态。
检查服务是否开机自启:
systemctl is-enabled 服务名
1检查服务是否被设置为开机自启。
列出所有服务:
systemctl list-units --type=service
1显示系统中所有已安装的服务。
列出正在运行的服务:
systemctl list-units --type=service --state=running
1仅显示当前正在运行的服务。
注意事项
- 对于大多数
systemctl
命令,您需要具有root权限,因此可能需要在命令前添加sudo
。 systemctl
命令不仅限于管理服务,它还可以用于管理其他类型的“单位”,如挂载点、定时任务等。- 通过使用
systemctl
命令,系统管理员可以方便地启动、停止、重启服务,管理服务的开机自启设置,以及查看系统当前的服务状态。 - 对于一些复杂的服务,可能还需要了解其特定的配置文件和日志文件位置,以便进行更深入的管理和故障排查。
# 1.2 列出所有服务参数解释
执行了systemctl list-units --type=service
命令来列出所有服务,下面是一个输出示例及其各个参数的说明:
UNIT LOAD ACTIVE SUB DESCRIPTION
apache2.service loaded active running Apache HTTP Server
cron.service loaded active running Regular background program processing daemon
ssh.service loaded active running OpenBSD Secure Shell server
mysql.service loaded active running MySQL Community Server
network.service loaded failed failed LSB: Bring up/down networking
2
3
4
5
6
- UNIT:服务的唯一标识符,通常是服务的名称加上
.service
后缀。 - LOAD:表示单位文件是否已经被加载到systemd的配置中。
loaded
表示已加载;如果是not-found
,则表示未找到单位文件。 - ACTIVE:服务的活动状态。
active
表示正在运行;inactive
表示未运行;failed
表示服务尝试启动但失败了。 - SUB:更详细的活动状态信息。对于服务来说,常见的状态包括
running
(正在运行)、exited
(已退出)、failed
(失败)等。 - DESCRIPTION:对服务的简短描述,帮助用户了解服务的作用。
使用systemctl list-units --type=service的优势
- 一目了然:快速获取系统中所有服务的状态,无需逐一查询。
- 故障排查:通过查看服务状态(尤其是那些标记为
failed
的服务),可以迅速定位系统问题。 - 管理便捷:对于需要进一步管理的服务,如需要重启或停止的服务,可直接使用
systemctl
命令进行操作。
systemctl
作为systemd
的主要管理工具,不仅提供了基本的启动、停止、重启和查看服务状态的功能,还支持一些高级用法,这些高级用法能帮助系统管理员更有效地管理系统和服务。以下是一些实用的systemctl
高级用法:
# 1.3 工作中一些高级用法
- 查看一个服务的服务名:
- 使用
systemctl list-units --type=service
命令列出所有服务,然后通过grep
工具搜索特定的服务。例如,查找所有包含mysql
的服务名称:systemctl list-units --type=service | grep mysql
1 - 这样可以找到系统中与MySQL相关的所有服务及其服务名。
- 检查服务的启动失败原因:
- 使用
systemctl status 服务名
命令可以查看服务的状态及最近的日志信息。例如:systemctl status mysqld
1 - 通过这个命令的输出,可以查看到服务启动失败的具体错误信息和日志。
3, 列出启动失败的服务:
- 使用
systemctl
命令列出所有启动失败的服务:systemctl --failed
1
- 创建系统快照:
systemd
允许你创建系统状态的快照,以便之后可以恢复到该状态:systemctl snapshot mySnapshot
1
- 恢复系统快照:
- 如果需要,可以恢复之前创建的快照:
systemctl isolate mySnapshot
1
# 2. 管理系统服务(service)
service命令是CentOS上默认的服务管理工具,用于启动、停止、重启和查询服务的状态。它提供了简单的接口,适用于基于SysV init的发行版。
# 说明:service命令用于运行System V init脚本,这些脚本一般位于/etc/init.d文件下
# 这个命令可以直接运行这个文件夹里面的脚本,而不用加上路径
service ssh status # 查看服务状态
service --status-all # 查看所有服务状态
service ssh restart # 重启服务
2
3
4
5
注意事项
- 路径:使用
service
命令时,不需要指定服务脚本的完整路径。系统会自动在/etc/init.d/
目录下查找匹配的服务脚本。 - 权限:大多数
service
命令(尤其是启动和停止服务的命令)需要超级用户权限,因此在执行这些命令时可能需要使用sudo
。 - 开机自启:虽然
service
命令本身不直接管理服务的开机自启,但可以配合chkconfig
(在较老的系统中)或systemctl
(在使用systemd的系统中)命令来配置服务的自启动。 - 迁移到systemd:如果您的系统使用的是systemd(如CentOS 7及以上版本),推荐使用
systemctl
命令来管理服务,因为它提供了更多的功能和更好的集成。
# 3. 防火墙操作(firewalld)
在Linux系统中,防火墙是用于监控和控制进出网络流量的关键安全工具。iptables
和firewalld
是两种常用的防火墙管理工具,分别在较老的Linux发行版和基于systemd的新版系统中使用。
# 3.1 iptables操作(CentOS 6)
在CentOS 6及以前版本中,iptables
服务是默认的防火墙工具。以下是通过service
和chkconfig
命令管理iptables
服务的基本操作:
# 查看iptables服务的状态
service iptables status
# 开启iptables服务
service iptables start
# 停止iptables服务
service iptables stop
# 重启iptables服务
service iptables restart
# 关闭iptables服务的开机自启动
chkconfig iptables off
# 开启iptables服务的开机自启动
chkconfig iptables on
2
3
4
5
6
7
8
9
10
11
12
service iptables status/start/stop/restart
:这些命令用来查看、启动、停止或重启iptables
服务。chkconfig iptables off/on
:chkconfig
命令用于管理服务的开机自启动。off
参数禁用iptables
服务的自启动,而on
参数则启用自启动。
# 3.2 firewalld操作(CentOS 7及以上)
在基于systemd的系统(如CentOS 7及以上版本)中,firewalld
成为了默认的防火墙管理工具,使用systemctl
命令来进行管理:
# 查看firewalld防火墙的状态
systemctl status firewalld.service
# 关闭运行的firewalld防火墙
systemctl stop firewalld.service
# 永久禁止firewalld服务
systemctl disable firewalld.service
2
3
4
5
6
systemctl status firewalld.service
:显示firewalld
服务的当前状态,包括是否正在运行。systemctl stop firewalld.service
:停止当前运行的firewalld
服务,防火墙规则不再生效,但在系统重启后firewalld
可能会自动启动。systemctl disable firewalld.service
:禁用firewalld
服务,防止其在系统启动时自动运行。这对于想要永久禁用防火墙的用户很有用。
注意事项
- 使用
iptables
或firewalld
进行防火墙配置时,需要谨慎操作,以免意外阻断正常的网络连接。 - 在修改防火墙规则后,建议立即检查网络连接的相关功能,确保规则更改按预期工作。
firewalld
提供了动态防火墙管理,支持无需重启服务即可应用规则变更,这使得管理操作更为灵活。- 在使用
firewalld
时,可以通过firewall-cmd
命令进行更为详细的防火墙设置,如规则添加、区域管理等。
# 4. 开放/关闭防火墙端口
在使用firewalld
管理防火墙规则时,开放或关闭特定端口是常见的操作之一,这对于控制对特定服务的访问非常重要。以下是如何使用firewalld
命令来管理防火墙端口的详细指南:
# 4.1 开放防火墙端口
开放端口允许外部网络的数据流通过指定端口访问本地服务。这对于运行Web服务器、数据库服务器等服务的系统尤其重要。
sudo firewall-cmd --zone=public --add-port=[端口号]/tcp --permanent
--zone=public
:指定操作的区域为public
。firewalld
支持多个区域(zones),每个区域有其特定的规则和策略。public
是一个常用区域,适用于公共网络。--add-port=[端口号]/tcp
:指定要开放的端口号和协议(TCP或UDP)。替换[端口号]
为实际的端口数字。--permanent
:使规则永久生效,即使重启防火墙服务或系统后,规则仍然有效。
# 4.2 关闭防火墙端口
关闭端口是为了阻止外部访问通过特定端口进入本地服务,增加系统安全性。
sudo firewall-cmd --zone=public --remove-port=[端口号]/tcp --permanent
此命令与开放端口的命令相似,但使用--remove-port
选项来指定需要关闭的端口。
# 4.3 重新加载防火墙规则
更改防火墙规则后,需要重新加载firewalld
以应用新的规则。
sudo firewall-cmd --reload
# 4.4 查看开放的端口
查看当前在public
区域开放的端口,有助于了解哪些服务对外提供访问。
sudo firewall-cmd --zone=public --list-ports
注意事项
- 开放和关闭端口操作应谨慎进行,以避免无意中暴露敏感服务或阻断正常的网络访问。
- 在应用任何更改之前,最好先验证
firewalld
的当前配置,特别是在生产环境中。 - 了解
firewalld
的区域(zones)概念和如何使用它们来细化安全策略,可以帮助更好地组织防火墙规则。
# 5. 测试端口开放情况(nmap/telnet)
在网络安全和系统管理中,了解和控制哪些端口处于开放状态是非常重要的。nmap
和telnet
是两个强大的工具,它们可以帮助我们检测和测试端口的状态。
- 公认端口:1~1023,用于系统内置或常用知名软件绑定使用
- 注册端口:1024~49151,用于松散绑定使用(用户自定义)
- 动态端口: 49152~65535,用于临时使用(多用于出口)
# 5.1 nmap命令
nmap
(Network Mapper)是一个开源工具,用于网络发现和安全审计。它可以扫描大量的网络或单个主机以确定哪些服务和端口是开放的。
基本端口扫描:
nmap [被查看的IP地址]
1扫描目标IP地址上开放的端口。如果未指定端口范围,nmap会扫描已知的1000个最常用的端口。
指定端口范围扫描:
nmap -p 1-100 [IP地址]
1扫描从端口1到端口100的范围。
快速扫描:
nmap -F [IP地址]
1执行快速扫描,只扫描常见的端口。
保存扫描结果:
nmap -oN output.txt [IP地址]
1将扫描结果以普通文本格式保存到
output.txt
文件中。端口和服务版本检测:
nmap -sV [IP地址]
1检测端口上运行的服务的版本信息。
# 5.2 nmap命令输出解释
以下是一个nmap`命令输出示例,我将解释输出中每个参数的含义。
- Starting Nmap [version] (URL) at [time]:表示
nmap
扫描的开始,显示了使用的Nmap版本、官方网站URL和开始扫描的时间。 - Nmap scan report for [host] ([IP]):扫描报告的头部,显示了被扫描的主机名和IP地址。
- Host is up ([latency]):表示目标主机是在线的,以及其响应的延迟时间。
- Not shown: [number] closed ports:未在报告中显示的关闭端口数量。
Starting Nmap 7.80 ( https://nmap.org ) at 2021-03-01 12:00 EDT
Nmap scan report for example.com (93.184.216.34)
Host is up (0.080s latency).
Not shown: 990 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
443/tcp open https
993/tcp open imaps
995/tcp open pop3s
3306/tcp open mysql
5432/tcp open postgresql
8080/tcp open http-proxy
8443/tcp open https-alt
8888/tcp open sun-answerbook
Nmap done: 1 IP address (1 host up) scanned in 9.76 seconds
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
- PORT:被扫描的端口号。
- STATE:端口的状态。可能的状态有:
- open:端口是开放的,有应用程序在监听。
- closed:端口是关闭的,没有应用程序监听该端口。
- filtered:由于网络过滤,无法确定端口状态。
- SERVICE:在对应端口上运行的服务或协议的名称。例如,
ssh
、http
等。 - Nmap done: 1 IP address (1 host up) scanned in [time]:扫描完成的总结,显示了扫描的IP地址数量、在线的主机数量和总扫描耗时。
# 5.3 telnet命令
telnet
是另一种测试特定端口是否开放的工具。它尝试建立TCP连接到指定的IP地址和端口。如果连接成功,则表明端口是开放的;如果失败,则端口可能被关闭或被防火墙规则阻止。
测试端口连接:
telnet [IP地址] [端口号]
1例如,测试本机的80端口:
telnet 127.0.0.1 80
1如果命令成功连接到指定端口,则表明该端口是开放的。
telnet
是一个简单而强大的网络工具,尽管它在现代操作系统中的使用越来越少,但在进行网络服务测试和故障诊断时,telnet
仍然是一个非常有用的工具。
# 5.4 telnet命令输出解释
由于telnet
命令的输出相对简单,并且主要反映的是尝试连接到指定主机和端口时的成功或失败状态,下面提供了一个模拟的telnet
命令成功连接的输出示例及其解释。
Trying 93.184.216.34...
Connected to example.com.
Escape character is '^]'.
2
3
Trying [IP address]...:这一行表示
telnet
正在尝试连接到指定的IP地址。这是连接过程的开始。Connected to [hostname].:当看到这一行时,表示
telnet
已成功建立到指定主机的连接。这里的主机名(hostname)是根据提供的IP地址解析得到的,如果telnet
是直接使用主机名进行连接的,则这里显示的将是输入的那个主机名。Escape character is '^]'.:这一行告诉用户,可以使用特定的转义字符(通常是
Ctrl+]
)退出telnet
会话。这个转义字符可以带你进入telnet
命令行模式,从那里你可以关闭连接或进行其他操作。如果连接失败,
telnet
命令可能会显示如“Connection refused”或“Unable to connect to remote host”等消息,这表示目标端口可能不在监听状态,或者网络之间存在阻断(例如,防火墙规则)。
注意事项
- 权限:安装
nmap
和telnet
可能需要管理员权限。使用sudo
安装这些工具。 - 安全性:在使用
nmap
对外部主机进行扫描时,请确保你有权限这么做,以避免法律问题。 - 端口状态:开放的端口表示有应用程序监听在该端口上等待接收外部连接。这对于运行Web服务器、数据库等服务是必需的,但未使用的开放端口可能会增加安全风险。
- 防火墙影响:即使服务在特定端口上监听,如果防火墙规则阻止了访问,该端口对外部检测仍然会显示为关闭。
# 6. 查看端口占用情况(netstat)
netstat
是一个极其有用的网络工具,用于显示网络连接、路由表、接口统计、伪装连接以及多播成员资格等信息。对于查看端口占用情况,netstat
提供了多个选项来帮助用户识别哪些端口正在使用以及这些端口被哪些进程使用。
# 查看所有活动连接和监听端口
netstat -a
# 查看所有被占用的端口号和绑定的进程
netstat -a -p
# 查看指定端口的占用情况
netstat -an | grep <端口号>
# 除了显示与特定端口号相关的网络连接和监听端口外,还会显示相关进程的信息
netstat -anp | grep <端口号>
2
3
4
5
6
7
8
9
10
11
-a
:显示所有活动连接和监听端口,包括TCP和UDP协议的所有端口。-n
:以数字形式显示地址和端口号,而不是尝试解析主机名、服务名和协议名。这可以加速显示速度,避免不必要的名称解析。-p
:显示每个连接或监听端口对应的进程ID和进程名。这个选项通常需要管理员权限来查看其他用户的进程信息。
注意事项
要使用
-p
选项查看进程信息,您可能需要以root用户执行netstat
命令,因为一些进程信息可能不对普通用户可见。netstat
命令是一种强大的工具,可以用来识别系统上可能存在的未授权的网络监听和连接,从而帮助识别潜在的安全威胁。在某些最新的Linux发行版中,
netstat
工具已被更现代的命令如ss
取代。虽然ss
命令提供了类似的功能,但netstat
仍然在很多系统中可用,且因其易用性而广受欢迎。使用
grep
过滤netstat
的输出可以帮助您快速定位到特定端口或进程的信息。这在诊断网络问题或检查系统上特定服务的状态时非常有用。
# 6.1 netstat -an | grep 22输出解释
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
2
tcp:表示连接的协议类型是TCP。
tcp6
表示基于IPv6的TCP连接。0(第一个0):表示发送队列的大小。这里的
0
意味着没有数据正在等待被网络对方确认。0(第二个0):表示接收队列的大小。同样的,
0
意味着没有数据正在等待被本地进程读取。0.0.0.0:22:表示服务器正在监听的地址和端口。
0.0.0.0
意味着服务器在所有IPv4地址上的22端口监听连接请求。对于IPv6,使用:::22
表示在所有IPv6地址上监听。0.0.0.0:*
或:::*
:表示远程地址和端口。*
表示服务器愿意接受任何IP地址的连接请求。LISTEN:表示套接字的状态,
LISTEN
状态意味着端口正在监听来自任何远程地址和端口的连接请求。
# 7. 查看端口占用情况(ss)
ss
(Socket Statistics)命令是一个用于检查套接字(sockets)统计信息的工具,它被设计为netstat
命令的更快更高效的替代品。ss
命令能够显示有关TCP、UDP、ICMP、RAW等协议的信息,包括开放的端口、正在使用的端口、各种状态的连接等。
# 7.1 ss命令的基本用法
查看所有连接:
ss
1查看监听中的端口:
ss -l
1查看TCP连接:
ss -t
1查看UDP连接:
ss -u
1查看所有连接并显示进程名:
ss -p
1过滤显示特定状态的连接(例如:established, listening):
ss state listening
1查看特定端口的使用情况(例如:查看80端口):
ss -ltn 'sport = :80'
1
# 7.2 常用选项解释
-l
:仅显示处于监听状态的套接字。-t
:仅显示TCP套接字。-u
:仅显示UDP套接字。-a
:显示所有套接字(默认情况下,ss不会显示处于TIME-WAIT状态的套接字)。-n
:不尝试解析服务名称(显示端口号而非服务名)。-p
:显示套接字关联的进程信息。需要有相应的权限(通常是root)来查看其他用户的进程信息。state
:用于过滤显示特定状态的套接字,如established
、listening
等。
注意事项
- 在使用
-p
选项时,为了查看所有进程的信息,你可能需要以root权限运行ss
命令。 ss
命令是一个非常强大的工具,可以用来快速诊断系统上的网络问题或进行安全审核。- 相比于
netstat
,ss
能够更快地提供大量的网络连接和统计信息,这在处理大量的网络连接时特别有用。 ss
命令是iproute2
软件包的一部分,在现代Linux发行版中通常预装了这个包。
# 7.3 ss命令输出解释
State Recv-Q Send-Q Local Address:Port Peer Address:Port
ESTAB 0 0 192.168.1.100:ssh 192.168.1.200:50792
LISTEN 0 128 0.0.0.0:http 0.0.0.0:*
LISTEN 0 128 [::]:http [::]:*
CLOSE-WAIT 32 0 192.168.1.100:42330 93.184.216.34:http
2
3
4
5
State:表示套接字的状态。常见的状态有
LISTEN
(监听中)、ESTAB
(已建立连接)、CLOSE-WAIT
(远端关闭,等待本地关闭)等。Recv-Q 和 Send-Q:
- Recv-Q:接收队列中的数据量,表示正在等待本地应用程序读取的数据。
- Send-Q:发送队列中的数据量,表示尚未确认的数据,等待发送或确认。
Local Address:Port:本地端的地址和端口号。例如,
192.168.1.100:ssh
表示本地地址是192.168.1.100
,端口是 SSH(22)。Peer Address:Port:远端(对端)的地址和端口号。例如,
192.168.1.200:50792
表示远端地址是192.168.1.200
,端口是50792
。0.0.0.0 和 [::]:
0.0.0.0
表示监听所有IPv4地址,[::]
表示监听所有IPv6地址。*
(在端口后):表示套接字监听所有可能的远端端口。
特别说明
ESTAB(Established)状态表示一个已经建立的连接,即数据可以在本地和远端之间传输。
LISTEN状态表示套接字正在监听进入连接请求;对于TCP,这意味着应用程序正在等待
accept
一个连接。CLOSE-WAIT状态表示远端已经关闭了连接,本地端尚未关闭。
0.0.0.0:http
和[::]:http
这两行展示了服务既监听IPv4又监听IPv6上的HTTP(80)端口。
# 8. 查看网络信息 (ifconfig)
ifconfig
(Interface Configuration)命令是Linux和Unix系统中用于配置、管理网络接口参数的传统工具。它可以显示和设置网络接口的各种网络参数,如IP地址、子网掩码、广播地址等。随着ip
命令的推广,ifconfig
逐渐被视为过时,但在很多系统和场景中仍然广泛使用。
# 查看所有网络接口的配置信息
ifconfig
# 显示指定网络接口(例如:eth0)的统计信息
ifconfig eth0
# 为接口eth0配置IP地址
ifconfig eth0 192.168.0.10
# 为接口eth0配置子网掩码
ifconfig eth0 netmask 255.255.255.0
# 激活接口eth0
ifconfig eth0 up
# 禁用接口eth0
ifconfig eth0 down
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
无参数:运行
ifconfig
命令而不带任何参数将列出系统中所有激活的网络接口及其配置。接口名称(如:eth0):指定要操作或查询的网络接口。在现代系统中,接口名称可能与传统的
eth0
、eth1
等不同,采用新的命名规则如enp0s3
。IP地址:使用
ifconfig
命令为网络接口配置IP地址。格式为ifconfig <接口名称> <IP地址>
。子网掩码:通过
netmask
选项为网络接口指定子网掩码。格式为ifconfig <接口名称> netmask <子网掩码>
。up
和down
:up
选项用于激活网络接口,使其能够发送和接收数据。down
选项则是禁用网络接口,使其停止工作。
注意事项
在大多数现代Linux发行版中,
ifconfig
命令可能不预装。在这些系统中,您可以使用ip
命令作为替代,或安装net-tools
包以获取ifconfig
。为了修改网络接口设置,通常需要root权限,因此在执行上述命令时可能需要在前面加上
sudo
。ifconfig
命令提供的是即时的网络配置更改,这些更改在系统重启后不会保留。要使网络配置持久化,需要编辑系统的网络配置文件或使用网络管理器。对于复杂的网络配置任务,考虑使用更现代的工具如
nmcli
(NetworkManager的命令行界面)、nmtui
(NetworkManager的文本用户界面)或直接编辑网络配置文件。
通过使用ifconfig
命令,用户和管理员可以管理系统的网络接口,进行故障排除和网络配置的调整。尽管ifconfig
在新版系统中逐渐被ip
命令取代,但它仍然是理解网络配置的一个重要工具。
# 9. 网络状态监控(sar)
查看网络的相关统计(sar命令非常复杂,这里仅简单用于统计网络)
sar -n DEV num1 num2 # 查看网络情况
选项:-n ,查看网络,DEV表示查看网络接口
# 10. 测试网络连接(ping)
ping
命令用于测试与目标主机之间的网络连接。它发送ICMP回显请求到目标主机,并等待接收回显应答。
语法:ping [选项] 目标主机
ping example.com # 向example.com发送ping请求。
ping -c 5 -i 1 example.com # 向example.com发送5个ping请求,每个请求间隔1秒。
2
3
-c <次数>
:指定发送ping请求的次数。-i <间隔>
:指定发送ping请求的时间间隔。-s <大小>
:指定ping请求的数据包大小。-t <TTL>
:指定ping请求的生存时间(TTL)。
# 11. 发起网络请求(curl)
curl
命令用于在终端中进行网络请求。它支持多种协议,如HTTP、FTP、SMTP等,并提供了丰富的选项和功能。
# 语法:curl [选项] URL
curl https://example.com # 向example.com发送GET请求
# 向example.com发送POST请求,包含JSON数据。
curl -X POST -H "Content-Type: application/json" -d '{"key": "value"}' https://example.com/api
2
3
4
-X <方法>
:指定HTTP请求方法。-H <头部信息>
:指定HTTP请求头部信息。-d <数据>
:指定HTTP请求的数据。-o <文件>
:将服务器响应保存到指定文件。-L
:跟随重定向。
# 12. 从网络上下载文件(wget)
wget
命令功能强大,支持多种下载操作和选项。它可以用于从网络上下载文件,支持断点续传、递归下载、限速等功能,是一个非常实用的命令行工具。
# 13. 文件传输协议(ftp)
FTP
是一种用于在网络上传输文件的标准协议。它允许用户通过网络在客户端和服务器之间传输文件。
ftp IP/hostname //连接到指定的 FTP 服务器。
mls *.html - //显示远程主机上文件列表
2
# 14. 安全复制协议(scp)
SCP
是一种在网络上安全地复制文件的协议,它使用 SSH(安全外壳协议)进行加密和身份验证。
语法:scp [选项] 源文件 目标文件
# 将本地文件复制到远程服务器
scp local_file.txt user@remote_host:/remote/path/
# 将远程文件复制到本地系统
scp user@remote_host:/remote/path/remote_file.txt local_path/
# 递归复制目录及其内容
scp -r local_directory user@remote_host:/remote/path/
2
3
4
5
6
7
-P
:指定远程服务器的 SSH 端口号。-r
:递归地复制目录及其内容。-p
:保留文件的原始修改时间和权限。-v
:显示详细的调试信息。-C
:开启压缩传输,加快传输速度。-i
:指定用于身份验证的私钥文件。