如何为私有浏览设置SSH SOCKS隧道

时间:2020-03-05 15:27:32  来源:igfitidea点击:

有时候,我们想私下浏览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地址。