如何通过 SSH 为 Chrome 上的特定 URL 执行 HTTP 隧道?

How to do HTTP Tunneling over SSH for specific URLs on Chrome?

我使用以下命令通过 ssh 连接到我的大学服务器:

ssh myid@cs.bu.edu

另一台服务器 hidden.bu.educs.bu.edu 中设置了防火墙。为了访问 hidden.bu.edu,我在家用笔记本电脑的 ~/.ssh/config 中添加了以下行。

Host hidden.bu.edu
    ProxyCommand ssh myid@cs.bu.edu -W %h:%p

现在我只需 ssh myid@hidden.bu.edu 即可从家用笔记本电脑登录 hidden.bu.edu

现在我有另一个 HTTP 隐藏服务器 webhidden.bu.edu,只能从内部访问 cs.bu.edu。我可以使用 VPN 访问 Google Chrome 中的 webhidden.bu.edu,但我不想使用任何 VPN 软件。是否可以通过 ssh 通过 cs.bu.edu 在 Google Chrome 中隧道传输 webhidden.bu.edu,就像我使用代理进行 ssh-ing hidden.bu.edu.

我知道 HTTP 隧道可能有效,但我只想在 Google chrome 中输入 webhidden.bu.edu,它应该通过我的 ssh config 建立隧道。这也是在 git 服务器的情况下发生的情况,只需在 ~/.ssh/config 中添加以上行即可。 HTTP请求有什么可能吗?

在我的 ~/.ssh/config 我创建了一个代理:

Host buproxy
  HostName csa3.bu.edu
  User soham1 
  IdentityFile ~/.ssh/id_rsa
  DynamicForward 9500
  ControlMaster auto
  ControlPath ~/.ssh/sockets/%r@%h:%p

我在 shell 上为代理命令添加了以下内容:

alias proxy-on='/usr/bin/ssh -fN buproxy'
alias proxy-check='/usr/bin/ssh -O check my-proxy'

然后我在 shell 终端上使用 proxy-on 命令打开代理。

之后,我使用 SwitchyOmega Google Chrome 扩展设置了一个 SOCKS5 localhost:9500 代理来通过这个 ssh-proxy 浏览任何网页。我在 SwitcyOmega 中设置通配符以自动切换特定网站,例如 *.acm.org, *.ieee.org.