我位于防火墙后面,该防火墙仅允许端口 80 和 443 出去。
我家里有一台 Ubuntu 服务器,它在 443 上运行着一个 SSH 服务器,运行良好。因此我可以通过 SSH 将我的流量隧道传输到这个防火墙后面。
但是,我想通过 SSH 在防火墙后面的计算机和服务器之间建立 VPN 连接,以使所有互联网连接都通过隧道,而不需要在我需要隧道的每个应用程序上配置代理。
防火墙后面的计算机使用 Windows XP。
这可能吗?
答案1
是的,小菜一碟!
您的 WindowsXP 计算机需要成为所有其他计算机的默认路由。我经常使用类似的技术通过 HTTP 代理防火墙传输流量。
您需要做几件事:
在您的 ubuntu 服务器上,找到 sshd.conf 文件并启用 GatewayPorts(如果尚未启用)
在 WinXP 计算机上安装 Putty,并配置从 WinXP 到 Ubuntu 服务器的连接,在“隧道”部分下,创建一些隧道条目,确保选中“本地端口接受来自其他主机的连接”复选框,然后使用一些随机的非特权端口。您应该有一个如下列表:
L5000 1.2.3.4:443 其中 5000 是您所监听的本地端口,1.2.3.4 是您的 ubuntu 服务器。
现在您需要在服务下启用路由和远程访问服务(右键单击“我的电脑”,管理并导航到服务部分)。启用后,需要编辑以下 RegKey:HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Services > Tcpip > Parameters,并查找“IPEnableRouter”之类的内容。双击它并将值从 0 改为 1,然后重新启动计算机。
重启后,打开命令提示符并输入一些命令:
netsh routing ip nat install netsh routing ip nat add interface "if-public" full (其中 if-public 是用于连接 ubuntu 服务器的接口) netsh routing ip nat add interface "if-private" private
显然,您的 WinXP 机器不能使用 DHCP;这里您需要静态 IP 分配。
答案2
这可能无法准确回答问题,但您也可以在 PuTTY 上的连接 -> SSH -> 隧道配置屏幕中创建动态 ssh 隧道。这会在您指定的端口上创建一个 SOCKS 代理,如果您更改要使用的 Windows 互联网连接设置,则任何遵循这些设置的应用程序都将使用该代理。