通过SSH的VPN连接

我在一个只允许端口80和443的防火墙后面。

我有一台Ubuntu服务器在家里有一台运行在443上的SSH服务器,它工作正常。 所以我可以通过SSH将我的stream量通过防火墙。

但是,我想通过SSH在防火墙后面的计算机和服务器之间build立VPN连接,使所有的互联网连接都通过隧道,而无需在每个需要隧道的应用程序上configuration代理。

防火墙后面的计算机使用Windows XP。

这可能吗?

是的,小菜一碟!

您的WindowsXP框将需要成为所有其他计算机的默认路由。 我经常使用类似的技术来通过HTTP代理防火墙来传输stream量。

几件你需要做的事情:

  1. 在您的Ubuntu服务器上,findsshd.conf文件并启用(如果不是GatewayPorts的话)

  2. 在你的WinXP电脑上安装Putty,并configuration一个从WinXP到你的Ubuntu服务器的连接,然后在Tunnels部分,创build一些隧道条目,确保选中“本地端口接受来自其他主机的连接”框,然后使用一些随机的非特权端口。 你应该有这样的列表:

L5000 1.2.3.4:443其中5000是你监听的本地端口,1.2.3.4是你的Ubuntu服务器。

  1. 现在您需要启用服务下的路由和远程访问服务(右键单击我的电脑,pipe理和导航到服务部分)。 一旦启用,需要编辑下面的RegKey:HKEY_LOCAL_MACHINE> SYSTEM> CurrentControlSet> Services> Tcpip> Parameters并寻找类似“IPEnableRouter”的东西。 双击它,将值从0变为1,然后重新启动计算机。

  2. 重新启动后,popup打开命令提示符并键入一些命令:

    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分配。

这可能不完全回答这个问题,但你也可以在PuTTY上的连接 – > SSH – >隧道configuration屏幕上创build一个dynamic的ssh隧道。 这将在您指定的端口上创build一个SOCKS代理,如果您更改了Windows Internet连接设置以使用,那么任何遵从这些设置的应用程序都将使用该代理。