0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

socat命令如何在多種場(chǎng)景下實(shí)現(xiàn)

lhl545545 ? 來(lái)源:良許Linux ? 作者:良許Linux ? 2022-09-06 09:02 ? 次閱讀

SocatSOcket CAT是一個(gè)基于 Linux 命令行/終端的實(shí)用程序,用于在兩個(gè)雙向字節(jié)流之間建立和傳輸數(shù)據(jù)。 socat命令可以在多種場(chǎng)景下實(shí)現(xiàn),主要有兩個(gè)原因:

數(shù)據(jù)接收器和數(shù)據(jù)源;不同類型并存在于一個(gè)大集合中,可用于構(gòu)造流。

這些構(gòu)造的流可以與許多地址選項(xiàng)相關(guān)聯(lián)。

socat命令可以比作與TCP和UDP協(xié)議綁定的netcat 實(shí)用程序。但是,socat比netcat具有安全優(yōu)勢(shì)(chrooting),并且還支持設(shè)備、管道、文件、SSL、SOCKS4 客戶端、TCP 套接字、代理 CONNECT、UNIX 套接字等。

Socat 命令

為了更熟悉這個(gè) Linux 命令行實(shí)用程序,我們需要列出它的一些實(shí)際應(yīng)用。以下要點(diǎn)總結(jié)了一些流行的 socat 實(shí)用程序應(yīng)用程序:

安全測(cè)試和研究。

面向 TCP 的程序進(jìn)行串行線路重定向。

作為 UNIX 套接字 shell 接口。

建立 su 和 chroot 安全環(huán)境以在共享網(wǎng)絡(luò)連接上執(zhí)行服務(wù)器/客戶端 Shell 腳本。

不同計(jì)算機(jī)上串行線路的邏輯連接。

IP6 relay。

通過(guò)攻擊弱防火墻進(jìn)行安全測(cè)試。

TCP 端口轉(zhuǎn)發(fā)。

在 Linux 中安裝 Socat 實(shí)用程序

如果您的 Linux 操作系統(tǒng)發(fā)行版上尚未安裝基于socat Linux 命令行的實(shí)用程序,請(qǐng)參考您正在使用的 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)討論過(guò)的,socatnetcat實(shí)用程序的出色替代品,因?yàn)樗哂袕?qiáng)大和高級(jí)的功能。我們現(xiàn)在應(yīng)該能夠通過(guò) Linux 命令行環(huán)境看到一些使用socat實(shí)用程序的實(shí)際示例。 其使用語(yǔ)法如下:


# socat [options] 

確保您在 Linux 機(jī)器上擁有 sudoer/root 用戶權(quán)限。

1、監(jiān)聽(tīng)特定端口

我們可以指示socat通過(guò)TCP協(xié)議監(jiān)聽(tīng)特定端口,例如80 ,并通過(guò)STDOUT打印出任何相關(guān)的發(fā)現(xiàn),如下所示。


$ sudo socat TCP4-LISTEN:80 STDOUT

TCP可以切換到其他不同的值,例如TCP6TCP6-LISTENTCP4。

2. 連接到遠(yuǎn)程服務(wù)器的端口

要連接到與端口關(guān)聯(lián)的服務(wù)器,我們將運(yùn)行:


$ sudo socat – TCP480

3. TCP 端口轉(zhuǎn)發(fā)器

它也是一個(gè)有效的TCP端口轉(zhuǎn)發(fā)器。例如,端口81連接可以轉(zhuǎn)發(fā)到端口80,如下所示: 對(duì)于單個(gè)連接。


$ sudo socat TCP4-LISTEN:81 TCP480

對(duì)于多個(gè)連接。


$ sudo socat TCP4-LISTEN:81,fork,reuseaddr TCP4192.168.122.1:80

您可以使用鍵盤組合取消端口轉(zhuǎn)發(fā)[Ctrl]+c。

4.監(jiān)聽(tīng)本地端口

監(jiān)聽(tīng)本地端口www。


$ sudo socat TCP4-LISTEN:www TCP4www

5. 監(jiān)聽(tīng)遠(yuǎn)程套接字上的特定端口

如果我們想監(jiān)聽(tīng)一個(gè)特定的端口,接受它的連接并將它轉(zhuǎn)發(fā)到一個(gè)遠(yuǎn)程的 Unix 套接字,例如 mysql.sock,我們會(huì)以如下方式實(shí)現(xiàn) socat 命令:


$ sudo socat TCP-LISTEN:3309,reuseaddr,fork UNIX-CONNECT:/var/lib/mysql/mysql.sock

6. 基于網(wǎng)絡(luò)的消息收集器

