有时您希望私下浏览Internet,访问受地理限制的内容或绕过网络可能强制执行的任何中间防火墙。
一种选择是使用VPN,但这需要在您的计算机上安装客户端软件并设置您自己的VPN服务器或订阅VPN服务。
更简单的替代方法是使用加密的SOCKS代理隧道路由本地网络流量。这样,使用代理的所有应用程序都将连接到SSH服务器,服务器会将所有流量转发到其实际目标。您的ISP(互联网服务提供商)和其他第三方将无法检查您的流量并阻止您访问网站。
本教程将引导您完成创建加密SSH隧道和配置Firefox和Google Chrome Web浏览器以使用SOCKS代理的过程。
先决条件
- 运行任何Linux版本的服务器,具有SSH访问权限以通过它路由您的流量。
- 网页浏览器。
- SSH客户端。
设置SSH隧道
我们将创建一个SSH隧道,该隧道将安全地将来自本地计算机的端口9090
上的流量转发到端口上的SSH服务器22
。您可以使用大于的任何端口号1024
。
Linux和macOS
如果在本地计算机上运行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 。
- 启动Putty并在
Host name (or IP address)
字段中输入您的服务器IP地址。
- 在
Connection
菜单下,展开SSH
并选择Tunnels
。9090
在Source Port
字段中输入端口,然后选中Dynamic
单选按钮。
- 单击
Add
按钮,如下图所示。
- 返回
Session
页面以保存设置,这样您每次都不需要输入它们。在Saved Session
字段中输入会话名称,然后单击Save
按钮。
- 选择已保存的会话,然后单击
Open
按钮登录远程服务器。
将显示一个询问您的用户名和密码的新窗口。输入用户名和密码后,您将登录到服务器并启动SSH隧道。
设置公钥认证将允许您连接玩具服务器而无需输入密码。
配置浏览器以使用代理
现在您已打开SSH SOCKS隧道,最后一步是配置首选浏览器以使用它。
火狐
对于Windows,macOS和Linux,以下步骤相同。
- 在右上角,点击汉堡包图标
☰
打开Firefox的菜单: - 单击
⚙ Preferences
链接。 - 向下滚动到该
Network Settings
部分,然后单击Settings...
按钮。 - 将打开一个新窗口。
- 选择
Manual proxy configuration
单选按钮。 - 输入
127.0.0.1
的SOCKS Host
字段和9090
在Port
外地。 - 选中
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别名。