如果没有互联网连接,/etc/hosts 中的本地别名将不再起作用

如果没有互联网连接,/etc/hosts 中的本地别名将不再起作用

我有一台开发机器,我在这台机器上开发在 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”之前可能是有意义的。)

相关内容