win11 wsl2 固定ip设置

这篇具有很好参考价值的文章主要介绍了win11 wsl2 固定ip设置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

wsl固定ip配置脚本

记录一次折腾,通过pwsh启动脚本的方式为wsl设置固定ip。
参考了网上的多种方案,组合成一种我喜欢的实现。

软件环境

  • windows11
  • 终端Terminal
  • powershell (microsoft store里下载安装) 用于测试,不确定缺少是否影响
  • wsl的ubuntu 20.04发行版

脚本文件

$WslDistribution = "Ubuntu-20.04"
$Subnet = "192.168.2" # /24
$HostAddress = "$Subnet.1"
$WslAddress = "$Subnet.2"
$BroadcastAddress = "$Subnet.255"
$NatPrefix = "$Subnet.0"

wsl --shutdown
wsl --distribution $WslDistribution /bin/bash -c "echo <passwd> | sudo -S ls /boot > /dev/null"

Get-NetAdapter -IncludeHidden 'vEthernet (WSL)' | Get-NetIPAddress | Remove-NetIPAddress -Confirm:$False;
New-NetIPAddress -InterfaceAlias 'vEthernet (WSL)' -IPAddress $HostAddress -PrefixLength 24;
Get-NetNat | ? Name -Eq WSLNat | Remove-NetNat -Confirm:$False;
New-NetNat -Name WSLNat -InternalIPInterfaceAddressPrefix $NatPrefix/24;
echo "Finished configuring host network"

wsl --distribution $WslDistribution /bin/bash -c "echo <passwd> | sudo -S ip addr del \`$(ip addr show eth0 | grep 'inet\b' | awk '{print \`$2}' | head -n 1) dev eth0"
wsl --distribution $WslDistribution /bin/bash -c "echo <passwd> | sudo -S ip addr add $WslAddress/24 broadcast $BroadcastAddress dev eth0"
wsl --distribution $WslDistribution /bin/bash -c "echo <passwd> | sudo -S ip route add 0.0.0.0/0 via $HostAddress dev eth0"
echo "Finished configuring WSL2 network"

wsl ~
  • 第一段:设置子网ip变量
  • 第二段:重开wsl
  • 第三段:抄的别人的,给windows host 里的wsl网卡改ip
  • 第四段:抄的别人的,给wsl内部的网卡eth0改ip
  • 最后:进入wsl的命令

