我可以通过 SSH 连接访问远程 Web 服务器吗?

Bre*_*ugh 9 linux ssh openssh webserver ubuntu

我最近设置了一个远程服务器,目前我运行的只是最低配置。我设置了 OpenSSH,可以通过我的域名之一(使用 A 型 DNS 记录)访问机器。我也在机器上运行了一个 web 服务器,但是除了 SSH 之外的所有端口都在网关上被阻止。

虽然将来我计划打开端口 80,但现在我处于“开发”模式,我想禁止通过端口 80(或通过 HTTP 协议)对 Web 服务器的任何外部访问或流量)。目前,从外部访问机器的唯一方法是通过 SSH 连接。

现在,我想知道:如何通过SSH重定向本地 HTTP 服务器流量以便我可以在本地访问我的 Web 服务器?即使我在路由器/网关上设置了 80 端口防火墙,也可以这样做吗?

小智 13

是的,使用 ssh 端口转发。

ssh -L 80:localhost:80 name-of-remote-system
Run Code Online (Sandbox Code Playgroud)

这将通过 ssh 将任何浏览器连接发送到本地机器上的端口 80 到远程机器。到达那里后,它将继续访问 localhost(您使用 ssh 连接的机器)的 80 端口。

  • 实际上,作为我之前评论的一个小后续;在没有 `sudo` 的情况下运行命令将导致出现错误 `Privated ports can only be forwarded by root.`。但是,一旦我在 SSH 命令前添加了 `sudo`,我注意到我的 RSA 密钥凭证被拒绝了。请注意,除非您的“sudo”用户共享相同的 SSH 密钥,否则您需要使用“-i”参数指定当前密钥文件的路径(例如将“-i /home/YOUR_USERNAME/.ssh/id_rsa”附加到命令结束)。 (2认同)