我可以使用SSH隧道作为VPN替代品吗?

我在家工作

我需要访问办公室里的机器。 该办公室有一个私人局域网(例如192.168.0.0/16),其上有100台机器。 我希望能够从家中访问这些机器。

我们在gateway.example.org上有一个SSH堡垒(SSH网关)主机,我们可以用它来做SSH隧道。

这是我想要做的:

  1. 从家里的SSH到gateway.example.org。 不知何故,我需要build立适当的隧道(SSH隧道,SOCKS代理等)
  2. 如果请求是针对192.168.0.0/16上的IP,则强制通过隧道或代理。
  3. 如果请求的IP与192.168.0.0/16networking不匹配,则不要使用代理。 有些人使用ssh来传输所有的TCP通讯 。 但我只想代理请求到192.168.0.0/16networking。

我可以使用SSH转发或代理来做到这一点?

我可以在Linux / Unix上使用带有SSHdynamic端口转发的SOCKS代理和OpenSSH(PuTTY支持类似的function):

ssh -v -D 3333 gateway.example.org. 

但是这只适用于浏览器和其他一些SOCKS感知应用程序。

我想通过代理强制一些其他stream量(VNC端口5900/5901)。 特别是,我试图弄清楚如何让戴尔DRAC和应用程序以及Supermicro IPMI KVM-over-LAN在这个SSH隧道上工作。

我目前使用Mac(雪豹)笔记本电脑,虽然我正在寻找一个更一般的networking概念,将在多个操作系统上工作。

我使用dynamic端口转发和智能代理的组合。

ssh -D 12345我@工作

这将设置一个SOCKS代理,在端口12345上侦听本地计算机,并将stream量代理到您的工作networking。

然后在Firefox上安装“FoxyProxy”。 FoxyProxy有规则允许它决定是直接发送一个HTTP请求到目的地,还是通过代理发送。

你想通过隧道运行vnc。 像xvncviewer这样的浏览器有一个“-via”选项,它将为该会话打开自己的SSH隧道。 或者你可以通过像“tsocks”这样的程序来运行vnc查看器,该程序将使用我们上面设置的12345隧道。

我正在寻找一个更一般的networking概念,这将在多个操作系统上工作。

更通用的select只是build立一个VPN。 有许多不同的VPN技术。 我非常喜欢OpenVPN。

有一些方法可以通过SSHbuild立一个VPN,但这并不能很好地执行,而且大多数方法往往需要很多模糊的configuration,这些方法不会跨平台。