我不想指定一个IP地址,因为它可以在DHCP LAN中更改。 我试图连接到Linux服务器的名称,但既没有腻子也没有Windows的Ping.exe可以解决它。
我可以看到几个类别的解决scheme:
您可以configurationdhcp使用dhcp请求发送主机名。 很明显,你需要你的dhcpd和nameserver来支持这个function,但是很多路由器都支持这个function,所以它的值得检查一下。
不幸的是,你运气不好。 为了做到这一点,你需要使用像mDNS的东西。 它在OSX中被称为Bonjour,但在苹果以外还没有达到临界质量。 如果您控制DHCP服务器,则可以为特定系统设置DHCP保留。 在这种情况下,具有特定MAC地址的NIC将始终与DHCP服务器获得相同的,静态定义的地址。
除非是在某个DNS服务器上,否则你不可能解决这个问题。 您需要知道IP地址,或者您可以使用某些服务(如No-IP)将FQDN更新到服务器的当前IP地址。 当然,这只适用于具有公共IP地址的服务器。
对于内部地址,您可能需要在服务器上编写一个脚本,该脚本将向您发送在某个时间点具有的IP。
在你的问题中有些事情还不清楚,但我会尽量给出一个广泛的答案。
为了通过主机名连接到机器,您需要在networking上激活一个名称parsing服务 – 即DNS或WINS服务器。 看到你说你的机器不能通过名字互相ping通,看起来你在networking中没有DNS服务器(或者这两台机器都没有设置主DNS服务器)。 这就引出了一个问题 – 什么networking环境会有DHCP,但没有DNS?
如果在networking上有一个DNS服务器,那么你只需要设置两台机器来联系它(在Windows中的networking连接属性,god-knows-where.conf在Linux中),你就完成了。
那么我们假设没有DNS服务器。
假设您可以控制networking中的DHCP服务器,最简单的解决scheme是在DHCP服务器中设置静态IP映射。 让它每次给linux服务器相同的ip(绑定一个特定的IP到服务器的NIC的MAC地址)。 然后你可以编辑Windows工作站上的主机文件(在%systemroot%\ system32 \ drivers \ etc中find),并将特定的名称映射到该地址,并享受自己的乐趣。
如果你不能控制DHCP …那么,我个人而言,我只是去做那些做的人(并告诉他们在那里得到一个DNS服务器为上帝!)
我可以想到其他一些可能会绕过这个问题的疯狂的东西(编写一个脚本来ping整个子网,运行arp -a到一个文件,然后扫描它find服务器的MAC地址,从而解决它的IP。 Sheesh,这是生病的)。 认真地说,我会尝试获得一个体面的名称parsing服务启动和运行。
我也有一个DHCPnetworking上的Linux服务器。 我发现使用DHCP最简单的方法,仍然能够轻松连接到服务器是给它一个静态IP。 您仍然可以为其他客户端使用DHCP,但为您的服务器使用静态IP。
你不会说你使用的是什么Linux发行版,但是这里是Arch Linux的rc.conf的相关部分。
lo="lo 127.0.0.1" eth0="eth0 192.168.1.11 netmask 255.255.255.0 broadcast 192.168.0.255" INTERFACES=(lo eth0) gateway="default gw 192.168.1.1" ROUTES=(gateway)
正如其他人指出的那样,问题在于名称parsing,而不是SSH。
但最好的解决scheme是configurationDNS,DHCP服务器和DHCP客户端,以便为所有DHCP客户端自动创buildDNS条目。 这很容易用微软的DHCP服务器完成(我应该能够提供指导,如果这是有帮助的),但也应该可以与其他服务器。
基本上你需要: