如何使用 ssh 转发?

如何使用 ssh 转发?

我有一台 Linux 服务器,它只向公众开放两个端口:

remote-server-ip : 1111
remote-server-ip : 2222

我们在服务器上有一个 Web 应用程序,它使用3333端口并且无法更改。

因此,简而言之,我需要的是:

  1. 在公网中,使用浏览器访问http://remote-server:1111http://remote-server:2222
  2. 远程服务器访问我的请求并将我的请求转发到端口3333
  3. 回应我的请求。

我认为 ssh 转发应该可以做到这一点。但我到底该怎么做才能做到这一点?

我已经在远程服务器中尝试过这个:

ssh -N -L 1111:127.0.0.1:3333 127.0.0.1

但它根本不起作用,什么也没有发生。

答案1

您期望发生什么?

也就是说,您已通过 ssh 从远程服务器连接到远程服务器,同时转发远程服务器上的端口,尽管它可以工作,但可能不会产生您期望的结果。尝试:

desktop% ssh -N -L 26622:localhost:3333 remote.server.address

然后localhost:26622从桌面访问;这应该会将您连接到 remote.server:3333。

编辑:这不是 ssh 转发的工作方式,也不是它的用途。如果您想打开入站互联网端口,则需要与维护 remote.server 防火墙的系统管理员交谈。此外,我担心有关破坏安全规定的问题通常被认为与 Server Fault 无关。

答案2

这听起来更像是需要本地代理。

我使用的解决方案基于 Apache httpd。外部只能访问端口 80,但内部 Web 应用程序侦听端口 8080。如果您可以使用以下配置设置 Apache,它应该可以工作:

Listen 1111

ProxyRequests Off

<Proxy *>
    Order deny,allow
    Allow from all
</Proxy>


<VirtualHost *>
    Servername localhost
    ProxyPass   /   http://localhost:3333/
    ProxyPassReverse   /   http://localhost:3333/
</VirtualHost>

相关内容