我将帮助build立一个分布在不同networking上的一堆(> 50台)机器。 因此,先验,我将无法知道每台机器的IP地址是什么。 在部署之前,我可以将任何软件添加到机器上。 主要的是我需要能够ssh到他们每个部署之后不时更新它们。
有没有一个软件包可以帮我把所有的这些机器搞混? 有没有办法让我设置一些能让他们每隔一段时间“打电话回家”并跟踪他们的IP地址? 有没有一个词我可以谷歌这将有助于解决这个问题?
这正是DNS所擅长的,而IP地址则不是。 如果您将每台主机设置为具有单独的主机名,并且每次连接到networking时都要对中央服务器进行dynamicDNS更新,那么您将始终可以使用ssh(例如) server43.dynamic.example.com 。
从上面的例子可以看出,如果你这样做,我build议为这些dynamic主机委托一个子区域,以避免任何人污染你的主DNS。
编辑:首先,你select你的域名。 假设你可以从你的主公司获得一个子域名,比如说sub.example.com 。
然后你得到一些DNS服务器; 两个是好数字。 也许你可以在你的企业服务器上搭载,也许你必须得到几个VPS或租用NS从某个线索租用。 您可以让您的公司DNS人员将sub.example.com委托给这些服务器。
然后,您将所有这些客户端configuration为在该子域中对这些域名服务器执行DDNS更新。 您将它们全部设置为有效的秘密来执行TSIG更新,并且您将主服务器设置为接受dynamic更新,但只有在正确签名的情况下。
当客户端联机时,如client33 ,它将为client33.sub.example.com执行DDNS更新,如上所述。 您的中央传播框可以在任何时候ssh到client33.sub.example.com知道地址将是最新的。
你可以给家里一个非常简单的SSH密钥解决scheme。
在每个远程主机上设置技术用户,然后部署。
这些用户有一个密钥对(ssh-genkey),公钥添加到你的主服务器上的授权主机上。 最重要的是,你需要设置一个cronjob,它试图每小时login一次到家庭服务器并注册它的IP地址。
那个怎么样?
傀儡可能会为你做伎俩,但是一个本土解决scheme可能包括:
在您的中央服务器上创build一个帐户(最好是chroot jail)并设置一个SSH密钥。 将私钥分配给所有客户端,并使用cron中的密钥将其设置为使用SSH连接到中央服务器:
ssh -i /home/user/.ssh/id_rsa_key_for_central_server user @ centralserver“echo hostname is $ ipaddress >> sometracking.file”
您可以使用SSH反向隧道。 一个例子:
http://abechik.wordpress.com/2007/04/18/persistant-ssh-reverse-tunnel-connection/
对于每个客户端使用不同的端口,所以你可以连接使用:
ssh localhost -p <client_port>