Shell
執行檔的管道輸出到現有的 Netcat 連接
我打開一個終端視窗並使用以下命令連接到 shell
netcat
:Terminal Window 1: nc hostname port
然後,我導航到一個目錄並打開一個文件,……等等(我需要自己能夠做到這一點,而不是自動化它)。
然後我可以將電腦上執行檔的輸出通過管道傳輸到
netcat
連接嗎?
您可能可以使用命名管道來做到這一點。
mkfifo ncpipe nc hostname port < ncpipe # --- In a galaxy far, far away (another terminal) --- somecommand > ncpipe
但是,這存在一些問題……例如,如果您花費的時間太長,則連接可能會超時或其他情況。
也可以雙向執行此操作…我前段時間使用它來轉發本地 telnet 埠,不確定它是否仍然有效:
mkfifo send receive > send & > receive & nc 127.0.0.1 23 < receive > send & telnet_pid=$! nc host port < send > receive & server_pid=$! wait $server_pid kill $telnet_pid rm send receive
無論如何,你可以用命名管道做一些奇怪的事情。但是,您還必須小心它們……如果有一個舊程序打開了管道,則可能會出現意外的輸出。最好為每個任務創建一個閃亮的新乾淨管道,並在完成後刪除。
特別是埠轉發使用 SSH 更容易(和安全)完成,但它並不總是可用。如果在您的場景中可用,則最好只執行以下操作:
somecommand | ssh user@host somereceiver # or the other way around ssh user@host somecommand | somereceiver