Socat或SOcket CAT是一個基于 Linux 命令行/終端的實用程序,用于在兩個雙向字節(jié)流之間建立和傳輸數(shù)據(jù)。 socat命令可以在多種場景下實現(xiàn),主要有兩個原因:
數(shù)據(jù)接收器和數(shù)據(jù)源;不同類型并存在于一個大集合中,可用于構(gòu)造流。
這些構(gòu)造的流可以與許多地址選項相關(guān)聯(lián)。
socat命令可以比作與TCP和UDP協(xié)議綁定的netcat 實用程序。但是,socat比netcat具有安全優(yōu)勢(chrooting),并且還支持設(shè)備、管道、文件、SSL、SOCKS4 客戶端、TCP 套接字、代理 CONNECT、UNIX 套接字等。
Socat 命令
為了更熟悉這個 Linux 命令行實用程序,我們需要列出它的一些實際應(yīng)用。以下要點總結(jié)了一些流行的 socat 實用程序應(yīng)用程序:
安全測試和研究。
面向 TCP 的程序進行串行線路重定向。
作為 UNIX 套接字 shell 接口。
建立 su 和 chroot 安全環(huán)境以在共享網(wǎng)絡(luò)連接上執(zhí)行服務(wù)器/客戶端 Shell 腳本。
不同計算機上串行線路的邏輯連接。
IP6 relay。
通過攻擊弱防火墻進行安全測試。
TCP 端口轉(zhuǎn)發(fā)。
在 Linux 中安裝 Socat 實用程序
如果您的 Linux 操作系統(tǒng)發(fā)行版上尚未安裝基于socat Linux 命令行的實用程序,請參考您正在使用的 Linux 操作系統(tǒng)發(fā)行版參考以下安裝命令之一:
$ sudo apt install socat [在 Debian, Ubuntu 和 Mint 上]$ sudo yum install socat [在 RHEL/CentOS/Fedora 和 Rocky Linux/AlmaLinux 上]$ sudo emerge -a net-misc/socat [在 Gentoo Linux 上]$ sudo pacman -S socat [在 Arch Linux 上]$ sudo zypper install socat [在 OpenSUSE 上]
正如已經(jīng)討論過的,socat是netcat實用程序的出色替代品,因為它具有強大和高級的功能。我們現(xiàn)在應(yīng)該能夠通過 Linux 命令行環(huán)境看到一些使用socat實用程序的實際示例。 其使用語法如下:
# socat [options]
確保您在 Linux 機器上擁有 sudoer/root 用戶權(quán)限。
1、監(jiān)聽特定端口
我們可以指示socat通過TCP協(xié)議監(jiān)聽特定端口,例如80 ,并通過STDOUT打印出任何相關(guān)的發(fā)現(xiàn),如下所示。
$ sudo socat TCP4-LISTEN:80 STDOUT
TCP可以切換到其他不同的值,例如TCP6、TCP6-LISTEN和TCP4。
2. 連接到遠程服務(wù)器的端口
要連接到與端口關(guān)聯(lián)的服務(wù)器,我們將運行:
$ sudo socat – TCP480
3. TCP 端口轉(zhuǎn)發(fā)器
它也是一個有效的TCP端口轉(zhuǎn)發(fā)器。例如,端口81連接可以轉(zhuǎn)發(fā)到端口80,如下所示: 對于單個連接。
$ sudo socat TCP4-LISTEN:81 TCP480
對于多個連接。
$ sudo socat TCP4-LISTEN:81,fork,reuseaddr TCP4192.168.122.1:80
您可以使用鍵盤組合取消端口轉(zhuǎn)發(fā)[Ctrl]+c。
4.監(jiān)聽本地端口
監(jiān)聽本地端口www。
$ sudo socat TCP4-LISTEN:www TCP4www
5. 監(jiān)聽遠程套接字上的特定端口
如果我們想監(jiān)聽一個特定的端口,接受它的連接并將它轉(zhuǎn)發(fā)到一個遠程的 Unix 套接字,例如 mysql.sock,我們會以如下方式實現(xiàn) socat 命令:
$ sudo socat TCP-LISTEN:3309,reuseaddr,fork UNIX-CONNECT:/var/lib/mysql/mysql.sock
6. 基于網(wǎng)絡(luò)的消息收集器
這個簡單的例子演示了基于網(wǎng)絡(luò)的消息收集器的實現(xiàn)。客戶端連接到端口 3354 成功后,文件/tmp/testing.log通過新生成的子進程附加客戶端發(fā)送的數(shù)據(jù)。當發(fā)現(xiàn)此文件不存在時,socat會自動創(chuàng)建此文件。
$ sudo socat -u TCP4-LISTEN:3354,reuseaddr,fork OPEN:/tmp/testing.log,creat,append
通過上面討論的幾個示例以及進一步參考socat手冊頁,我們應(yīng)該能夠深入探索它。
-
TCP
+關(guān)注
關(guān)注
8文章
1378瀏覽量
79198 -
程序
+關(guān)注
關(guān)注
117文章
3795瀏覽量
81296 -
傳輸數(shù)據(jù)
+關(guān)注
關(guān)注
1文章
127瀏覽量
16130
原文標題:Linux 命令 socat - netcat 實用程序的出色替代品
文章出處:【微信號:良許Linux,微信公眾號:良許Linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論