使用netcat橋接防火牆?

使用netcat橋接防火牆?

我有一台位於防火牆後面的機器。這是我的機器,我設定了 ssh,但它完全有防火牆。我的解決方案是使用基於 cron 的反向 shell 在使用 netcat 失敗時重新連線。該命令bash -i >& /dev/tcp/myhostname.duckdns.org/10000 0>&1在我的本機電腦上是 and nc -l 10000。到目前為止,這一直有效,因為我可以用命令告訴它加入我的私人 VPN。由於某種原因該命令不起作用。因此,我可以透過產生的 bash shell“登入”,但我無法 ssh 返回我的計算機,因為Pseudo-terminal will not be allocated because stdin is not a terminal.我還沒有在該系統上設定 ssh 金鑰,而且它不會讓我使用密碼登入。

所以我一直試著使用netcat找到解決方案,但沒有成功。我的設想是這樣的:

[伺服器] ---netcat--> [我的電腦:連接埠1]

這樣我就可以利用它登入 sshd 伺服器並修復任何需要修復的內容。但我無法弄清楚可以完成此任務的 netcat 命令。有什麼幫助嗎?

答案1

為互聯網的其餘部分(和我自己)找到了答案。以下是僅使用 netcat 實作連接埠轉送的方法(已在 OS X El Capitan 上驗證工作):

在(傳入)防火牆後面的伺服器上:

nc localhost 22 >& /dev/tcp/<your-hostname>/<open port on local computer, i.e. 9000> 0>&1

在本機上:

cd /tmp; mkfifo backpipe
nc -l 9000 0<backpipe | nc -l 9001 | tee backpipe

在本機電腦上,單獨的終端機:

ssh localhost -p 9001

相關內容