在 HTTP 代理后面使用 ssh 和 corkscrew/proxychains

在 HTTP 代理后面使用 ssh 和 corkscrew/proxychains

我正在查看的 Ubuntu 机器位于支持 CONNECT 到 80/443 端口的代理后面。我在端口 443 上设置了一个外部 ssh 服务器,可以使用 corkscrew / ssh 连接到它,没有任何问题

ssh_配置:

Host *
    ProxyCommand corkscrew corp.proxy.ip 8080 %h %p 

命令行启动ssd:

ssh -D 1080 [email protected] -p 443

所以正如我所说的,一切都运行正常。问题是 -D 参数(该参数应该打开 SOCKS 代理)不起作用。

当我运行 proxychains 时,我得到的是:

 user@laptop:$ proxychains git pull
 ProxyChains-3.1 (http://proxychains.sf.net)
 random chain (1):....127.0.0.1:1080....can't connect to..corp.proxy.ip:8080

因此,它似乎由于某种原因再次发起与代理的连接。

类似的设置在 Windows 机器(Bitvise Tunneller/Freecap)上运行良好,所有隧道运行良好。

我曾尝试过:

  1. 使用 -D 启动 ssh,在配置中有代理
  2. 注释代理,而(1)仍然运行
  3. 运行代理链

这次 ssh 没有尝试连接代理,连接正常,但每次来回编辑配置几乎不是一个解决方案。

那么有什么想法可以正确修复吗?

谢谢!

答案1

解决方案毕竟很简单:仅当第一次需要建立隧道时才让 ssh 连接到代理:

ssh_配置:

Host external-host.com
    ProxyCommand corkscrew corp.proxy.ip 8080 %h %p

这很酷。

谢谢大家观看:)

相关内容