有没有办法在Linux下以编程方式将主机添加到本地名称parsing器?
我宁愿避免dynamic地调用/ etc / hosts …
例如:添加名称foo并将其绑定到本地端口127.1.2.3
使用案例:我有一个应用程序安装在本地可通过Web浏览器访问。 我想通过本地URI访问应用程序。
添加名称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,而我可以从你的问题中不能看出你想要的可观察到的行为。
如果你只会添加主机,一个非常安全的方法是
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记录都将被删除。 并添加了IP地址为172.16.1.1的newhost.example.com的A记录。 新增的记录有1天的TTL(86400秒)。
你想要的谷歌搜索词是“动态DNS”的“DDNS”。 这是一种动态地向DNS服务器添加记录的技术,这听起来正是你想要的。 我很确定大多数lunix发行版都支持它,但是您可能需要阅读如何配置它。
我将使用最近的发现:使用Avahi包的multicast-dns。 一个例子可以在这里找到。