从 hosts 文件中删除 localhost 后仍可工作

从 hosts 文件中删除 localhost 后仍可工作

我使用 WSL(ubuntu 22.0.4)并使用 VS Code 连接 WSL 进行开发。

我创建了一个这样的网络服务器:

import express from 'express';

const app = express();

app.get('/', (req, res) => {
    res.cookie('state', 'ok', { httpOnly: true });
    res.sendStatus(200);
});

app.listen(3000, () => {
    console.log('Listening on port 3000');
});

我从 Windows 操作系统的文件中删除了127.0.0.1 localhost记录C:\Windows\System32\drivers\etc\hosts

C:\Windows\System32\drivers\etc\hosts

# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1       localhost

/etc/hosts我还从WSL 中删除了此记录

# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:
# [network]
# generateHosts = false
#127.0.0.1      localhost
# 127.0.1.1     LAPTOP-C8AFGSGK.        LAPTOP-C8AFGSGK
# 127.0.0.1     localhost
# 127.0.0.1       api.example.com
# The following lines are desirable for IPv6 capable hosts
#::1     ip6-localhost ip6-loopback
#fe00::0 ip6-localnet
#ff00::0 ip6-mcastprefix
#ff02::1 ip6-allnodes
#ff02::2 ip6-allrouters

如您所见,我不仅在 Windows 操作系统中删除了 hosts 文件中的所有记录,而且在 WSL 中删除了所有记录。

但是当我http://localhost:3000在浏览器中访问时,它仍然可以访问Web服务器并获取响应。

在此处输入图片描述

我使用提供的 DNS 查找edge://net-internals/#dns,输入localhost域名,得到

Resolved IP addresses of "localhost": ["::1","127.0.0.1"].
No data on which protocols are supported.

看来该localhost域名仍然指向127.0.0.1

我希望http://localhost:3000不应该访问 Web 服务器,只有http://127.0.0.1:3000可以访问 Web 服务器。我遗漏了什么?

相关内容