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

有时您希望私下浏览Internet,访问受地理限制的内容或绕过网络可能强制执行的任何中间防火墙。

一种选择是使用VPN,但这需要在您的计算机上安装客户端软件并设置您自己的VPN服务器或订阅VPN服务。

更简单的替代方法是使用加密的SOCKS代理隧道路由本地网络流量。这样,使用代理的所有应用程序都将连接到SSH服务器,服务器会将所有流量转发到其实际目标。您的ISP(互联网服务提供商)和其他第三方将无法检查您的流量并阻止您访问网站。

本教程将引导您完成创建加密SSH隧道和配置Firefox和Google Chrome Web浏览器以使用SOCKS代理的过程。

  • 运行任何Linux版本的服务器,具有SSH访问权限以通过它路由您的流量。
  • 网页浏览器。
  • SSH客户端。

我们将创建一个SSH隧道,该隧道将安全地将来自本地计算机的端口9090上的流量转发到端口上的SSH服务器22。您可以使用大于的任何端口号1024

如果在本地计算机上运行Linux,macOS或任何其他基于Unix的操作系统,则可以使用以下命令轻松启动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 。

  1. 启动Putty并在Host name (or IP address)字段中输入您的服务器IP地址。
  2. Connection菜单下,展开SSH并选择Tunnels9090Source Port字段中输入端口,然后选中Dynamic单选按钮。
  3. 单击Add按钮,如下图所示。
  4. 返回Session页面以保存设置,这样您每次都不需要输入它们。在Saved Session字段中输入会话名称,然后单击Save按钮。
  5. 选择已保存的会话,然后单击Open按钮登录远程服务器。

    将显示一个询问您的用户名和密码的新窗口。输入用户名和密码后,您将登录到服务器并启动SSH隧道。

    设置公钥认证将允许您连接玩具服务器而无需输入密码。

现在您已打开SSH SOCKS隧道,最后一步是配置首选浏览器以使用它。

对于Windows,macOS和Linux,以下步骤相同。

  • 在右上角,点击汉堡包图标打开Firefox的菜单:
  • 单击⚙ Preferences链接。
  • 向下滚动到该Network Settings部分,然后单击Settings...按钮。
  • 将打开一个新窗口。
    • 选择Manual proxy configuration单选按钮。
    • 输入127.0.0.1SOCKS Host字段和9090Port外地。
    • 选中Proxy DNS when using SOCKS v5复选框。
    • 单击OK按钮以保存设置。

此时,您的Firefox已配置,您可以通过SSH隧道浏览Internet。要验证它,您可以打开google.com,键入“我的IP是什么”,您应该看到您的服务器IP地址。

要恢复默认设置,请转到Network Settings,选择Use system proxy settings单选按钮并保存设置。

还有几个插件可以帮助您配置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地址。

您已学习如何设置SSH SOCKS 5隧道并将浏览器配置为私下匿名访问Internet。为了便于使用,您可以在SSH配置文件中定义SSH隧道,或创建将设置SSH隧道并启动浏览器的Bash别名。