我们可以通过 Windows 计算机访问安全的 Linux 基础架构。Linux 基础架构无法访问互联网,但 Windows 计算机可以。
在这台 Windows 机器上,我们安装了 Putty,可以用它连接到 Linux 基础设施。我们可以在两个方向(本地和远程)设置从 Windows 机器到 Linux 基础设施的隧道。
我想知道的是,我们是否可以通过使用 putty 的远程隧道,让 Linux 基础设施通过 Windows 主机访问互联网。
我们只需要 http/https 访问,因为这用于 debian 安全更新和新机器配置(目前由于缺乏互联网访问而无法安装任何软件包)。
这个模式在我的脑海里很清晰,但我不知道如何在实践中实现它:
我认为我需要在 Windows 机器上安装一种 http 代理,来监听远程隧道指向的端口?
如何配置前端 ssh 机器,以便其他以其为网关的主机通过 ssh 隧道进行连接?
此外,在这种情况下 DNS 将如何工作?
谢谢指点!
答案1
如果 SSH 服务器允许(这是大多数 Linux 发行版的默认设置),您可以使用 PuTTY(以及任何其他 SSH 客户端)设置 TCP 转发。
确定 SSH 服务器上可用且未使用的端口,例如 8080。
在 PuTTY 中设置一条规则,将 TCP 流量从 SSH 服务器上的 8080 端口通过 SSH 隧道传输到你的 Windows 系统,然后将其转发到你的代理服务器(proxy.example.com 端口 8080):
在 SSH 服务器上设置
http_proxy
和https_proxy
环境变量,然后许多应用程序将能够通过 ssh 端口转发使用该代理服务器(某些应用程序需要修改自己的设置才能使用代理):export http_proxy="http://username:password@localhost:8080" export https_proxy=$http_proxy
并测试例如:
curl -vv http://serverfault.com
在其他服务器上(防火墙允许),您可以使用:
export http_proxy="http://username:password@<ip-of-ssh-server>:8080"
此配置尚未测试。