提示

  1. 通过pwsh传递bash命令,在wsl中执行。最好使用 bash -c "command",否则bash的特殊符号和pwsh混合很恶心,比如有的人提到管道符变成 ^|。使用上面的方法不用管这么多。
  2. 即使 bash -c "command"$也不可以直接用,pwsh转义需要使用反引号,这里可能是由于在""里面,需要使用\`对bash命令的内容转义。
  3. host的网卡要在wsl开启1次后才能初始化,所以配置host网卡也要wsl一下,不想进入命令行,所以我执行了一个无意义的bash命令。
  4. 配置的vEthernet (WSL)可以通过netsh interface ip show addr查看,NAT不知道怎么看。
  5. sudo密码写进shell脚本:man sudo查看-S选项:从stdin接受输入。配合管道操作一波。

Terminal配置

win11 wsl2 固定ip设置
win11 wsl2 固定ip设置

  1. 复制一份原始wsl启动配置项,修改启动命令pwsh -File <path>
  2. 选择管理员身份打开
  3. 保存

注意

  • 使用terminal配置进入wsl后,当想再开一个wsl shell时:若wsl未关机,应该命令行直接wsl ~。如果再次使用配置进入,已经运行的wsl会被强杀。这个可以优化脚本来规避,暂时没做
  • 如果使用配置进入wsl后,通过wsl --shutdown关闭了wsl,那么再次使用wsl ~开启wsl,eth0将会随机配上172网段地址,但host没有配置相关地址(只保留了192网段),会导致互相无法联通、wsl上不了网。有的方案把对eth0的配置放在.bashrc里,可以解决,但我没有这样做,不想让一个功能放在多个地方实现。

后续

写这篇记录时已经发现有了新方案
WSL2 网络的最终解决方案 首发于 hez2010の编程日常

参考

1. Assigning a Static IP Address to a WSL2 Distribution
2. piping command to wsl awk doesn’t work
3. Error: any valid prefix is expected rather than
4. about_Pwsh
5. Win11 WSL2 启用 systemd 及设置静态 / 固定 IP
6. 给 WSL2 设置静态 IP 地址 --用户Lvv的评论文章来源地址https://www.toymoban.com/news/detail-434423.html

到了这里,关于win11 wsl2 固定ip设置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • win11安装ubuntu(by wsl2)

    这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 省吃俭用入手了ThinkPad T14,打算装好Linux后作为开发机器使用,本文记录了安装过程,以便将来在新系统上用到 作为参考,机器软硬件情况如下 接下来就是安装wsl2的过程,并未为了验证Linux是否正常

    2024年02月10日
    浏览(52)
  • WIN11+WSL2+Docker 深度学习环境部署

    Windows系统开发偶尔会出现一些系统底层的bug导致程序无法运行,开发很难受。 Linux系统开发,娱乐软件少,不尽兴。 双系统切换太麻烦,不能同时使用,难受! 如何结合Windows和Linux,既能畅爽娱乐,又不会被底层BUG影响开发,来试试Windows的子系统WSL2吧!! 本次思路为:在

    2024年02月21日
    浏览(45)
  • Win11 安装 Docker Desktop 和 WSL2 并进行安装位置迁移

    点击链接下载 Docker Desktop:https://desktop.docker.com/win/main/amd64/Docker%20Desktop%20Installer.exe 下载后得到: 在 Docker Desktop Installer.exe 所在的目录下运行 Windows 命令提示符 在命令行中输入以下命令来进行 Docker Desktop 的安装: 注:Docker Desktop 默认安装位置为: C:Program FilesDockerDocker 这

    2024年02月07日
    浏览(58)
  • win10下wsl2使用记录(系统迁移到D盘、配置国内源、安装conda环境、配置pip源、安装pytorch-gpu环境、安装paddle-gpu环境)

    安装好后环境测试效果如下,支持命令nvidia-smi,不支持命令nvcc,usr/local目录下没有cuda文件夹。 系统迁移到非C盘 wsl安装的系统默认在c盘,为节省c盘空间进行迁移。 1、输出 wsl -l 查看要迁移的系统名称 2、执行导出命令: wsl --export Ubuntu-20.04 ./Ubuntu-20.04.tar ,以下命令将系统

    2024年02月20日
    浏览(58)
  • Win11使用WSL2安装Ubuntu22.04并启用GUI应用

    Windows Subsystem for Linux (WSL) 允许在几分钟内在 Windows 机器上安装完整的 Ubuntu 终端环境,无需离开 Windows 即可开发跨平台应用程序。 将学到什么: 如何在 Windows 11 上启用和安装 WSL 如何安装和运行使用 WSLg 的简单图形应用程序 如何安装和运行使用 WSLg 的更高级的应用程序 你需

    2024年02月04日
    浏览(56)
  • Win11基于WSL2安装CUDA、cuDNN和TensorRT(2023-03-01)

    如果有小伙伴看了2023-03-05更新,发现设置环境变量后运行cuda代码在链接过程中仍然会有报错问题啥的,那我这里建议,先别管2023-03-05更新的内容了,还是按照我博客里的安装步骤一步一步往下安装,用 sudo apt install nvidia-cuda-toolkit 命令去安装nvcc,也不需要配置环境变量了。

    2024年02月02日
    浏览(54)
  • win10+WSL2+docker配置历程

    不管是为了以后多一个工具还是多一份知识,单纯觉得应该了解应该学习。记录一下并不顺利的docker配置之路。 首先附上我的万能师兄的搭建之路,指导意义那是顶呱呱。 ZzPwn01:属于2023年的Pwn环境搭建(Docker in WSL) - 简书 (jianshu.com) 同样是师兄推荐,Docker从入门到实践,

    2024年01月19日
    浏览(51)
  • Win10+WSL2+Ubuntu22.04 +图形化桌面配置

    如何在 Windows 10 上安装 WSL 2 - 知乎 用IDM能加速下载,去官网下载22.04的appxbundle,后缀改为zip,这个包含各种操作系统的Ubuntu22.04的appx。我们选择x64解压就行了,后缀改为zip,然后参考下面的文章安装到D盘。 ubuntu 22.04国内镜像阿里云/163源/清华大学/中科大  WSL2配置xrdp一键启

    2024年02月20日
    浏览(56)
  • win10 WSL2 Ubuntu图像化界面安装和配置

    打开虚拟机安装许可 2、开启开发者模式 我这里使用的是20.04.5LTS版本 1、打开win11的命令行,在下拉三角下标,打开,可以看到有Ubuntu 的选项,点击即可进入linux命令行(首次一般都会有些报错,往下看有解决办法) 2、处理报错 错误1:WslRegisterDistribution failed with error: 0x800

    2024年02月01日
    浏览(48)
  • win11 使用 WSL2 安装 linux 子系统 ubuntu 出现错误:无法解析服务器的名称或地址

    解决方法: 记事本打开 C:WindowsSystem32driversetchosts 文件, 添加如下解析地址 #raw.githubusercontent.com 185.199.108.133 raw.githubusercontent.com 185.199.109.133 raw.githubusercontent.com 185.199.110.133 raw.githubusercontent.com 185.199.111.133 raw.githubusercontent.com ifconfig /flushdns 查看可安装的 WSL wsl --list --onlin

    2024年04月27日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包