我有一台 Windows 7 Enterprise VPN 笔记本电脑,用于访问客户的 VPN 网络。在 VPN 会话期间,即使我使用 Windows 防火墙入站规则打开任何门,笔记本电脑也无法接受来自我的 Intranet 的任何请求。但是,在 VPN 会话期间,笔记本电脑可以使用直接本地 IP:端口连接到我的 Intranet 中的任何地方。
事情是这样的:
我想使用我的客户的 VPN 笔记本电脑作为我的 Intranet 内其他非 VPN 计算机的代理。
安装代理不起作用,因为其他 Intranet 计算机在 VPN 笔记本电脑上的 VPN 会话期间无法访问任何端口。Windows、Java 或 Linux 中是否有任何类型的支持服务器/客户端的代理隧道?
我正在考虑在 VPN 笔记本电脑中使用某种应用程序连接到我的一台 Intranet PC,然后使用这台 PC 作为代理服务器并将请求从 Intranet 转发到 VPN。
我说得有道理吗?有现成的东西可以用吗?
答案1
您的场景描述了具有反向网关端口转发的 SSH 的确切用例。以下是其实现的一个可能示例:
1) 在您的内部网中设置一台 Linux 计算机并在那里安装 OpenSSH 服务器(IIRC,它必须足够新才能支持 SSHv2)。
2) 通过在 /etc/ssh/sshd_config 中设置“GatewayPorts yes”行来配置 SSHd 以启用网关端口。不要忘记重新启动 sshd。
3) 在您的 VPN 笔记本电脑上安装 PuTTY SSH 客户端。
4)为了从其他内联网计算机启用到 VPN 笔记本电脑的特定端口 $Port 的连接,请在 VPN 笔记本电脑上运行以下命令来创建隧道:
putty $LinuxIP-R $端口:本地主机:$端口-N
您的 Linux 网关将侦听 -R 选项中的第一个端口,然后将其转发到 VPN 笔记本电脑的 -R 选项中的第二个端口。在我的示例中,为简单起见,两个端口相同。-N 选项阻止 putty 在创建隧道后运行 shell。
如果需要多个端口进行转发,请以相同的格式提供多个 -R 选项。我还建议用 .BAT 脚本循环包装此命令,以便在网络链接中断时自动恢复隧道。