Linux網絡命令:網絡工具socat詳解

目錄

一、概述

二、基本用法

1、基本語法

2、常用選項

3、獲取幫助

三、用法示例

1. 監聽 TCP 端口并回顯接收到的數據

2. 通過 TCP 端口轉發數據到 UNIX 套接字

3. 將文件內容發送到 TCP 端口:

4. 使用偽終端進行串行通信??

5、啟動一個TCP服務器

6、建立一個TCP連接

7、讀取文件并發送到網絡

8、從網絡接收數據并保存到文件

四、高級用法

1、使用 EXEC 參數執行腳本或程序

2、設置超時和重試:

3、使用 UDP 協議:

4、綁定到特定的網絡接口:

5、啟用 SSL/TLS 加密:

6、啟用代理服務器:

五、功能和用途

1、主要功能

(1)數據轉發

(2)網絡連接

(3)流量重定向

(4)數據轉換

(5)代理功能

2、常見用途

3、特性

(1)協議支持

(2)數據通道

(3)安全性

(4)靈活性

六、安裝

1、包管理器安裝

(1)安裝命令

(2)實際操作

2、編譯安裝

七、其他

1、注意事項

2、安全事項


一、概述

????????socat 是一個多功能的網絡工具,用于在 Linux 和 Unix 系統中進行雙向數據傳輸。它的名字來源于 "Socket CAT",表示它可以像 cat 命令那樣處理數據流,但主要針對網絡套接字和其他數據源和目的地。

????????它可以被看作是 netcat(nc)的超級集,因為它不僅支持 TCP/UDP 流,還支持多種其他類型的連接,如 UNIX 域套接字、管道、文件、命名管道、串行端口、偽終端(pty)、OpenSSL 加密的套接字等。socat 的強大之處在于它能夠幾乎在任意兩個數據流之間創建雙向通道,從而提供了極高的靈活性和強大的功能。

????????socat是由 Donnie Berkholz 開發的,并且是開源的。

二、基本用法

1、基本語法

????????socat 的基本語法如下:

socat [options] <address> <address>

????????其中 <address> 指定了數據傳輸的源和目標。<address> 的格式由協議類型、地址和其他可能的選項組成,例如:

?????????TCP-LISTEN:8080,fork

????????表示監聽 TCP 端口 8080,并對每個連接創建一個新的子進程。

2、常用選項

- -d 或 --debug:增加調試信息的輸出。

- -v 或 --verbose:增加輸出的詳細程度。

- -t 或 --timeout:設置超時時間。

- -u:使用 UNIX 域套接字而不是 TCP/IP。

- TCP-LISTEN:<port>[,options]:監聽 TCP 端口。

- TCP:<host>:<port>:連接到指定的 TCP 主機和端口。

- UNIX-LISTEN:<path>[,options]:監聽 UNIX 域套接字。

- UNIX:<path>:連接到 UNIX 域套接字。

- EXEC:<command>:執行命令,并將其標準輸入輸出作為數據通道。

- PIPE:使用管道。

- FILE:<filename>:使用文件作為數據通道。

- PTY:創建偽終端。

3、獲取幫助

?????? 在linux的命令行輸入:

???????? socat -h

?????? 如下圖所示:

三、用法示例

1. 監聽 TCP 端口并回顯接收到的數據

?? ?? socat TCP-LISTEN:12345,fork EXEC:/bin/cat??

????????這條命令監聽 TCP 端口 12345,并對每個連接執行 cat 命令,將接收到的數據回顯回去。

2. 通過 TCP 端口轉發數據到 UNIX 套接字

??

?? socat TCP-LISTEN:12345,fork UNIX-CONNECT:/tmp/mysocket

????????監聽 TCP 端口 12345,并將接收到的數據轉發到 UNIX 套接字 /tmp/mysocket。

3. 將文件內容發送到 TCP 端口:

??? socat FILE:/path/to/file TCP:example.com:12345

????????將文件 /path/to/file 的內容發送到 example.com 的 TCP 端口 12345。

4. 使用偽終端進行串行通信??

?? socat PTY,link=/dev/ttyS0 TCP:example.com:12345

