Jep*_*zen 3 mysql ruby-on-rails wsl-2
我正在 WSL 2 上进行一些 Ruby on Rails 开发。rails 应用程序连接到在我的 Windows 主机上运行的 MySQL 服务器。当我使用 WSL 1 时,将主机设置为 127.0.0.1 很容易,但在 WSL 2 上我必须使用编写的名称服务器/etc/resolv.conf
但我发现 resolv.conf 中写入的 IP 地址在重新启动时会发生变化。
有没有办法为 WSL 2 设置静态 IP 地址?
2023 年 9 月更新:WSL 问题 4210和Craig Loewen(Microsoft 项目经理)指出“适用于 Linux 的 Windows 子系统 2023 年 9 月更新”
\n\n\n在您的
\n.wslconfig文件中,您可以设置experimental.networkingMode=mirrored,以及一些其他可以提高网络兼容性的关键设置!\n此功能应该允许您设置静态 IP,因为您将获得 Windows 主机的 IP 地址。请尝试一下并告诉我们您的想法。请注意:您需要使用 Windows Insiders 版本才能使用新的网络设置(任何 Windows Insiders 频道都可以,包括发布预览版)。如果您看到“这些不受支持”消息,则意味着您当前的 Windows 版本不支持,您需要升级。这些功能最终将出现在 Windows 11 22H2 中。
\n
您可以考虑ocroz/wsl2-boot(请参阅INSTALL安装说明):
\n\n运行命令后
\nwsl-boot:\n
\n- WSL 网络始终按照其预定义定义进行配置(Windows 端),
\n- 所有 WSL 主机始终配置有预定义的静态 IP(Linux 端),
\n- 所有 WSL 主机和连接的 Hyper-V VM 始终可以相互通信,
\n- 无论您连接到互联网还是 VPN,DNS 解析都可以工作,
\n- 您可以立即通过 SSH 连接到 WSL 主机。
\n
2022 年 12 月,microsoft/WSL第 4210 期还添加了:
\n\n在最新的 Windows 11 (22621+) 中,您已经可以在以下位置指定要用于 WSL2 的网络适配器
\n.wslconfig:Run Code Online (Sandbox Code Playgroud)\n[wsl2]\nnetworkingMode=bridged\nvmSwitch=my-switch\nipv6=true\n因此,现在您可以为 WSL2 创建 Hyper-V 外部虚拟交换机并修复 IP 地址,无需其他脚本。它开箱即用。
\n
同一线程添加:
\n\n\n\n
\n- \n
在 Hyper-V\xef\xbc\x8c 中创建 vSwitch 我使用 Hyper-V Gui 来执行此操作。Hyper-V 具有三种类型的虚拟交换机:外部、内部和专用。
\n
\n我选择“external”类型,即bridge类型,与VMWare工作站相同。- \n
在 .wslconfig 中设置此配置
\n- \n
我发现我的家庭路由器\xef\xbc\x8c的网络IP发生了变化,它取代了旧的eth0。
\n
\n您可以在家庭路由器中设置 DHCP,然后修复网桥的 IP。综上所述,在bridge的情况下,本质上就是DHCP,固定与否取决于DHCP服务器。
\n
2023 年5月,来自Azure Zeng:
\n\n\n我在最新版本的 WSL2 中发现了一些有趣的东西。
\n可以在以下注册表项中找到并更改 WSL 网络 IP 范围和网关 IP:
\n\n
\n- \n
Computer\\HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Lxss\\NatGatewayIpAddress- \n
Computer\\HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Lxss\\NatNetwork您可以在此注册表项中找到并更改您的 WSL 实例 IP:
\n\n\n
Computer\\HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Lxss如果您不修改这些注册表项,即使您重新启动计算机,WSL 实例 IP 和相对于 WSL 实例的主机 IP 也不会更改。
\n如果要更改 WSL IP,只需编辑这些注册表项,然后重新启动计算机,打开 WSL 时将应用新的 WSL IP 设置。
\n
\n也就是说,现在为WSL设置静态IP确实可以了。我的操作系统是 Windows 11 Enterprise(Build 22621.1702),WSL 版本是 1.2.5.0。
\n
\n另外,还有一件事要提,我的 VMware NAT/HostOnly Network 和 WSL 实例现在可以通过 IP 地址相互访问。
| 归档时间: |
|
| 查看次数: |
17480 次 |
| 最近记录: |