我有一個連接到互聯網的設備,但它位於 NAT 之後,這意味著我無法從網路外部直接透過 ssh 存取它。我已經發現反向 SSH 隧道可以繞過這個問題。
現在我想在此設備上運行 netcat 伺服器進程,以便再次從網路外部存取。我該怎麼做呢?
答案1
我自己設法解決了這個問題。看來ssh隧道基本上就是連接埠轉送。我在 NAT 後面的伺服器上執行以下程式碼
ssh -N -R 4321:localhost:1234 user@client &
client:4321
這將設定將流量路由至 的隧道server:1234
,並&
在背景運行它。仍在伺服器上,然後我運行:
ncat -lk -c "python myscript.py" localhost 1234 &
這會啟動 netcat 進程運行myscript.py
。現在我可以透過 netcat 從客戶端連接到伺服器
nc localhost 4321
ncat
(我的客戶端上沒有,但nc
也能工作。我的實際用例是使用socket
python 中的庫進行連接,其工作原理相同)