這個(gè)簡(jiǎn)單的例子演示了基于網(wǎng)絡(luò)的消息收集器的實(shí)現(xiàn)??蛻舳诉B接到端口 3354 成功后,文件/tmp/testing.log通過(guò)新生成的子進(jìn)程附加客戶端發(fā)送的數(shù)據(jù)。當(dāng)發(fā)現(xiàn)此文件不存在時(shí),socat會(huì)自動(dòng)創(chuàng)建此文件。


$ sudo socat -u TCP4-LISTEN:3354,reuseaddr,fork OPEN:/tmp/testing.log,creat,append

通過(guò)上面討論的幾個(gè)示例以及進(jìn)一步參考socat手冊(cè)頁(yè),我們應(yīng)該能夠深入探索它。

審核編輯:彭靜

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • TCP
    TCP
    +關(guān)注

    關(guān)注

    8

    文章

    1324

    瀏覽量

    78756
  • 程序
    +關(guān)注

    關(guān)注

    115

    文章

    3720

    瀏覽量

    80357
  • 傳輸數(shù)據(jù)
    +關(guān)注

    關(guān)注

    1

    文章

    102

    瀏覽量

    16055

原文標(biāo)題:Linux 命令 socat - netcat 實(shí)用程序的出色替代品

文章出處:【微信號(hào):良許Linux,微信公眾號(hào):良許Linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Linux場(chǎng)景數(shù)據(jù)包是如何在協(xié)議層傳輸?shù)?/a>

    所有互聯(lián)網(wǎng)服務(wù),均依賴于TCP/IP協(xié)議棧。懂得數(shù)據(jù)是如何在協(xié)議棧傳輸?shù)?,將?huì)幫助你提升互聯(lián)網(wǎng)程序的性能和解決TCP相關(guān)問(wèn)題的能力。 我們講述在Linux場(chǎng)景數(shù)據(jù)包是如何在協(xié)議層傳輸
    的頭像 發(fā)表于 11-11 11:33 ?962次閱讀
    Linux<b class='flag-5'>場(chǎng)景</b><b class='flag-5'>下</b>數(shù)據(jù)包是如<b class='flag-5'>何在</b>協(xié)議層傳輸?shù)? />    </a>
