Linux上的curl和telnet
1. curl 工具
1.1. 工具介绍
curl是一个在命令行下工作的数据传输工具,它支持多种协议,包括HTTP、HTTPS、FTP等。它可以用来从一个服务器上下载文件,也可以用来发送各种类型的HTTP请求,如GET、POST等。curl非常灵活,它可以通过命令行选项进行各种配置,包括设置请求头、设置代理、进行文件上传等。
curl是一个非常强大的工具,被广泛应用于自动化任务、调试网络服务、下载文件等场景。在脚本编程中,curl也常被用来进行HTTP请求的发送和处理响应。
1.2.curl常用命令汇总
以下是一些常用的curl命令选项:
- -X, --request :指定HTTP请求方法,如GET、POST、PUT等。
curl -X POST http://example.com/api
-
-H, --header [header]:添加自定义的HTTP请求头。
curl -H "Content-Type: application/json" http://example.com/api -
-d, --data [data]:发送POST请求时的数据。
curl -d "username=user&password=pass" http://example.com/login -
-o, --output [file]:将下载的文件保存到指定文件中。
curl -o filename.txt http://example.com/file.txt -
-O, --remote-name:将下载的文件保存到当前目录,并使用远程文件名。
curl -O http://example.com/file.txt -
-i, --include:显示响应头信息。
curl -i http://example.com/ -
-v, --verbose:显示详细的请求和响应信息。
curl -v http://example.com/ -
-A, --user-agent [string]:设置用户代理信息。
curl -A "Mozilla/5.0" http://example.com/ -
-u, --user [user:password]:设置用户名和密码进行HTTP基本认证。
curl -u username:password http://example.com/
这些只是curl命令中的一部分选项,curl支持的功能非常丰富,你可以通过man curl命令来查看完整的文档或者访问curl的官方网站获取更多信息。
1.3.curl官网
curl
DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, TFTP, WS and WSS. curl supports TLS certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies (SOCKS4, SOCKS5, HTTP and HTTPS), HTTP/2, HTTP/3, cookies, user+password authentication (Basic, Plain, Digest, CRAM-MD5, SCRAM-SHA, NTLM, Negotiate, Kerberos, Bearer tokens and AWS Sigv4), file transfer resume, proxy tunneling, HSTS, Alt-Svc, unix domain sockets, HTTP compression (gzip, brotli and zstd), etags, parallel transfers, DNS-over-HTTPS and more.
DICT,FILE,FTP, FTPS, GOPHER, gopers, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMB, SMTP, SMTPS, TELNET, TFTP, WS和WSS。curl支持TLS证书,HTTP POST, HTTP PUT, FTP上传,基于HTTP表单的上传,代理(SOCKS4, SOCKS5, HTTP和HTTPS), HTTP/2, HTTP/3, cookie,用户+密码认证(Basic, Plain, Digest, CRAM-MD5, scam - sha, NTLM, Negotiate, Kerberos, Bearer令牌和AWS Sigv4),文件传输恢复,代理隧道,HSTS, Alt-Svc, unix域套接字,HTTP压缩(gzip, brotli和zstd), etags,并行传输,DNS-over-HTTPS等等。
1.4.接口访问案例
curl -k -X POST \ -H "Content-Type: application/json" \ -d '{ "pageIndex": 1, "pageSize": 10, "key": "sdsd"}' \ https://ip:port/search4Page
curl -X POST \ -H "Content-Type: application/json" \ -d '{ "pageIndex": 1, "pageSize": 10, "key": "sdsd"}' \ http://ip:port/search4Page
2. telnet工具
2.1.工具介绍
Telnet是一种网络协议,也是一个基于该协议的工具软件。它允许在网络上的两台计算机之间进行双向通信。Telnet协议是TCP/IP协议族中的一个应用层协议,它使用明文传输,不提供数据加密,因此在安全性方面存在一些问题,如密码等信息以明文形式传输,容易受到窃听攻击。
Telnet工具软件允许用户通过命令行界面连接到远程主机的Telnet服务,并在远程主机上执行命令。在Linux系统中,Telnet工具通常以telnet命令的形式提供。例如,要连接到远程主机,你可以使用以下命令:
telnet remote_host_name_or_ip
这将会建立到远程主机的Telnet连接。在连接建立后,你可以在命令行界面上输入命令并将其发送到远程主机。Telnet工具常用于远程登录和调试网络服务,但由于安全性问题,现在已经逐渐被SSH(Secure Shell)所取代。 SSH提供了加密的通信,更加安全可靠。
2.2.telnet常用命令汇总
在Linux中,Telnet工具的常用命令与其他平台上的Telnet工具相似。以下是一些在Linux中使用Telnet工具时常用的命令:
-
telnet [host] [port]:连接到指定的主机和端口。如果不指定端口,默认使用23端口。
telnet example.com 80 -
quit 或 exit:退出Telnet程序。
-
Ctrl+]:在Telnet会话中,使用Ctrl+]可以进入Telnet的命令模式。
-
Ctrl+C:在Telnet命令模式中,使用Ctrl+C可以中断当前操作。
-
send 或 ^]:在Telnet命令模式中,可以使用send或者Ctrl+]进入数据发送模式,然后输入要发送的数据。
-
close 或 logout:关闭Telnet连接。
-
display 或 show options:显示当前选项的设置。
-
set [option] [value]:设置Telnet会话的选项。
set localecho -
unset [option]:取消设置Telnet会话的选项。
unset localecho
这些命令允许你在Linux中使用Telnet工具连接到远程主机、发送数据、显示或设置会话选项等。 Telnet工具在Linux中通常是通过命令行来使用的,你可以在终端中直接输入这些命令来与远程主机进行通信。
3.telnet和curl的区别
Telnet和curl是两种不同的工具,用于不同的目的,有着不同的特点和功能。以下是它们之间的主要区别:
-
用途:
- Telnet:Telnet是一种用于远程登录到计算机系统的网络协议和工具。它允许用户在网络上的两台计算机之间进行双向通信,可以在远程主机上执行命令,查看文件等。Telnet的主要用途是远程登录和远程管理。
- curl:curl是一个用于数据传输的命令行工具,支持多种协议,包括HTTP、HTTPS、FTP等。它可以用来从一个服务器上下载文件,也可以用来发送各种类型的HTTP请求,如GET、POST等。curl的主要用途是在命令行中访问并下载网页、文件等。
-
协议支持:
- Telnet:Telnet协议是TCP/IP协议族中的一个应用层协议,它使用明文传输,不提供数据加密。Telnet主要用于远程登录和远程管理,如在远程服务器上执行命令、查看文件等。
- curl:curl支持多种协议,包括HTTP、HTTPS、FTP等。它可以用来与网络上的服务器进行通信,发送各种类型的HTTP请求,获取数据等。
-
安全性:
- Telnet:由于Telnet发送的数据是明文的,包括用户名、密码等敏感信息,因此在不受信任的网络上使用Telnet是不安全的,容易受到窃听攻击。在安全性方面,Telnet相对较差。
- curl:curl可以使用HTTPS协议进行安全的数据传输,通过SSL/TLS进行加密,保护数据在网络上传输的安全性。因此,在需要保护敏感数据的情况下,curl比Telnet更加安全可靠。
总的来说,Telnet和curl是两种不同的工具,各自适用于不同的场景。Telnet用于远程登录和远程管理,而curl用于数据传输和与网络服务器通信。在远程登录和数据传输时,为了保护数据的安全,应该优先选择安全性更好的工具,如SSH和curl。
