如何在不使用 SSH 的情况下在 Linux 中建立隧道?

如何在不使用 SSH 的情况下在 Linux 中建立隧道?

我的网络上有两台机器,IP 分别为192.168.1.2(服务器)和192.168.1.3(客户端)。在服务器中,有一个 HTTP 服务器lo在端口 8080(127.0.0.1:8080)的接口上运行,只有本地用户才能访问。我想将该端口转发给客户端。我发现的唯一方法是通过 SSH 隧道。

ssh -L 8080:127.0.0.1:8080 [email protected] -N -vv

对于此过程,我需要拥有该用户的密码或私钥。假设我 在服务器上don't have any kind of credentials这样做,是否有其他方法可以在不使用 SSH 实用程序的情况下建立这样的隧道have access to execute commands?我的最终目标是能够192.168.1.2 从客户端以 localhost 身份连接到 HTTP 服务器。

答案1

我找到了一个叫做这让我可以做我想做的事。

为此,您必须有某种方法来执行命令。我能够将可执行文件上传到服务器并使用它。

chisel server --reverse --port 9001   # Client side

这将启动反向代理并在端口 9001 上监听客户端的任何连接。

chisel client 192.168.1.3:9001 R:8080:127.0.0.1:8080 # Server side

通过执行此操作,将会与客户端的服务器建立连接,并将指定端口(在本例中为 8080)的流量转发到服务器端的服务器。

答案2

GNU netcat 具有内置此功能:

nc -L localhost:8080 -p 9001

这看起来像是能够完成工作的最简单的解决方案。

相关内容