背景
我在代理服务器后面的公司网络上工作。我还使用一些远程站点,我可以通过堡垒/跳转主机 ssh 代理访问这些站点。
在~/.ssh/config
我的 SSH 隧道中,我有一个代理配置,允许跳过我们的堡垒主机以到达远程实验室
Host *.remoteLab1
ProxyCommand ssh -l USERNAME BASTIONHOST1 nc %h %p
Host *.remoteLab2
ProxyCommand ssh -l USERNAME BASTIONHOST2 nc %h %p
我同时使用 OSX 和 Linux,所以我认为命令或多或少是相同的
目前的解决方案
我当前的解决方案不太理想。我基本上与远程实验室之一建立了袜子连接,例如:
ssh -D 1080 remoteLab1
ssh -D 1081 remoteLab2
然后在两者中我realvnc
都chrome
将代理服务器更改为localhost:1080 / localhost:1081
.在 chrome 中我有一个插件可以让我做到这一点,在 VNC 中有它的手册。
由于这两个远程实验室都有一个独特的域,我想知道是否有一种更简单的方法来使用路由表来根据 IP 地址通过这些袜子代理发送所有流量
请求的解决方案
鉴于:端口上打开了socks5隧道1080
鉴于:端口上打开了socks5隧道1081
要求
domain1.org
经过的地址1080
domain2.org
经过的地址1081
- 失败 - 其他一切都通过标准代理服务器
值得拥有的
- 该解决方案不是永久性的 - 它是通过脚本结合打开袜子隧道之一来启用的
是否还可以通过代理服务器之一映射特定的 IP 地址而不是域
想法
我不太确定从哪里开始处理这一切。我在某处看到的一个解决方案是使用 a ,proxy.pac
但是公司网络已经有 a proxy.pac
,我不确定是否有办法进行失败,pac
如果不在我的自定义中,.pac
则使用公司中的设置.pac
使用iptables
orroute
命令 - 然而这两个都有点超出了我的知识范围
设置本地环回什么的
答案1
我建议将您的ProxyCommand
using更改nc
为 use -W
。例如:
ProxyCommand ssh -l USERNAME BASTIONHOST1 -W %h:%p
这对堡垒主机的要求较少,因此,如果管理员决定更改堡垒主机的配置方式,则不太可能出现故障。
我认为没有任何方法可以在不同的 pac 文件之间进行切换。但您或多或少可以将两个 pac 文件连接起来 - 但有一点需要注意。入口点将存在于两个文件中。您需要重命名原始 pac 文件中的入口点,并且在您自己的添加中,您可以调用该函数的重命名版本。
从历史上看,入口点是一个名为 FindProxyForURL 的函数。一些较新的浏览器具有通过使用不同名称的入口点激活的扩展。