????????創建一個偽終端,并將其鏈接到 /dev/ttyS0(這通常用于模擬串行端口),然后將數據通過 TCP 發送到 example.com 的 12345 端口。注意,這里 /dev/ttyS0 只是一個示例,實際使用時可能需要不同的設備文件。

5、啟動一個TCP服務器

????????socat TCP-LISTEN:1234,reuseaddr,fork TCP:example.com:80

????????這條命令會啟動一個 TCP 服務器,監聽本地端口 1234,并且將接收到的數據轉發到目標服務器 example.com 的端口 80。

6、建立一個TCP連接

socat TCP:example.com:80,resolve,waitport=80 TCP:another.example.com:1234

????????這條命令會建立一個到 example.com 端口 80 的 TCP 連接,并將數據轉發到另一個服務器 another.example.com 的端口 1234。

7、讀取文件并發送到網絡

????????socat - TCP:example.com:80 < /path/to/file

這條命令會讀取本地文件 /path/to/file 并將其內容發送到 example.com 的端口 80。

8、從網絡接收數據并保存到文件

socat TCP:example.com:80 - | socat - file:/path/to/save/file

????????這條命令會從 example.com 的端口 80 接收數據,并通過管道將其保存到 /path/to/save/file 文件中。

四、高級用法

????????socat 的強大之處在于它支持多種選項和參數,可以用來定制網絡連接和數據轉換。以下是一些高級用法:

1、使用 EXEC 參數執行腳本或程序

? ? ? ? 在linux命令行輸入如下命令:

? ? socat TCP:example.com:80,exec=/bin/sh

?

2、設置超時和重試:

?? ? ? ? 在linux命令行輸入如下命令:

? socat TCP:example.com:80,connect-timeout=5,retries=3

?

3、使用 UDP 協議:

?? ? ? ? 在linux命令行輸入如下命令:

????????socat UDP4-DATAGRAM:1234->192.168.1.1:1234

?

4、綁定到特定的網絡接口:

?? ? ? ? 在linux命令行輸入如下命令:

????????? socat TCP-LISTEN:1234,interface=eth0

?

5、啟用 SSL/TLS 加密:

?? ? ? ? 在linux命令行輸入如下命令:

????????? socat TCP:example.com:443,cert=/path/to/cert.pem,key=/path/to/key.pem

?

6、啟用代理服務器:

?? ? ? ? 在linux命令行輸入如下命令:

????????? socat - PROXY:http=example.com:8080,socks5=example.com:1080

五、功能和用途

1、主要功能

(1)數據轉發

????????socat 可以在不同的網絡協議和接口之間轉發數據。例如,它可以將 TCP 數據轉發到 UDP 接口,或者將數據從文件系統轉發到網絡。

(2)網絡連接

????????socat 可以用來建立網絡連接,支持多種連接模式,如同步和異步。

(3)流量重定向

????????可以將網絡流量重定向到文件、另一個網絡接口或者標準輸出。

(4)數據轉換

????????在數據傳輸過程中,socat 可以將數據進行轉換,如加密、壓縮、編解碼等。

(5)代理功能

????????可以用作 SOCKS5 代理服務器,支持客戶端和服務器模式。

2、常見用途

????????- 端口轉發:例如,將本地端口的數據轉發到遠程服務器的某個端口。

????????- 協議橋接:在不同類型的協議之間建立橋梁,比如 UDP 到 TCP。

????????- 數據捕獲和分析:將網絡數據重定向到文件或分析工具。

????????- 服務測試:模擬客戶端或服務器以測試網絡服務的響應。

3、特性

(1)協議支持

????????socat 支持多種協議,包括 TCP、UDP、SSL/TLS、SOCKS4、UNIX 域套接字等。

(2)數據通道

????????它可以在兩個不同的數據通道之間建立連接,這些通道可以是網絡端口、本地文件、管道、設備文件等。

(3)安全性

????????相比于 netcat,socat 提供了更多的安全選項,比如 chrooting 和 SSL/TLS 加密。

(4)靈活性

????????socat 允許你構建復雜的流構造,這意味著你可以創建非常定制化的數據傳輸方案。

