是否可以配置用户特定的主机文件而不是公共的/ etc / hosts.
例如,如果用户“user1”尝试获取IP的名称:“127.0.0.1”,则获取“dev.user1”,如果用户“user2”尝试获取相同IP的名称,则获取“dev.用户2\” .
解决方法
不,您不能拥有每用户/ etc / hosts文件,或/home/user1/.hosts等.
您使用的是硬编码的gethostbyaddr,它遵循nsswitch.conf中的说明,nsswitch.conf本身告诉gethostbyaddr查看/ etc / hosts.
您可能能够在127.0.0.0/8网络上添加额外的loopback IPs,例如127.0.0.2,127.0.0.3,127.1.2.3,然后将本地主机名分配给其中一个本地IP.我们在一份工作中做到了这一点,但我记得这让我们的工程师感到困惑.
此外,如果我记得正确的一些负载均衡器实际上在内部做这件事.
这是一个示例/ etc / hosts来说明我的观点:
127.0.0.1 u1.localhost u1 127.0.0.2 u2.localhost u2 # And if you wanted QA servers on the same host,add them to 127.0.8.0/24 127.0.8.1 qa1.localhost qa1
正如@blacklotus早先所说,更常见的方法是将本地网络的一部分指定为“开发人员局域网”.