这是我的情况。
- 工作场所有一个内部网络。
- 我可以通过 ssh 连接到面向互联网和内部网络的 Linux 机器从家里访问工作网络。
- 工作网络中有另一个运行 Web 服务器的 Linux 机器。
- 我想使用家里的 Windows 机器连接到第二个 Linux 机器上的 Web 服务器。
- Web 服务器使用许多 vhost。
- 我的家庭网络使用 192.168.1.1 之类的 IP 地址。
- 我的工作网络使用了 192.168.0.1 之类的地址。
我认为我可以使用 ssh 隧道实现这一点,但我不清楚在 Putty 中要使用什么设置,也不确定在我的 hosts 文件中为 vhosts 放入什么内容。
谢谢您的帮助!
答案1
好的……使用 Putty 完全可以做到这一点,尽管不像在 Linux 机器上使用 OpenSSH 那么容易。我强烈建议设置 SSH 身份密钥并将其安装在您要连接的盒子上,并使用 Putty Agent (pagent.exe) 密钥转发代理。这就是要采取的步骤。
首先,为您可以从家里访问的工作 Linux 机器创建一个 Putty 连接配置文件。您需要确保在 下Connection -> Data
设置了Auto-login username
。然后Connection -> SSH -> Auth
确保下Allow agent forwarding
已选中。现在保存此配置文件并记下您为其命名的名称(即 work-jumpbox)。
完成此设置后,您现在需要为工作跳转箱后面的盒子设置第二个配置文件。使用办公室中 Web 服务器的正确主机名/IP 地址和端口设置此配置文件。然后,您需要转到并将Connection -> Data -> Proxy
设置Proxy Type
为local
并将设置Telnet command or local-proxy-command
为plink -load work-jumpbox -nc %host:%port\n
(将 work-jumpbox 替换为您之前为工作 Linux 盒子设置的配置文件的名称)。
现在保存此配置文件(即工作网络服务器),当您想要连接到它时,加载它并单击“连接”,它会在静默登录跳转箱后将您登录到办公室网络服务器。
答案2
我认为您的网络服务器正在您公司网络的192.168.0.2
端口地址上运行。80
- 使用 putty 打开与第一个 Linux 机器的 SSH 连接。
- 进入菜单连接 > SSH > 隧道。
- 在文本框中输入源端口端口
1234
(如果您愿意,可以使用任何其他端口,只要它尚未被本地服务使用,并且如果您不是机器上的管理员,则端口大于 1024)。 - 在该领域目的地,输入您的网络服务器的地址和端口:
192.168.0.2:80
。 - 点击按钮添加
现在,如果你http://localhost:1234/
在浏览器中输入,你应该会得到你的 Web 服务器的默认虚拟主机的页面。只需在你的 hosts 文件中添加以下行即可
127.0.0.1 myvhost.com
您将在浏览器中使用以下 URL 访问您的网站http://myvhost.com:1234/
答案3
首先进入 putty 并设置与办公室 ssh 服务器的已保存连接。假设为了其余说明,您将其命名为“office”
打开命令窗口并执行以下操作,其中 X 是 Web 服务器中 IP 的最后一个八位字节。
putty -L 80:192.168.0.X:80 -加载办公室-N
此命令使用 SSH 会话“office”,并将您本地的端口 80 映射到通过“office”服务器隧道传输的 Web 服务器的远程端口 80。
现在,如果您想连接到特定的主机名,您需要将其添加到主机表中并将其指向您的本地主机。
主机名1.officewebdomain.com 127.0.0.1
那‘应该’可以做到。
答案4
这可以通过 SSH 隧道来实现,但这真的不是一个很好的解决方案。本质上,它会破坏你通过 TCP 连接传递 TCP 数据包,如果你的连接不够完美,它可能会崩溃。
更好的方法是设置使用 UDP 数据包的 VPN,当您登录 VPN 时,您可以像在办公室登录一样查看工作网络。OpenVPN 非常适合此目的,其网站有非常详尽的指南来帮助您进行设置。