一个固定 WSL2 ip 的简单方法

简介: 本文介绍了如何在Win11 22H2及以上版本中让WSL与Windows共享IP,避免重启后IP变化带来的问题。只需在用户目录下创建`.wslconfig`文件,输入特定配置并重启WSL,即可实现IP一致,简化WSL网络设置。此外,还提供了一种在其他系统版本中通过Windows SSH连接WSL的替代方法。

前言

众所周知,windows 会通过虚拟交换机给本机和 wsl2(Linux 子系统)分别分配 ip。于是本机重启或重启 wsl 服务的时候会重新分配 ip。之前所作的端口转发,监听之类的都会失效。

而如果你搜索 “如何固定 wsl 的 ip”,又会得到一系列复杂的配置方法。

且不说是否有用,但这一系列操作十分令人头疼。

但是,如果你的 windows 是 win11 22H2 以上,情况就不一样了。仅需一个配置文件,就能让 wsl 与 windows 共享 ip。

具体操作

微软在 2023 年 9 月做了一个更新:适用于 Linux 的 Windows 子系统 2023 年 9 月更新

之后,仅需在Windows中的C:\Users<your_username>目录下创建一个.wslconfig文件,然后在文件中写入如下内容:

[experimental]
autoMemoryReclaim=gradual  
networkingMode=mirrored
dnsTunneling=true
firewall=true
autoProxy=true

保存后重启一下 wsl 终端。

使用 ip addr 查看 ip,就可以发现与 windows 宿主机完全一致。使用 ssh <wsl账号>@<宿主机ip> -p <wsl中ssh端口> 就可以轻松建立连接。

以上设置非原创,参考了这篇随笔:解决"wsl: 检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理"

至此,可能困扰过你的代理问题也解决了。

其他系统版本

我只能说抱歉,我没有找到有效且简单的方法。不过如果仅仅是远程而不用文件传输(文件传输用 git 之类的其他方式),倒是有一个旁门左道的方法。

原理:在 windows 宿主机上安装 ssh,然后使用 ssh 连接 windows。这时候会打开 powershell 的终端。输入 wsl 即可运行当中的 wsl.exe。

操作如下:

  1. 在 windows 上安装 ssh
    Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
  2. 启动 ssh 服务,设置自启动,看状态。
    Start-Service sshd
    Set-Service -Name sshd -StartupType 'Automatic'
    Get-Service sshd
  3. 更新 wsl ,否则连接后无法启动 wsl。
    wsl --update --pre-release
  4. 之后,使用 windows 的账号连接 windows 的 ssh,即可远程 wsl 服务了。
  5. 如果嫌启动 wsl 麻烦,可以再做一个配置,直接把 ssh 的终端设置为 wsl
    New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\wsl.exe" -PropertyType String -Force

希望对你有帮助。

相关文章
|
25天前
|
网络安全 Docker 容器
WSL2 固定IP与局域网访问
该文档介绍了如何在新版WSL2中配置镜像模式网络,以实现WSL2 IP与主机相同的固定设置。然而,启用此模式后,Docker服务在本机上无法访问。作者分享了针对这个问题的解决方案,包括编辑`.wslconfig`文件开启镜像网络和调整Docker设置。具体步骤涉及更新WSL和Docker(docker-ce)的安装,以及修改`daemon.json`文件以允许本机和局域网访问Docker服务。
|
1月前
|
Linux 网络安全
【Linux】如何修改为固定ip和增加端口
【Linux】如何修改为固定ip和增加端口
24 1
|
1月前
|
Linux
【Linux】虚拟机ip端口如何固定
【Linux】虚拟机ip端口如何固定
18 0
|
10月前
|
存储 Ubuntu 开发工具
Ubuntu网络设置之固定IP详解
尊敬的家人们,欢迎观看我的文章!今天,我们将为您介绍Ubuntu22.04操作系统中固定IP的设置方法,帮助您更好地管理网络连接并提高网络稳定性。
372 0
Ubuntu网络设置之固定IP详解
|
1月前
|
网络协议 Linux Windows
Linux虚拟机设置固定IP
Linux虚拟机设置固定IP
55 2
|
jenkins Java Linux
Jenkins 添加Linux固定代理节点
Jenkins 添加Linux固定代理节点
243 0
|
Linux 编译器 开发工具
Linux网络环境配置:(内含:随机ip和固定ip设置方式)
Linux网络环境配置:(内含:随机ip和固定ip设置方式)
244 0
Linux网络环境配置:(内含:随机ip和固定ip设置方式)
|
Linux
linux中 设置网络模式NAT 设置固定静态ip地址
linux中 设置网络模式NAT 设置固定静态ip地址
220 0
linux中 设置网络模式NAT 设置固定静态ip地址
|
Ubuntu Linux 开发工具
Linux学习日常-固定ip设置
Linux学习日常-固定ip设置
108 0
Linux学习日常-固定ip设置