</div>                            <div   id=

    何在Linux中使用htop命令

    本文介紹如何在 Linux 中使用 htop 命令
    的頭像 發(fā)表于 12-04 14:45 ?1400次閱讀
    如<b class='flag-5'>何在</b>Linux中使用htop<b class='flag-5'>命令</b>

    itop4412開(kāi)發(fā)板跑的是linux系統(tǒng),如何在命令,寫shell命令來(lái)關(guān)機(jī)?

    itop4412開(kāi)發(fā)板跑的是linux系統(tǒng),如何在命令,寫shell命令來(lái)關(guān)機(jī)? 開(kāi)發(fā)板沒(méi)有shutdown 命令
    發(fā)表于 11-18 18:24

    何在VxWorks實(shí)現(xiàn)NAT/NAPT的方法

    何在VxWorks實(shí)現(xiàn)NAT/NAPT的方法
    發(fā)表于 03-29 12:25 ?19次下載

    多種方式使用”kill”命令終結(jié)應(yīng)用

    無(wú)論你使用哪種操作系統(tǒng),你一定會(huì)遇到某個(gè)行為失常的應(yīng)用,它把自己鎖死并拒絕關(guān)閉。在Linux(還有Mac),你可以用一個(gè)”kill”命令強(qiáng)制終結(jié)它。在這個(gè)教程中,我們將展示給你多種方式使用”kill”命令終結(jié)應(yīng)用。
    的頭像 發(fā)表于 04-20 16:36 ?4933次閱讀
    以<b class='flag-5'>多種</b>方式使用”kill”<b class='flag-5'>命令</b>終結(jié)應(yīng)用

    何在PADS 3D Layout中進(jìn)行命令操作

    了解如何在 PADS 3D Layout 中對(duì)您的 PCB 使用“Measure Distance”和“Measure Minimum Distance”命令
    的頭像 發(fā)表于 05-15 06:05 ?4981次閱讀
    如<b class='flag-5'>何在</b>PADS 3D Layout中進(jìn)行<b class='flag-5'>命令</b>操作

    何在Linux環(huán)境實(shí)現(xiàn)Python環(huán)境的搭建

    本文檔的主要內(nèi)容詳細(xì)介紹的是如何在Linux環(huán)境實(shí)現(xiàn)Python環(huán)境的搭建。
    發(fā)表于 08-24 12:12 ?14次下載
    如<b class='flag-5'>何在</b>Linux環(huán)境<b class='flag-5'>下</b><b class='flag-5'>實(shí)現(xiàn)</b>Python環(huán)境的搭建

    何在51單片機(jī)上實(shí)現(xiàn)串口收發(fā)命令

    串口通信在電子行業(yè)中應(yīng)用較廣,通過(guò)上位機(jī)發(fā)送命令實(shí)現(xiàn)各種功能的控制及數(shù)據(jù)的反饋。本文就是在51 單片機(jī)上實(shí)現(xiàn)串口收發(fā)命令,程序調(diào)試正常,可以運(yùn)用到控制系統(tǒng)中。
    發(fā)表于 11-26 17:02 ?9次下載

    何在融合多種定位技術(shù)和通信技術(shù)的條件實(shí)現(xiàn)萬(wàn)物互聯(lián)

    隨著汽車智能化和網(wǎng)聯(lián)化的發(fā)展,涉及自動(dòng)駕駛、北斗+5G等關(guān)鍵技術(shù)的發(fā)展,智能網(wǎng)聯(lián)汽車已經(jīng)進(jìn)入技術(shù)快速演進(jìn)、產(chǎn)業(yè)加速布局的新階段。面對(duì)新挑戰(zhàn)和新機(jī)遇,如何在融合多種定位技術(shù)和通信技術(shù)的條件,實(shí)
    的頭像 發(fā)表于 05-31 11:11 ?2054次閱讀

    超級(jí)終端場(chǎng)景多種設(shè)備在不同環(huán)境如何組成一個(gè)網(wǎng)絡(luò)

    相信大家對(duì)HarmonyOS的“超級(jí)終端”比較熟悉了。那么,您知道超級(jí)終端場(chǎng)景多種設(shè)備在不同環(huán)境是如何組成一個(gè)網(wǎng)絡(luò)的嗎?這些設(shè)備之間又是如何解決共享資源沖突的?本期我們就來(lái)為您揭
    的頭像 發(fā)表于 12-25 09:02 ?2897次閱讀
    超級(jí)終端<b class='flag-5'>場(chǎng)景</b><b class='flag-5'>下</b>的<b class='flag-5'>多種</b>設(shè)備在不同環(huán)境<b class='flag-5'>下</b>如何組成一個(gè)網(wǎng)絡(luò)

    何在Linux使用pidof命令

    `pidof`是一個(gè)命令行程序,可讓您找到正在運(yùn)行程序的進(jìn)程ID。在教程中,我們將說(shuō)明如何在Linux 使用pidof命令。
    的頭像 發(fā)表于 12-05 17:01 ?2132次閱讀

    何在Linux命令行中格式化輸出xml

    我們先前分享過(guò)一篇關(guān)于在命令行中格式化輸出 json 文件的文章,今天我們?cè)賮?lái)分享一何在命令行中格式化輸出 xml。
    的頭像 發(fā)表于 01-12 17:37 ?1424次閱讀
    如<b class='flag-5'>何在</b>Linux<b class='flag-5'>命令</b>行中格式化輸出xml

    何在Linux上使用粘貼命令?

    粘貼命令的各種選項(xiàng)和使用場(chǎng)景,并通過(guò)示例和輸出演示如何使用它。 一、什么是粘貼命令? Paste命令是Unix和Linux操作系統(tǒng)上的一個(gè)實(shí)用程序,允許用戶將多個(gè)文件或文本行合并到一個(gè)
    的頭像 發(fā)表于 02-08 16:58 ?1683次閱讀

    命令配置防火墻的基礎(chǔ)上網(wǎng)步驟

    部分用戶需要在命令行界面進(jìn)行防火墻基礎(chǔ)上網(wǎng)配置,本文展示如何在命令配置防火墻的基礎(chǔ)上網(wǎng)步驟。
    的頭像 發(fā)表于 09-24 11:37 ?766次閱讀
    在<b class='flag-5'>命令</b>行<b class='flag-5'>下</b>配置防火墻的基礎(chǔ)上網(wǎng)步驟

    何在不同應(yīng)用場(chǎng)景構(gòu)建音頻測(cè)試環(huán)境

    在之前的文章中,我們已經(jīng)詳細(xì)介紹了基礎(chǔ)音頻參數(shù)和AP525的軟硬件配置。本文將延續(xù)這一主題,以泰凌TLSR9518A EVB作為測(cè)試設(shè)備(DUT),向大家展示如何在不同應(yīng)用場(chǎng)景構(gòu)建音頻測(cè)試環(huán)境。
    的頭像 發(fā)表于 07-03 15:00 ?268次閱讀
    如<b class='flag-5'>何在</b>不同應(yīng)用<b class='flag-5'>場(chǎng)景</b><b class='flag-5'>下</b>構(gòu)建音頻測(cè)試環(huán)境