使用 netcat 偵聽連接埠並在客戶端連接時發送命令的輸出

使用 netcat 偵聽連接埠並在客戶端連接時發送命令的輸出

我有一個連接到 LAN 的 Raspberry Pi (Debian Linux),它可以從某些連接的裝置讀取資料並將其輸出到 STDOUT。

假設該程式在“伺服器”上運行,我想將腳本的輸出提供/usr/bin/data給連接埠 1234。

我希望任何客戶端透過連接到該連接埠來提取該腳本的輸出,使用類似

nc Server 1234 > ServerData.txt

我希望伺服器保持活動狀態,為每個連線運行腳本,提供數據,然後關閉與客戶端的連線。伺服器需要保持活動狀態並等待下一個連線。

在伺服器上運行的 netcat 命令是什麼?

答案1

將需要 netcat 的更高級版本之一。您可以使用ncatsocat

伺服器端

當客戶端連接時,執行可執行程式/usr/bin/data並將程式輸出傳送給客戶端。

NCAT方法:

$ ncat -l 1234 -c '/usr/bin/data' --keep-open

SOCAT方法

$ socat -U TCP-LISTEN:5403,fork EXEC:'/usr/bin/data',stderr,pty,echo=0

客戶端:

連接到伺服器,並接收伺服器的輸出。

NCAT 歸檔方法

$ ncat Server 1234 | tee ServerData.txt

NC (netcat) 標準輸出法

$ </dev/null nc <Server.ip> 5403 > /dev/stdout

要儲存到文件,請將 /dev/stdout 替換為文件名

WGET 方法到文件

$ wget -q <Server.ip>:5403 -O myfile.txt

若要列印結果,請將 myfile.txt 替換為 /dev/stdout

相關內容