有没有办法以编程方式将主机添加到Linux下的本地名称解析器?
我宁愿避免动态摆弄/ etc / hosts ......
示例:添加名称 foo 并将其绑定到本地端口127.1.2.3
使用案例我在本地安装了可通过网络浏览器访问的应用程序。我希望可以通过本地URI访问该应用程序。
答案 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。