MoM*_*oMo 1 hostname hosts-file windows-10 wsl-2
(我提供了一个简单的工作解决方案作为回应)
我最近从 macOS 转移到 WSL 2。我有两个节点服务器在 WSL 2(Ubuntu 发行版)中运行。每个都必须可通过自定义主机名访问以用于开发和生产目的。我很难通过自定义主机名(即在某些 ../etc/hosts 文件中设置)访问节点服务器,尤其是考虑到 WSL 2 的动态 IP 会随着 WSL/pc 'boot' 而变化。如何在 WSL 2 中设置自定义主机名?
设想:
每个 node.js 应用程序服务器(再次在 WSL 2 中运行)必须从浏览器使用以下 URL/自定义主机名访问:
在四处搜索后,我发现以下相对简单的过程有效。我想我会与 WSL 2 的新手分享并节省一些时间和麻烦。注意,虽然我使用 node 作为服务器堆栈,但这个过程应该或多或少与其他应用程序/网络服务器堆栈相同。
请注意,以下SE 帖子是解决方案的基础。还值得检查 MSFT 关于WSL vs WSL 2的参考。另请注意,我没有详细说明为什么需要这些步骤、为什么我们可能需要自定义主机名、../etc/hosts 中的 ipv6 选项、127.0.0.1 的含义、环回地址、WSL 2 和发行版管理,等等。这些主题超出了本文的范围。
简单场景:
每个 node.js 应用服务器(再次在 wsl 2 中运行)都可以从浏览器使用以下 URL 访问:
两个关键项目:
Run Code Online (Sandbox Code Playgroud)127.0.0.1 localhost 127.0.0.1 www.app1.com 127.0.0.1 www.app2.com 255.255.255.255 broadcasthost ::1 localhost www.app1.com www.app2.com
Run Code Online (Sandbox Code Playgroud)[wsl2] localhostForwarding=true
- 注意:在 WSL 2 Ubuntu 发行版的 /etc/hosts 中有对此的引用。
- 另请注意,这需要关闭 WSL 并重新启动。关闭终端是不够的。也不需要整个机器启动。只需运行:
Run Code Online (Sandbox Code Playgroud)wsl --shutdown (in Powershell) or wsl.exe --shutdown (within Ubuntu)
然后重新启动 Windows 终端应用程序(或任何 WSL 终端)以访问更新的 WSL 2 环境。具有自定义 url/主机名的应用程序现在将在浏览器中永久运行,并且绕过了 WSL 2 的动态 IP。
| 归档时间: |
|
| 查看次数: |
577 次 |
| 最近记录: |