我有一家提供半永久 IPv4 地址的 ISP。他们无法保证 IP 地址固定,但意外更改的情况很少见。
然而,这让我不禁想问:什么是最简单/最可靠的方法来追踪我的家庭 IP 地址,以便即使在地址发生变化的情况下我也可以访问我的(Windows 7)家庭服务器?
请注意:出于我不想深入讨论的原因,我想避免使用任何“动态 DNS”类型的服务。相反,我更希望通过某种方式让主服务器在远程异地服务器上留下偶尔/触发的“地址戳”(通过 SSH、HTTP POST 或类似方式,最好通过加密连接)。
答案1
有趣的问题。既然您希望避免使用 DNS 服务,我想编写一个脚本/批处理文件来检查当前 IP 地址,然后在 IP 地址发生变化时通过 ssh/scp/rsync 将其注释发送到外部服务器应该相当容易。
您可以通过以下方式获取您的 WAN IP 地址:
wget -q -O - checkip.dyndns.org | sed -e 's/[^[:digit:]|.]//g'
将其保存在变量或文件中会很容易,然后您可以检查更改并根据需要触发报告。
这已经在其他地方介绍过了,所以如果你不想重新发明轮子,请看这里:
http://ubuntuforums.org/archive/index.php/t-526176.html
编辑:该死,我看到您刚刚补充说您正在使用 Windows!!!
编辑2:尽管我讨厌仅仅链接 - 但这里有一个基于 DOS/cmd 的问题解决方案,它使用 DOS 版本的 curl 和 blat(发送电子邮件):
答案2
将动态(或任何类型的)IP 绑定到域名的最古老且最可靠的方法是动态域名系统。您拥有适用于几乎所有操作系统的客户端,一旦设置完成,它将运行多年而您却不会注意到任何事情。
答案3
您可能能够安排您的客户端计算机(Windows 7?)每小时使用虚假用户名和密码通过 ftp 或 ssh 连接到您的服务器。如果您使用独特的用户名,您可以在服务器日志文件中跟踪它。
我有一台 Linux ssh 服务器。/var/log/auth.log 文件显示失败登录尝试的条目如下:
Feb 11 14:51:27 hostname sshd[3864]: Failed password for invalid user alias from xxx.xxx.xxx.xxx port 28708 ssh2
显示尝试登录的用户名和 IP 地址。
如果您的 Windows 7 系统被盗,由于您使用的是假凭证,因此他们不会有获取您服务器密码的风险。失败的登录尝试会在服务器上留下足够的信息,让您能够跟踪您的客户端系统(唯一的用户名和它来自的 IP 地址)。
您可以使用 Windows Scheduler,但我个人会使用“at”命令,因为大多数人都不知道它。
答案4
如果您担心主机名,可以使用 dyndns 服务而不使用主机名。由于您的 IP 是“半永久”的,我假设您知道其中的大部分。在极少数情况下 IP 会发生变化,只需登录 dyndns 网站检查您的帐户,它就会告诉您新的 IP 地址。无需主机名。
说到底,IP 地址只是一个数字。没有什么内置于系统中,可让您了解 IP 更改,除非您依赖自己网络之外的第三方服务来记录这些更改。动态 DNS 服务(除了 dyndns.org 之外还有更多选项)是实现此目的的成熟、免费方法。如果您不想使用随附的域名,则不必这样做(尽管该名称仍然存在并在您需要时可以使用)。