答案1
请仔细阅读。
执行以下命令,如果看到它是 apache,则在命令下面执行以下操作。
注意:您需要先安装 net-tools 包,然后才能运行 netstat。运行sudo apt install net-tools
即可安装。
sudo netstat -antup | grep 80
您应该检查该行,例如<Your IP>:80
我认为它与 /etc/hosts 根本没有关联,因为它只是一个管理本地域(如您的计算机名称)的 DNS 的文件。localhost 也在此文件中给出,但它目前不执行任何操作,因为 localhost 由 DNS 本身管理。
请注意,当您在 Apache 运行时卸载它时可能会发生这种情况。我觉得 Apache 进程在后台运行,但 Apache 并未使用它。
如果您确定 Apache 当前未启动,请输入以下命令,希望它有所帮助。
该命令可以是:
killall -9 apache2
或者
killall -9 httpd
或者
killall -9 apache
如果在端口 80 上运行的程序无法停止,请将 apache 替换为其他程序的名称。如果它不起作用,请告诉我。谢谢。
答案2
可能是 Skype。我发现在启动 Skype 之前启动 Apache(或者如果我们要这样做的话,启动 nginx)对事情的顺利进行有很大帮助。与 cmak 的回复一样,sudo netstat -antup | grep 80
很可能会返回 Skype。
/etc/hosts
只能像 DNS 文件一样工作,它不是绑定到端口的。
希望这可以帮助。
编辑:为了清楚起见 - Skype 默认将绑定到 :80。Apache 和 NGinx 默认也绑定在 :80。您不能将两个服务绑定到同一个端口。如果您启动 Apache(或 NGinX,如果您要这样做,或任何类似的容器)前您启动 Skype,Skype 应该安装到另一个端口。
最简单的方法(使用您的终端)是killall -9 Skype
启动 Apache/NGinX,然后再次启动 Skype。