六、安裝

1、包管理器安裝

(1)安裝命令

????????在大多數 Linux 發行版中,你可以通過包管理器來安裝 socat:

sudo apt-get install socat? ?Debian/Ubuntu

sudo yum install socat????? ?CentOS/RHEL

sudo dnf install socat????? ?Fedora

(2)實際操作

????????在linux(centos)命令行下輸入:

sudo yum install socat?

????????出現如下結果:

[root@ecs-52a1 /]#
[root@ecs-52a1 /]# socat
bash: socat: command not found
[root@ecs-52a1 /]#
[root@ecs-52a1 /]#
[root@ecs-52a1 /]# sudo yum install socat
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile* base: mirrors.aliyun.com* extras: mirrors.aliyun.com* updates: mirrors.aliyun.com
base                                                                                                                                   | 3.6 kB  00:00:00
epel                                                                                                                                   | 4.3 kB  00:00:00
extras                                                                                                                                 | 2.9 kB  00:00:00
updates                                                                                                                                | 2.9 kB  00:00:00
Resolving Dependencies
--> Running transaction check
---> Package socat.x86_64 0:1.7.3.2-2.el7 will be installed
--> Finished Dependency ResolutionDependencies Resolved==============================================================================================================================================================Package                            Arch                                Version                                       Repository                         Size
==============================================================================================================================================================
Installing:socat                              x86_64                              1.7.3.2-2.el7                                 base                              290 kTransaction Summary
==============================================================================================================================================================
Install  1 PackageTotal download size: 290 k
Installed size: 1.1 M
Is this ok [y/d/N]: y
Downloading packages:
socat-1.7.3.2-2.el7.x86_64.rpm                                                                                                         | 290 kB  00:00:01
Running transaction check
Running transaction test
Transaction test succeeded
Running transactionInstalling : socat-1.7.3.2-2.el7.x86_64                                                                                                                 1/1Verifying  : socat-1.7.3.2-2.el7.x86_64                                                                                                                 1/1Installed:socat.x86_64 0:1.7.3.2-2.el7Complete!
[root@ecs-52a1 /]#
[root@ecs-52a1 /]#
[root@ecs-52a1 /]#
[root@ecs-52a1 /]# socat --help
2024/07/09 21:04:36 socat[10998] E unknown option "--help"; use option "-h" for help
[root@ecs-52a1 /]# 

????????可以看出,安裝成功,可以使用socat命令了。

2、編譯安裝

????????如果你的系統沒有預裝 socat 或者沒有合適的包,你也可以從源代碼編譯安裝。不是本文的重點,這里就不詳細介紹了。

七、其他

1、注意事項

(1)socat 命令的選項和參數很多,使用時需要仔細閱讀手冊頁(man socat)以了解每個選項的具體作用。

(2)socat 在使用時可能需要root權限,特別是在綁定到特定網絡接口或啟動代理服務器時。

(3)socat 支持大量的協議,包括 TCP、UDP、HTTP、HTTPS、SOCKS5、SM

(6)長時間運行的 socat 進程可能需要考慮資源管理和錯誤處理機制。

2、安全事項

????????socat 是一個功能強大的工具,可以用于多種數據傳輸和通信場景。它的靈活性和強大的功能使得它成為系統管理員和網絡開發人員的寶貴工具。然而,由于其功能過于強大,使用時需要仔細配置,以避免潛在的安全風險。

(1)使用 socat 處理敏感數據時,確保使用適當的加密和權限設置。

(2)在生產環境中使用 socat 時,應該仔細配置防火墻規則以限制不必要的訪問。


文章正下方可以看到我的聯系方式:鼠標“點擊”?下面的?“威迪斯特-就是video system?微信名片”字樣,就會出現我的二維碼,歡迎溝通探討。


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/42688.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/42688.shtml
英文地址,請注明出處:http://en.pswp.cn/web/42688.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Hi3861鴻蒙開發環境搭建

