通过SSH的Intranet

提前感谢您提供的任何帮助/build议。 我有以下设置

  • 我有一个Ubuntu服务器(ubuntu_server),它提供了SSH访问(只使用密钥,没有用户名/密码)到互联网连接的用户(ubuntu_server在LAN_1上)
  • 我可以使用PuTTY + Pageant从Windows客户端(windows_client)连接到ubuntu_server(windows_client在LAN_2上)
  • 使用这里提供的说明( http://www.devdaily.com/unix/edu/putty-ssh-tunnel-firefox-socks-proxy/1-putty-ssh-tunnel-introduction.shtml )我可以使用Firefox / Chrome(还没有尝试IE),并通过ubuntu_server路由我的网页浏览windows_client。 如果我正确理解它的安全,encryption的方式来访问互联网(如在公共WiFi等)。

作为一个副作用,我意识到我可以在ubuntu_server上访问HTTP / HTTPS / FTP服务,就好像它们在同一个局域网上(即LAN_2上的windows_client可以访问LAN_1的资源,至less在ubuntu_server上)。 所以我试图完成以下(甚至不确定是否可行或可行)

  • 使用“SSH + PuTTY + Firefox / Chrome socks代理”为通过Internet连接到ubuntu_server的用户提供Intranet访问权限,但需要进一步提供,不仅可以访问安装在ubuntu_server上的服务,还可以访问位于同一LAN上的ubuntu_server_2,windows_server_1作为ubuntu_server(即LAN_1)。
  • 那么如何configuration它,以便当用户SSH进入ubuntu_server和Firefox(通过代理当然)进入“ https:// ubuntu_server_2 ”时,它们由ubuntu_server_2上的HTTPS服务提供服务(同样也适用于windows_server_1)

我在Google和ServerFault上做了一些search,结果什么都没发现,但是我不知道我是否使用了正确的关键字(“intranet over ssh”)来寻找答案。

你正在讨论的是build立一个虚拟专用networking(VPN)。 是的,你可以使用SSH来build立一个原始的VPN ,但你也可以看看其他选项 。

谷歌的 其他 链接 searchSSH VPN 。

注意:更新了“其他选项”链接,因为我的第一次尝试是方式,过时的方式,新的只是过时的方式。

你可以做你正在描述的东西,但是你需要改变你的代理设置。 您的代理将需要设置为在远程端执行DNS查找(通过代理发送)。 此外,ubuntu_server_1将需要能够解决ubuntu_server_2和windows_server_1(可能已经安装)。

只要你可以让代理执行你的DNS查找,它应该工作得很好。 显然FireFox会让你通过打开about:config页面并将network.proxy.socks_remote_dns更改为true。 (我没有testing过,我只是查了一下。)

您可能不想使用SSH进行VPN。 虽然它的工作,连接中的一个小小的打嗝可能会导致TCP呃逆。 使用OpenVPN或Hamachi这样的UDP风格的VPN会更好。

这听起来像你的主要问题可能只是DNS。

既然你已经有了ubuntu_server为你做了查找,它应该已经能够访问lan_2中的其他项目了。

但是,在远程计算机上尝试访问https:// ubuntu_server_2 /时,它正在尝试在DNS本地联系代理服务器之前在本地查找该联系人。

快速的方法来testing,而不是去https:// ubuntu_server_2 /尝试到lan_1上的ubuntu_server_2的IP地址(例如: https ://192.168.1.5)。 这将使DNS部分失去作用,因为你正在告诉Firefox到底要去哪个地址。