让 Chrome 走 ssh 代理

有时要远程访问路由器 Web 控制面板等只能从服务器所在网络访问的网站。在服务器上用 links 显然是不靠谱的。我们可以在本机与服务器间用 ssh 打通隧道,让本地浏览器通过隧道访问受限的网站。

首先用 ssh -D 在本机与服务器间建立 socks5 隧道:(60000 是一个任意的大于 1024、小于 65536 的整数)

ssh -C2qTnN -D 60000 user@remote-host

然后就是让 Chrome 通过 socks5 隧道访问了。Chrome 插件 ProxySwitchy 由于 Chrome 不再支持 NPAPI 已经不 work,而 ProxySwitchySharp 有时也不 work。网上有些文章说 chrome –proxy-server 就行,事实上在你开着另外一个 Chrome 实例时是不 work 的,因为 Chrome 会自动寻找已经打开的实例。

比较靠谱的办法是,开 Incognito 匿名模式,并使用不存在的 Chrome 用户数据目录,断绝其寻找已打开实例的可能。用完之后,最好把新建的用户数据目录(下例中是 C:\Temp\Chrome)删除。注意,下面的 socks5 不可替换为 http,这是不同的协议。

PS C:\Program Files (x86)\Google\Chrome\Application> .\chrome.exe --proxy-server="socks5://127.0.0.1:60000" -incognito -user-data-dir=C:\Temp\Chrome