如何为私人浏览设置SSH SOCKS隧道
有时您想私下浏览Internet,访问受地理限制的内容或绕过网络可能实施的任何中间防火墙。
一种选择是使用VPN,但这需要在计算机上安装客户端软件并设置自己的VPN服务器或订阅VPN服务。
更简单的选择是使用加密的SOCKS代理隧道路由本地网络流量。 这样,您使用代理的所有应用程序都将连接到SSH服务器,并且服务器会将所有流量转发到其实际目的地。 您的ISP(互联网服务提供商)和其他第三方将无法检查您的流量并阻止您访问网站。
本教程将引导您完成创建加密的SSH隧道以及配置Firefox和Google Chrome浏览器以使用SOCKS代理的过程。
先决条件
- 运行任何版本Linux的服务器,具有SSH访问权限,可通过它路由您的流量。
- 网页浏览器。
- SSH客户端。
设置SSH隧道#
我们将创建一个SSH隧道,该隧道将安全地从端口上的本地计算机转发流量 9090
到端口上的SSH服务器 22
。 您可以使用任何大于 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#
Windows用户可以使用PuTTY SSH客户端创建SSH隧道。 您可以在此处下载PuTTY。
启动Putty,然后在
Host name (or IP address)
领域。在下面
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)GoogleChromeApplicationchrome.exe" ^
--user-data-dir="%USERPROFILE%proxy-profile" ^
--proxy-server="socks5://localhost:9090"
如果配置文件不存在,将自动创建。 这样,您可以同时运行多个Chrome实例。
要确认SSH隧道正常运行,请打开 google.com
,然后输入“我的IP是什么”。 浏览器中显示的IP应该是服务器的IP地址。
结论#
您已经了解了如何设置SSH SOCKS 5隧道以及如何配置浏览器以私下和匿名方式访问Internet。 为了易于使用,您可以在SSH配置文件中定义SSH隧道,或创建Bash别名以设置SSH隧道并启动浏览器。
如果您遇到问题或有反馈,请在下面发表评论。
SSH安全