curl命令
Win10及以上系统默认已安装Curl,打开命令提示符输入 curl --help
,若显示帮助信息则无需安装
手动安装方法
- 官网下载:访问 curl官网 选择Windows版本curl for Windows
- 若需在 Windows XP 等旧系统使用,需选择更低版本(如 curl 7.56.1)
- 解压配置:将压缩包解压至指定目录(如
C:\curl
),右键“此电脑”→属性→高级系统设置→环境变量→Path中添加%CURL_HOME%\bin
- 验证安装:重启CMD输入
curl -V
显示版本号即成功
基础语法
curl [选项] [URL]
- URL:目标地址(如
https://example.com
)。 - 选项:控制请求行为,常用选项包括:
-X <方法>
:指定HTTP方法(如GET
、POST
、PUT
)。-H "头字段"
:添加请求头(如-H "Content-Type: application/json"
)。-d "数据"
:发送请求体(POST/PUT时常用)。-o <文件名>
:将输出保存到文件。-v
:显示详细请求/响应信息(调试用)。
常见场景示例
# 发送GET请求
curl https://api.example.com/data
curl -H "Authorization: Bearer token" https://api.example.com/protected # 发送POST请求
curl -X POST -d "name=John&age=30" https://api.example.com/users
curl -X POST -H "Content-Type: application/json" -d "{\"name\":\"John\"}" https://api.example.com/users # 下载文件
curl -o output.zip https://example.com/file.zip
# 上传文件
curl -F "file=@localfile.txt" https://example.com/upload
Netstat 详解:网络连接统计工具
netstat
(Network Statistics)是 Windows、Linux/Unix 系统内置的网络诊断工具,用于显示网络连接、路由表、接口统计等信息。
Netstat 核心功能
- 显示活动网络连接(TCP/UDP)
- 查看监听端口(服务是否运行)
- 统计网络接口流量(发送/接收数据)
- 路由表信息(IP 路由路径)
- 协议统计(IPv4/IPv6 数据包分析)
基础语法
netstat [选项]
参数 | 说明 |
---|---|
-a | 显示所有连接和监听端口 |
-n | 以数字形式显示地址和端口(禁用域名解析) |
-o | 显示进程 PID(可配合任务管理器查杀恶意程序) |
-p TCP | 仅显示 TCP 协议连接 |
-e | 显示网络接口流量统计(收发字节数) |
-r | 显示路由表(类似 route print ) |
-s | 按协议显示统计信息(TCP/UDP/ICMP/IP) |
netstat -ano #查看所有活动连接
netstat -ano | findstr ":80" #检查 80 端口占用情况(排查 Web 服务冲突)
netstat -e 2 #监控实时网络流量(每 2 秒刷新)
netstat -s -p tcp #统计TCP协议相关数据(如重传率、连接数),辅助诊断网络性能问题
常见TCP状态说明:
- LISTEN:服务端监听端口
- ESTABLISHED:双向通信中
- TIME_WAIT:连接关闭后的等待状态(正常现象)
- SYN_SENT:客户端发起连接请求
- 解读:本地
192.168.1.2
通过临时端口54321
,正与远程服务器93.184.216.34
的 TCP 端口(443)进行双向通信中。
Telnet 客户端
在较新的 Windows 版本中,Telnet 客户端默认是禁用的,你需要手动启用它
点击"开始"→"控制器面板"→" 查看方式:类型"则点击"程序"("查看方式:大图标"则点击"程序和功能")→ "启动或关闭windows功能"→ 在"Windows功能"界面勾选Telnet服务器和客户端 →最后点击"确定"等待安装。
基本命令格式
telnet [目标IP/域名] [端口号]
- 启动 Telnet 会话:在命令提示符中输入
telnet
命令,然后按下回车键,会进入 Telnet 环境。在 Telnet 环境中,你可以使用一些内置命令,例如:open <主机名或 IP 地址> <端口号>
:用于连接到指定的远程主机和端口。
-
连接到远程服务器
假设你要连接到一个 IP 地址为
192.168.1.100
,端口号为8080
的远程 TCP 服务器,可以在命令提示符中输入以下命令 telnet 192.168.1.100 8080 -
如果连接成功,命令提示符窗口会变为空白,这表示你已经与远程服务器建立了 TCP 连接。
连接成功后,你可以在命令提示符中输入数据,然后按下回车键,这些数据会被发送到远程服务器。服务器接收到数据后,可能会返回相应的响应,响应数据会显示在命令提示符窗口中。
关闭连接
当你完成与远程服务器的通信后,
- 输入
Ctrl+]
进入Telnet命令模式,再输入quit
退出。 - 或者直接关闭终端窗口。
注意事项
- 安全性问题:Telnet 协议是明文传输的,这意味着在通信过程中,数据(包括用户名、密码等敏感信息)会以明文形式在网络中传输,容易被窃取或篡改。因此,在实际使用中,建议优先使用更安全的协议,如 SSH。
- 防火墙限制:如果你的计算机或远程服务器上启用了防火墙,可能会阻止 Telnet 连接。你需要确保防火墙允许 Telnet 流量通过,或者在防火墙中开放相应的端口。
- 服务器配置:远程服务器需要正确配置并监听指定的端口,才能接受 Telnet 连接。如果服务器没有开启相应的服务或端口,连接将会失败。
go tcp服务器端代码
package mainimport ("bufio""fmt""net"
)func handleConnection(conn net.Conn) {defer conn.Close()reader := bufio.NewReader(conn)for {// 读取客户端发送的数据message, err := reader.ReadString('\n')if err != nil {fmt.Println("读取数据错误:", err)break}fmt.Printf("收到消息: %s", message)// 回显消息给客户端conn.Write([]byte("Echo: " + message))}
}func main() {// 监听本地 8000 端口listener, err := net.Listen("tcp", ":8000")if err != nil {fmt.Println("监听端口失败:", err)return}defer listener.Close()fmt.Println("服务器正在监听端口 8000...")for {// 接受客户端连接conn, err := listener.Accept()if err != nil {fmt.Println("接受连接失败:", err)continue}// 处理连接(可以并发处理多个连接)go handleConnection(conn)}
}