1.1 安裝配置Visual Studio Code 打開Download Visual Studio Code - Mac, Linux, Windows選擇下載安裝Windows系統的Visual Studio Code。 下載后進行安裝。Visual Studio Code安裝完成后&#xff0c;通過內置的插件市場搜索并安裝開發所需的插件如圖所示&#xff1a; 1.2 安…

實時消息推送系統,寫得太好了!

websocket 協議是在 http 協議上的一種補充協議&#xff0c;是 html5 的新特性&#xff0c;是一種持久化的協議。其實 websocket 和 http 關系并不是很大&#xff0c;不過都是屬于應用層的協議&#xff0c;接下來我們就開始實戰。 websocket 定時推送 本教程基于 springboot …

symbol數據類型以及應用場景

在js中,Symbol是一種基本數據類型,是在ECMAScript 6 (ES6) 中引入的新特性。表示獨一無二 Symbol的定義 Symbol是不完整的構造函數&#xff0c;創建symbol對象時不需要new操作符,原因是通過 new 實例化的結果是一個 object 對象&#xff0c;而不是原始類型的 symbol。 var s…

STL--棧(stack)

stack 棧是一種只在一端(棧頂)進行數據插入(入棧)和刪除(出棧)的數據結構,它滿足后進先出(LIFO)的特性。 使用push(入棧)將數據放入stack,使用pop(出棧)將元素從容器中移除。 使用stack,必須包含頭文件: #include<stack>在頭文件中,class stack定義如下: namespace std…

Druid 連接池在很多方面表現出色,但在實際應用中也可能會遇到一些缺陷或問題。

Druid 連接池是阿里巴巴開源的一個功能強大的數據庫連接池&#xff0c;它具有高性能、可靠性、可管理性、安全性和擴展性等特點。然而&#xff0c;盡管 Druid 連接池在很多方面表現出色&#xff0c;但在實際應用中也可能會遇到一些缺陷或問題。 1. **連接耗盡問題**&#xff1…

13 - matlab m_map地學繪圖工具基礎函數 - 介紹創建管理顏色映射的函數m_colmap和輪廓圖繪制顏色條的函數m_contfbar

13 - matlab m_map地學繪圖工具基礎函數 - 介紹創建管理顏色映射的函數m_colmap和輪廓圖繪制顏色條的函數m_contfbar 0. 引言1. 關于m_colmap2. 關于m_contfbar3. 結語 0. 引言 本篇介紹下m_map中用于創建和管理顏色映射函數&#xff08;m_colmap&#xff09;和 為輪廓圖繪制顏…

基于深度學習的電影推薦系統

1 項目介紹 1.1 研究目的和意義 在電子商務日益繁榮的今天&#xff0c;精準預測商品銷售數據成為商家提升運營效率、優化庫存管理以及制定營銷策略的關鍵。為此&#xff0c;開發了一個基于深度學習的商品銷售數據預測系統&#xff0c;該系統利用Python編程語言與Django框架&a…

SQLite 命令行客戶端 + Windows 批處理應用

SQLite 命令行客戶端 Windows 批處理應用 下載 SQLite 客戶端1. Bat 輔助腳本1. 執行SQL.bat執行 2. 導出Excel.bat執行效果 3. 導出HTML.bat執行效果 4. 清空-訂單表.bat5. 訂單表.bat 2. 測試 SQL1. 創建訂單表.sql2. 插入訂單表.sql3. 查詢訂單表.sql4. 清空訂單表.sql5. 刪…

Qt Qwt 圖表庫詳解及使用

文章目錄 Qt Qwt 圖表庫詳解及使用一、Qwt 概述二、安裝 Qwt1. 下載和編譯 Qwt2. 在項目中使用 Qwt三、Qwt 的基本使用1. 創建一個簡單的折線圖2. 添加圖例和自定義樣式四、Qwt 的交互功能1. 啟用縮放和平移2. 啟用數據點選擇五、Qwt 的高級特性1. 實時數據更新2. 多軸繪圖六、…

nvm 管理多版本 node

1、下載 先不安裝node 下載 nvm 1.1.10-setup.zip 解壓&#xff1a;nvm&#xff1a;https://nvm.uihtm.com/ 新建nodejs/node、nodejs/nvm文件夾用于存放node版本和nvm安裝路徑 安裝nvm&#xff1a;上述鏈接有安裝教程 查看是否安裝成功&#xff1a;重新打開cmd 輸入 nvm nv…

