如何为私有浏览设置SSH SOCKS隧道
有时候,我们想私下浏览Internet,访问受地理限制的内容或者绕过网络可能实施的任何中间防火墙。
一种选择是使用VPN,但这需要在计算机上安装客户端软件并设置自己的VPN服务器或者订阅VPN服务。
更简单的选择是使用加密的SOCKS代理隧道路由本地网络流量。
这样,我们使用代理的所有应用程序都将连接到SSH服务器,并且服务器会将所有流量转发到其实际目的地。
ISP(互联网服务提供商)和其他第三方将无法检查流量并阻止我们访问。
本教程将引导我们完成创建加密的SSH隧道以及配置Firefox和Google Chromeweb浏览器以使用SOCKS代理的过程。
准备工作
- 运行任何版本Linux的服务器,具有SSH访问权限,可通过它路由流量。
- 网页浏览器。
- SSH客户端。
设置SSH隧道
我们将创建一个SSH隧道,该隧道将安全地将流量从端口“ 9090”上的本地计算机转发到端口“ 22”上的SSH服务器。
我们可以使用大于“ 1024”的任何端口号,只有root可以在特权端口上打开端口。
Linux和macOS
如果我们在本地计算机上运行Linux,macOS或者任何其他基于Unix的操作系统,则可以使用以下“ ssh”命令轻松启动SSH隧道:
ssh -N -D 9090 [USER]@[SERVER_IP]
使用的选项如下:
- '-N'-告诉SSH不要执行远程命令。
- '-D 9090'-在指定的端口号上打开SOCKS隧道。
- '[USER] @ [SERVER_IP]'-远程SSH用户和服务器IP地址。
- 要在后台运行命令,请使用'-f'选项。
- 如果SSH服务器正在侦听22以外的端口(默认端口),请使用'-p [PORT_NUMBER]'选项。
运行命令后,系统将提示我们输入用户密码。
输入后,我们将登录到服务器并建立SSH隧道。
我们可以设置基于SSH密钥的身份验证并连接到服务器,而无需输入密码。
视窗
Windows用户可以使用PuTTY SSH客户端创建SSH隧道。
我们可以在此处下载PuTTY。
- 启动Putty,然后在“主机名(或者IP地址)”字段中输入服务器的IP地址。
- 在“连接”菜单下,展开“ SSH”,然后选择“隧道”。在“源端口”字段中输入端口“ 9090”,然后选中“动态”单选按钮。
- 单击“添加”按钮,如下图所示。
- 返回“会话”页面以保存设置,这样我们无需每次都输入它们。在“已保存的会话”字段中输入会话名称,然后单击“保存”按钮。
- 选择已保存的会话,然后单击“打开”按钮登录到远程服务器。
将出现一个新窗口,要求我们输入用户名和密码。输入用户名和密码后,我们将登录到服务器并启动SSH隧道。设置公钥身份验证将使我们无需输入密码即可连接到服务器。
配置浏览器以使用代理
现在,我们已经打开了SSH SOCKS隧道,最后一步是配置首选浏览器以使用它。
火狐浏览器
对于Windows,macOS和Linux,以下步骤相同。
- 在右上角,点击汉堡包图标“☰”以打开Firefox菜单:
- 单击“⚙首选项”链接。
- 向下滚动到“网络设置”部分,然后单击“设置...”按钮。
- 一个新的窗口将会打开。
- 选择“手动代理配置”单选按钮。
- 在“ SOCKS主机”字段中输入“ 127.0.0.1”,在“端口”字段中输入“ 9090”。
- 选中“使用SOCKS v5时的代理DNS”复选框。
- 单击“确定”按钮以保存设置。
至此,Firefox已配置完毕,我们可以通过SSH隧道浏览Internet。
要进行验证,我们可以打开“ google.com”,键入“ what is my ip”,然后我们应该会看到服务器IP地址。
要恢复为默认设置,请转到“网络设置”,选择“使用系统代理设置”单选按钮并保存设置。
还有一些插件可以配置Firefox的代理设置,例如FoxyProxy。
谷歌浏览器
Google Chrome使用默认的系统代理设置。
我们可以使用SwitchyOmega之类的插件,也可以从命令行启动Chrome网络浏览器,而无需更改操作系统代理设置。
要使用新的配置文件和SSH隧道启动Chrome,请使用以下命令:
Linux:
/usr/bin/google-chrome \ --user-data-dir="$HOME/proxy-profile" \ --proxy-server="socks5://localhost:9090"
苹果系统 :
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \ --user-data-dir="$HOME/proxy-profile" \ --proxy-server="socks5://localhost:9090"
Windows:
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" ^ --user-data-dir="%USERPROFILE%\proxy-profile" ^ --proxy-server="socks5://localhost:9090"
如果配置文件不存在,将自动创建。
这样,我们可以同时运行多个Chrome实例。
要确认SSH隧道是否正常运行,请打开“ google.com”,然后输入“ what is my ip”。
浏览器中显示的IP应该是服务器的IP地址。