如果您在某些网站上看到大量的横幅广告,您就会知道,如果没有虚拟私人网络(VPN),黑客将迅速侵入您的计算机,甚至可能会造成更大的损失。虽然这听起来有些夸张,但实际上,使用VPN的原因主要有两个。您当然可以付费购买服务,但如果您可以通过SSH访问互联网公共计算机,您也可以无需额外费用自行设置VPN服务。
什么是VPN?
VPN(虚拟私人网络)的基本思想是,您连接到另一网络上的远程计算机,这样所有的网络流量看起来就像是来自于该网络的本地流量。这种方式可以帮助您绕过或增强安全性。例如,您可能想要在不将网络打印机暴露于公共互联网的情况下,直接打印文件。即使您在咖啡店,也可以通过VPN连接到您的网络,像在办公室一样进行打印,同时在咖啡店的WiFi上,您的流量也会被加密。
使用VPN的两大理由
-
提升安全性
在公共场所使用WiFi时,VPN可以帮助您保护个人信息,防止黑客攻击。 -
隐匿位置
如果您想观看BBC的视频但居住在厄瓜多尔,您可以通过VPN连接到英国的网络,这样就不会被限制访问。
使用SSH建立VPN
使用SSH进行VPN连接可以满足以上两种需求。尽管如果您主要关注第一个原因,使用专用路由器或小型计算机(如Raspberry Pi)可能更合适,但如果您正在租用某个服务器,这种方法将非常有效。
前提条件
您只需具备对两台机器的root访问权限,并在远程机器上安装SSH服务器以及SSH客户端。两边都需要进行一些配置。如果您使用KDE,可以使用NetworkManager来设置,虽然这并不是必要的。
在服务器端,您需要在/etc/ssh/sshd_config
中设置 PermitTunnel=yes
,并可能需要将 AllowTCPForwarding
设置为yes。防火墙也可能需要进行一些调整。
客户端设置
如果您使用NetworkManager,您需要安装相应的插件。对于Debian类型的发行版,可以找到network-manager-ssh
包,这就是您需要的全部。如果不想使用插件,可以使用以下命令:
bash
ssh -f -v -o Tunnel=point-to-point -o ServerAliveInterval=10 -o TCPKeepAlive=yes -w 100:100 root@YOUR_SSH_SERVER \
'/sbin/ifconfig tun100 172.16.40.1 netmask 255.255.255.252 pointopoint 172.16.40.2' && \
/sbin/ifconfig tun100 172.16.40.2 netmask 255.255.255.252 pointopoint 172.16.40.1
您需要在两端都以root身份执行此操作,因为您正在创建一个隧道设备。
常见问题
现代系统通常不允许使用密码进行root登录,您需要先解决这个问题。此外,当NetworkManager运行SSH时,它会以root身份寻找主机密钥,而不是您的用户身份。如果找不到相关信息,它将会失败。
要允许root登录服务器,您需要编辑/etc/ssh/sshd_config
,将 PermitRootLogin
设置为yes。在完成下一步后,建议您将其更改回 PermitRootLogin prohibit-password
。
总结
完成上述步骤后,如果您使用NetworkManager插件,只需创建一个新连接,选择VPN连接部分并选择SSH。填写所需的参数,包括用于登录远程计算机的证书。保存连接后,您可以像使用其他网络接口一样激活它。
如果您想检查VPN是否正常工作,可以访问一个网站查看您的IP地址,然后激活VPN,再次查看。如果连接出现问题,可以查看系统日志以查找SSH抛出的错误信息。
结论
虽然有其他VPN解决方案,但由于几乎可以肯定您的远程计算机上安装了SSH服务器,因此这种方法设置起来非常简单,几乎不需要额外的计划。只要掌握一些技巧,您就可以利用SSH完成更多操作,包括文件挂载等。
如果您正在寻找快速、可靠的VPN解决方案,建议您考虑使用SSH建立VPN连接,既经济又实用。