使用 ssh 隧道从外部连接到我公司内网的仅限 LAN 的网站

使用 ssh 隧道从外部连接到我公司内网的仅限 LAN 的网站

我公司有一台内部网 Web 服务器,只能从 LAN 访问,用作集成服务器进行 Web 开发。LAN 中的用户将其 /etc/hosts 设置为使用集成服务器的 Apache 配置中定义的相同虚拟主机,这样便可以使用标准端口 80 连接到它。

我有时远程工作,可以使用自定义端口通过 SSH 访问服务器。

如果我将 /etc/hosts 设置为该服务器的公共 IP,是否有任何方法可以使用带有该自定义端口的 SSH 连接,以便我的浏览器连接通过隧道从该 Web 服务器获取页面?

答案1

我还不太明白您的配置,但是当您通过 ssh 连接到公司服务器时,您应该能够设置一个 ssh 隧道,以便您可以使用浏览器访问公司网络服务器。

你做不是需要在本地机器上设置 /etc/hosts。使用 ssh 参数

-L port:host:hostport

所有到本地主机端口的流量都会被隧道传输到远程主机/主机端口。因此,当您执行

 ssh -L 80:web-server:80 user@ssh-server -p 22

http://localhost将被重定向到web-server:80。请注意,主机端口是在远程服务器(即 ssh 服务器上转换的)。

-p 22如果 ssh 服务器使用默认端口,则不需要,但问题确实说 SSH 服务器通过自定义端口。在这种情况下,更改22为自定义端口。

如果系统抱怨特权端口只能由 root 转发,以超级用户身份运行它:

sudo ssh -L 80:web-server:80 user@ssh-server -p 12345

或者以 root 身份登录。

答案2

SSH 命令行版本:

ssh -L 90:devserver:80 remotehost.example.com 

现在浏览至http://开发服务器:90/

请记住 /etc/hosts 必须指向 127.0.0.1

使用 PuTTY,在 SSH 隧道下:

  1. 在源端口中输入 90
  2. 在目标中输入 devserver:80
  3. 单击“添加”
  4. 记得返回会话并单击保存。

比所有隧道更好的方法是在办公室设置 OpenVPN。

答案3

我做的恰恰相反。在客户那里,我通过笔记本电脑上的 Tunnelier 设置了一条安全 ssh 隧道,指向安装了 ssh 服务器的外部服务器。然后,我在 Google Chrome 中设置了 switchy,以启用从我的浏览器到通过 ssh 路由的外部服务器的转发流量。

所以,

  1. 在 chrome 浏览器中安装 switchy(您可以在 ff/ie 中设置代理 - switchy 可让您轻松在代理配置之间切换)。将 SOCKS Host 设置为 127.0.0.1,将 port 设置为 1080。
  2. 在您的远程机器(即您的笔记本电脑/家用电脑)上设置 Tunnelier 客户端,并将其连接到公司 ssh 服务器。使用端口 1080 并启用“SOCKS/HTTP 代理转发”。

希望这可以帮助。

相关内容