Hyper-V克隆虛擬機教程分享!

方法1. 使用導出導入功能克隆Hyper-V虛擬機 導出和導入是Hyper-V服務器備份和克隆的一種比較有效的方法。使用此功能&#xff0c;您可以創建Hyper-V虛擬機模板&#xff0c;其中包括軟件、VM CPU、RAM和其他設備的配置&#xff0c;這有助于在Hyper-V中快速部署多個虛擬機。 在…

深入理解基本數據結構:數組詳解

引言 在計算機科學中&#xff0c;數據結構是存儲、組織和管理數據的方式。數組作為最基礎的數據結構之一&#xff0c;廣泛應用于各種編程場景。在這篇博客中&#xff0c;我們將詳細探討數組的定義、特點、操作及其在不同編程語言中的實現。 什么是數組&#xff1f; 數組是一種…

原生android的內存性能提升方面的方案大致設計

一 測試目標&#xff1a; 以滿足用戶設備的內存性能和不殺后臺為目標。 1&#xff1a;滿足用戶設備的內存性能是指不出現因為內存原因導致的安卓設備死機&#xff0c;卡頓等問題。 2&#xff1a;滿足不殺后臺是指整個設備使用時&#xff0c;不出現后臺app被殺。 通常是估算如果…

構造函數注入@RequiredArgsConstructor

Api(tags "用戶管理接口") RequiredArgsConstructor RestController RequestMapping("users") public class UserController {private final IUserService userService;PostMappingApiOperation("新增用戶")public void saveUser(RequestBody U…

輸入框輸入值之后,檢索表格中是否存在輸入框中的值,存在就讓當前文字為紅色

this.searchValue為輸入框的值 createKeywordHtml_content(data) { if (data undefined) { return data; } if (typeof data ! string) { data String(data) } let value data.replace(this.searchValue, <span style"color:#FF5555">$&</span>…

來一組愛勝品1133DN PRO打印機的照片

剛拆箱的機器正面照片 打開前蓋正準備要安裝原裝耗材 下圖是原裝耗材&#xff0c;硒鼓型號是DR2833、碳粉盒型號是TN2833,鼓組件打印頁數12000頁&#xff0c;TN2833標準容量粉盒打印頁數1600頁/5%覆蓋率&#xff0c;TN2833H大容量粉盒打印頁數3000頁/5%覆蓋率、TN2833L超大容量…

Intel base instruction -- cvttsd2si

將截斷雙精度浮點數并轉換為有符號整數。 4958: 8b 05 82 49 00 00 mov 0x4982(%rip),%eax # 92e0 <age_to_colorBase> // eaxgvar_92e0 495e: 48 8d 15 7b 49 00 00 lea 0x497b(%rip),%rdx # 92e0 <age_to_colorBase&g…

慢性腎臟病-MR+轉錄組文獻

Identification of novel therapeutic targets for chronic kidney disease and kidney function by integrating multi-omics proteome with transcriptome - PMC (nih.gov) 數據和材料 Our pQTL summary data were acquired from previously published studies and can be f…

三. 根文件系統構建

根文件系統構建好以后就意味著我們已經擁有了一個完整的,可以運行的最小系統. 一. 根文件系統簡介 根文件系統一般也叫做 rootfs&#xff0c;那么什么叫根文件系統&#xff1f;Linux 中的根文件系統更像是一個文件夾或者叫做目錄,在這個目錄里面會有很多的子目錄,目錄下的文件…

《妃夢千年》第二十九章:朝中波瀾

第二十九章&#xff1a;朝中波瀾 自從被封為護國夫人后&#xff0c;林清婉在大周的地位愈發穩固&#xff0c;她的智慧和勇氣不僅贏得了皇上的信任&#xff0c;也獲得了朝中眾臣的敬佩。然而&#xff0c;這也引來了部分人的嫉妒和不滿&#xff0c;他們開始在暗中謀劃&#xff0…