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)}
}