使用SSH动态端口转发绕过中国防火墙
动态端口转发可用于绕过中国的大型防火墙或任何其他防火墙或Internet过滤系统。 在本教程中,我们将研究如何使用两个SSH客户端(OpenSSH客户端和PuTTY)创建具有动态端口转发功能的安全SSH隧道。
要遵循本教程,您将需要具有运行OpenSSH服务器守护程序的自己的Linux服务器。 您可以以每月5美元的价格从Digital Ocean租用良好的VPS。
让我们从OpenSSH SSH客户端开始。
使用OpenSSH SSH客户端进行动态端口转发
几乎每个Linux发行版都随附有OpenSSH SSH客户端。 以下命令将您连接到远程SSH服务器,并同时启用动态端口转发。
ssh -D port-number [email protected]
如果远程SSH服务器12.34.56.78上有用户john,则可以运行:
ssh -D 1080 [email protected]
输入用户john的密码。 -D
选项启用动态端口转发。 1080是通用端口。 您也可以使用其他端口,例如8080。
运行此命令后,将在Linux PC和SSH服务器之间建立具有动态端口转发功能的安全SSH隧道。 ssh客户端将作为本地SOCKS代理服务器侦听127.0.0.1:1080。 你可以用
sudo netstat -lnpt
通过SSH隧道引导浏览器流量
现在,在Firefox浏览器中,转到 Preferences
> Advanced
> Network
> Settings
。
选择手动代理配置。 在“ SOCKS主机”字段中输入127.0.0.1,然后输入1080作为端口号。 检查SOCKS v5和远程DNS。 点击确定按钮。
如果不选中“远程DNS”,则不会通过隧道传输DNS流量。
现在访问https://www.whatismyip.com。 您会发现您的IP是SSH服务器的IP。 您已经成功绕过了防火墙,可以自由浏览Internet。
如果确实如此,所有具有SOCKS代理支持的程序都可以使用此SSH隧道隐藏真实IP地址。
如果您的网络速度较慢,则可以使用 -C
加快连接速度的选项,如下所示:
ssh -C -D 1080 [email protected]
PuTTY SSH客户端的动态端口转发
PuTTY SSH客户端还支持动态端口转发。 在Debian / Ubuntu上,可以通过以下方式安装PuTTY:
sudo apt-get install putty
打开PuTTY SSH客户端,选择 SSH
> Tunnels
在左窗格中。 然后在右侧窗格中,输入源端口,例如1080。选择“动态”作为端口转发的类型,然后单击“确定”。 Add
按钮。
然后单击左侧窗格上的会话,在主机名字段中输入服务器的IP。 在“保存会话”字段中,为此会话输入一个名称,例如DPF(动态端口转发),然后单击“保存”按钮。
然后输入您的用户名和密码以连接到SSH服务器。 将创建具有动态端口转发的SSH隧道,PuTTY将在充当本地SOCKS代理服务器的127.0.0.1:1080上进行侦听。 使用以下命令检查计算机上的侦听端口 netstat
命令:
sudo netstat -lnpt
现在,您所需要做的就是通过此SSH隧道引导浏览器的流量。
SSH隧道中的所有流量均已加密。 如果您使用的是不安全的公共Wi-fi,则可以考虑使用SSH动态端口转发来加密所有流量。
请注意,当SSH会话结束时,SOCKS代理将停止工作。
总是欢迎提出意见,问题或建议。 如果您认为这篇文章很有用,? 在社交媒体上与您的朋友分享! 请继续关注更多Linux教程。