linux:以编程方式添加主机?

时间:2009-10-16 21:05:01

标签: linux dns name-resolution

有没有办法以编程方式将主机添加到Linux下的本地名称解析器?

我宁愿避免动态摆弄/ etc / hosts ......

示例:添加名称​​ foo 并将其绑定到本地端口127.1.2.3

使用案例我在本地安装了可通过网络浏览器访问的应用程序。我希望可以通过本地URI访问该应用程序。

4 个答案:

答案 0 :(得分:4)

  

添加名称​​ foo 并将其绑定到本地端口127.0.0.1:9999

你想要的是什么?您可以将foo 127.0.0.1添加到hosts或在您的名称服务器中执行等效操作,但是在端口1234上与foo的连接将始终转到127.0.0.1:1234 - 无法重定向根据名称移植到9999端口,在调用时间connect时丢失。

在Linux上,您可以将IP添加到回送设备(即ip addr add 127.1.2.3 dev lo),然后使用iptables更改发往127.1.2.3:1234的所有连接,而不是转到127.0.0.1:9999 ,但我无法从你的问题中判断出你想要的可观察行为。

答案 1 :(得分:1)

如果你只添加主机,那么一种非常安全的方法就是

echo -e "ip.add.re.ss\thostname" >> /etc/hosts

现在,如果你想删除它们,它会开始变得毛茸茸。我怀疑你也想删除它们。

如果是这种情况,您可以使用动态DNS,例如,BIND有nsupdate工具来更新区域文件:

       $ nsupdate
       > update delete oldhost.example.com A
       > update add newhost.example.com 86400 A 172.16.1.1
       > send

执行以下操作:

  

oldhost.example.com的任何A记录   被删除。和A的记录   带有IP地址的newhost.example.com   添加了172.16.1.1。新增记录有1天TTL(86400   秒)。

答案 2 :(得分:0)

您想要的Google搜索字词是“动态DNS”的“DDNS”。这是一种动态添加记录到DNS服务器的技术,听起来就像你想要的那样。我很确定大多数lunix发行版中的绑定支持它,但你可能需要阅读如何配置它。

答案 3 :(得分:0)

我将在最近发现:使用Avahi软件包的multicast-dns。可以找到一个示例here