是否可以configuration用户特定的主机文件而不是普通的/ etc / hosts。
例如,如果用户“user1”尝试获取IP的名称:“127.0.0.1”,他将得到“dev.user1”,如果用户“user2”试图获得相同IP的名称,他会得到“dev。用户2" 。
不,你不能拥有每个用户的/ etc / hosts文件,或者像/home/user1/.hosts等的东西。
您正在使用硬编码的gethostbyaddr来遵循nsswitch.conf中的说明,它本身告诉gethostbyaddr查看/ etc / hosts。
您可能可以执行某些操作,例如在127.0.0.0/8networking上添加其他回送IP ,如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,更常见的做法是将本地networking的一部分指定为“开发人员LAN”。
你想解决什么问题?
你当然不能在主机文件中有两个不同的条目,它们根据你是哪个用户而以某种方式切换。
如果您告诉我们您要做的是什么,而不是问我们您的具体实施情况,我们可能会帮助更多。
你为什么不分配一些虚拟IP到你自己的服务器,而不是在eth0:0,eth0:1等?
说分配192.168.2.10到dev.user1,192.168.2.11到dev.user2。 当您通过不同的ips访问项目时,gethostbyaddr()是否会返回相应的主机名?