我有一个连接到互联网的设备,但它位于 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 中的库进行连接,其工作原理相同)