如果这个问题在错误的堆栈上,或者被认为是在寻求服务建议,请原谅我提出这个问题。我尝试向网络工程部门询问这个问题,但他们不处理 OSI 第 4 层上的任何内容,并引导我到这里。
我将在我的大学局域网上托管一个无头服务器(但充当另一个客户端)。我希望能够从我的笔记本电脑通过 SSH 进入它,但是这个网络是基于 DHCP 的,因此其中一个或两个都可以根据网络判断更改 IP。如果服务器的 IP 地址发生变化,我该如何让我的笔记本电脑知道它?我当时想使用 python 来检测服务器何时更改 IP 地址,然后使用电子邮件客户端通过电子邮件向自己发送新的 IP 地址,然后让我的笔记本电脑自动检查此收件箱中的 IP 变化。这可行,但这似乎是一种非常迂回的做事方式,需要付出的努力似乎比需要的要多得多。还有其他我可以尝试的选择吗?请注意,我无法将其设置为静态 IP,因为我无权访问 DHCP 服务器,而且我不想向网络发送一堆额外的数据包只是为了尝试查找服务器。
答案1
使用无头服务器的 DNS 名称,而不是 IP。
假设该网络上已启用 DNS。
答案2
@Stese 的回答很好。
查明您的网络是否为您的 IP 分配了 DNS 名称的一个好方法是找出您的 IP,然后nslookup
对您的 IP 执行操作(适用于大多数操作系统):
nslookup 10.X.X.X
这被称为“反向查找”,如果存在,它会告诉您 DNS 名称。
您的网络可能不提供名称,或者分配的 DNS 名称可能包含您的 IP 地址或以其他方式唯一生成。
如果这是真的,那么您需要一个动态 DNS 提供商。Dyndns 过去是一个很好的免费提供商,另一个当前提供商是 noip.com。还有其他提供商。您需要创建一个帐户,然后在您的服务器上运行“更新客户端”,它将基本上检查 IP 更改并向服务发送回信,然后服务会更新其维护的公共 DNS 记录。
我原本想使用 python 来检测服务器何时更改 IP 地址,然后使用电子邮件客户端向自己发送新的 IP 地址,然后让我的笔记本电脑自动检查此收件箱中的 IP 更改。这可行,但似乎是一种非常迂回的做法,需要付出的努力似乎比实际需要的要多得多。
如果您所在的大学因为某种原因屏蔽了 noip.com,请不要排除这种可能性。