使用FreeBSD / pf根据主机名路由sshstream量?

我有一台运行FreeBSD 9的代理/防火墙机器,使用PF来根据需要路由和过滤stream量。

现在我设置了一个运行在ssh上的git服务器,但是我已经在使用ssh的22端口了。 我想从任何IP到22端口的stream量路由到另一台机器,如果他们用来访问服务器的主机名是一个子域名(git.mydomain.com)。 一种虚拟主机,但对于SSH …

这可能与pf? 有什么build议么?

对不起,你所要求的是不可能的 – IPstream量(和IP防火墙)只知道IP地址 – 它不知道主机名。

您只能有一个进程侦听特定IP地址上的特定端口。 网站的虚拟主机工作,因为Web服务器接收到HTTP头中的主机名(参见http://en.wikipedia.org/wiki/Virtual_hosting ),并且在SSH中没有类似的机制。

你的select是相当有限的:

  1. configuration您的常规SSH服务器来处理gitstream量(可能是最好的select)。
  2. 获取另一个IP地址。
  3. 在备用端口上运行SSH服务器以使用git。

一旦在备用端口上安装了git的SSH服务器,可以通过在~/.ssh/config添加以下内容来自动使用它:

 Host git.mydomain.com HostName router.mydomain.com Port 2222 

如果它是同一台机器,那么只需将git.example.com指向它即可。