![如果没有互联网连接,/etc/hosts 中的本地别名将不再起作用](https://linux22.com/image/798564/%E5%A6%82%E6%9E%9C%E6%B2%A1%E6%9C%89%E4%BA%92%E8%81%94%E7%BD%91%E8%BF%9E%E6%8E%A5%EF%BC%8C%2Fetc%2Fhosts%20%E4%B8%AD%E7%9A%84%E6%9C%AC%E5%9C%B0%E5%88%AB%E5%90%8D%E5%B0%86%E4%B8%8D%E5%86%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
我有一台开发机器,我在这台机器上开发在 Debian 测试上的 apache 下运行的 Web 应用程序。
现在我希望能够使用 myApp 作为域名,而不必在浏览器地址栏中使用 localhost 或 127.0.0.1。有些 CMS 软件无论如何都不能很好地支持更改域名... :-(
现在要做到这一点,我有一个如下所示的 /etc/hosts 文件:
127.0.0.1 localhost
127.0.0.1 myApp
127.0.0.1 phpmyadmin
....
在我的 apache 设置中,我正确配置了我的虚拟主机服务器名。
这总是工作正常,但今天我不得不与某人共享互联网,当我拔掉电缆时,我无法再访问 myApp 或其他别名,除了 localhost,它现在为我提供“myApp”的文档根目录,而它甚至没有在 apache 配置中进行配置...
我从来都不知道 Linux 下的 DNS 是什么,但我想我以前在没有互联网的情况下使用过它,而且它有效。
我还没有尝试过在不插入以太网电缆的情况下重新启动,也许这样做可行,但我有点困惑,想了解并解决这个问题
因为最近我确实有另一台服务器(jetty)在另一个端口上监听本地主机,但这可能与它无关......
答案1
您的线路输入/etc/hosts
必须转换为:
127.0.0.1 localhost localhost.localdomain myApp phpmyadmin
答案2
你的/etc/hosts
表情让我心乱如麻。
请man hosts
注意以下语法:IP_address canonical_hostname [aliases...]
因此我的建议是使用以下内容:
127.0.0.1 localhost myApp phpmyadmin
答案3
对您的 /etc/hosts 文件进行先前答案建议的更改,并确保“文件”列在您的 /etc/nsswitch.conf 文件的“hosts”行中。
(/etc/nsswitch.conf 控制解析器库查询各种源以尝试解析主机名的顺序等。如果“files”未列为源,则根本不会查询 /etc/hosts。对于您来说,将“files”放在 hosts 行上的“dns”之前可能是有意义的。)