我有一个域设置指向我的局域网的外部IP使用动态DNS,因为我的外部IP地址经常变化。但是,我想为这个主机创建一个别名,这样我就可以使用home访问它。因此,我将以下内容添加到我的/etc/hosts中:
example.com home
然而,它似乎不喜欢域名。如果我将其更改为IP:
0.0.0.0 home
然后它可以工作,但当然,这违背了动态DNS的目的!
这个是可能的吗?
发布于 2012-12-19 20:43:24
文件/etc/hosts只包含IP地址和主机名。不能以此方法所需的方式将字符串"home“化名。
如果您正在运行您自己的DNS服务器,您将能够添加一个CNAME记录,使home.example.com成为domain.example的别名,但否则您就倒霉了。
最好的做法是使用相同的DNS客户端来更新一个完全限定的名称。
发布于 2021-11-22 22:39:18
如前所述,/etc/hosts并不打算为IP查找提供别名(CNAME)功能。虽然设置适当的DNS服务器并配置CNAME,但肯定会有一种始终准确的方法将home解析为example.com的IP,这比简单的别名更复杂一些。
更改本身可以很容易地自动化到脚本中的一行:
sudo sed -i "s/.* home/$(dig +short domain.com|tail -1) home/" /etc/hosts如果您已经有了检测IP更改的方法,这可以很容易地附加到该进程中。否则,可以使用一个简单的cron作业来设置一个只调度覆盖每个x期间的蛮力方法。
参考文献:
发布于 2012-12-19 20:45:42
在我看来,你应该注册DYNDNS或类似的东西。
如果您真的想使用/etc/主机,则必须监视您的IP。一旦它改变:
如果您使用的是dhcpcd,您可以使用"-c“选项来修改/etc/host-entry,然后重新加载主机缓存。
这取决于dhcp客户机的功能。
https://unix.stackexchange.com/questions/58925
复制相似问题