WSL2使用桥接网络,并指定IP
前言
微软终于解决了宇宙级难题了,一直以来的WSL2每次启动IP都是动态分配的,并且是NAT的网络。当然网上对此也有一些解决方案,编写脚本在启动时修改,但是太麻烦了,这次很完美的解决了这个难题。
检查
wsl --version
# 版本>1.0即可
如果出错,请安装最新版本
配置文件
- .wslconfig
用于在 WSL 2 上运行的所有已安装分发版 全局 配置设置。 - wsl.conf
为 WSL 1 或 WSL 2 上运行的 Linux 发行版配置 每个分发 版的设置。
这里详细配置介绍请移步 高级设置配置
配置WSL2使用外部网络
- 使用Hyper-V创建外部网络(其他方式创建也行)
# 查看网络交换机名称
Get-VMSwitch -SwitchType External

- 配置 .wslconfig
存储在目录中 %UserProfile%,或者 PowerShell 中使用 cd ~ 访问主目录
[wsl2]
networkingMode=bridged
vmSwitch=bridge # 上图中的Name值
ipv6=true
重启 WSL2
wsl --shutdown
wsl
ip a
可以看到eth0的网络是桥接网络了
设置特定静态IP
修改 .wslconfig
[wsl2]
networkingMode=bridged
vmSwitch=WSL_external
dhcp=false # 禁止动态分配
ipv6=true
当dhcp=false时会读取 cd /usr/lib/systemd/network/ 的网络配置
vim wsl_external.network 加入以下内容
[Match]
Name=eth0
[Network]
Description=bridge
DHCP=false
Address=192.168.1.10/24 # 自行修改
Gateway=192.168.0.1 # 自行修改
重启WSL2 (wsl --shutdown)
你会发现eth0已经有自定义的网络了
修改DNS禁止自动生成
添加 /etc/wsl.conf 加入以下内容
[boot]
systemd=true
[network]
generateResolvConf = false
先删除再创建,因为resolv.conf是软链接创建的
rm -f /etc/resolv.conf
echo "nameserver 223.5.5.5" > /etc/resolv.conf
重启WSL2 (wsl --shutdown)
而且还启用了systemd (systemctl 命令回来了)
systemctl list-unit-files --type=service
systemctl restart systemd-networkd
systemctl enable systemd-networkd
systemctl restart systemd-resolved.service
systemctl enable systemd-resolved.service
常用配置
.wslconfig
[wsl2]
# Bridged networking
networkingMode=bridged
vmSwitch=bridge
dhcp=false
ipv6=true
# Limits VM memory to use no more than 4 GB, this can be set as whole numbers using GB or MB
memory=4GB
# Sets the VM to use two virtual processors
processors=2
# Turn on/off default connection to bind WSL 2 localhost to Windows localhost ; default is true
localhostforwarding=true
# Turns on/off output console showing contents of dmesg when opening a WSL 2 distro for debugging ; default is false
debugConsole=false
# Turns on/off running GUI apps ; default is true
guiApplications=true
wsl.conf
# Automatically mount Windows drive when the distribution is launched
[automount]
# Set to true will automount fixed drives (C:/ or D:/) with DrvFs under the root directory set above. Set to false means drives won't be mounted automatically, but need to be mounted manually or with fstab.
# enabled = true
# Sets the directory where fixed drives will be automatically mounted. This example changes the mount location, so your C-drive would be /c, rather than the default /mnt/c.
# root = /
# DrvFs-specific options can be specified.
options = "metadata,uid=1003,gid=1003,umask=077,fmask=11,case=off"
# Sets the `/etc/fstab` file to be processed when a WSL distribution is launched.
# mountFsTab = true
# Network host settings that enable the DNS server used by WSL 2. This example changes the hostname, sets generateHosts to false, preventing WSL from the default behavior of auto-generating /etc/hosts, and sets generateResolvConf to false, preventing WSL from auto-generating /etc/resolv.conf, so that you can create your own (ie. nameserver 1.1.1.1).
[network]
hostname = DemoHost
generateHosts = false
generateResolvConf = false
# Set whether WSL supports interop process like launching Windows apps and adding path variables. Setting these to false will block the launch of Windows processes and block adding $PATH environment variables.
[interop]
enabled = false
appendWindowsPath = false
# Set the user when launching a distribution with WSL.
[user]
default = DemoUser
# Set a command to run when a new WSL instance launches. This example starts the Docker container service.
[boot]
command = service docker start
https://learn.microsoft.com/en-us/windows/wsl/wsl-config
https://github.com/luxzg/WSL2-fixes
https://github.com/luxzg/WSL2-fixes/blob/master/networkingMode%3Dbridged.md
WSL2使用桥接网络,并指定IP的更多相关文章
- 网络设置-指定ip
1 克隆centos6.设置网卡 vim /etc/udev/rules.d/70-persistent-net.rules 确定光标所在的位置 d3d删除以下三行,更改NAME为0 vim /etc ...
- VM 虚拟机 CentOS 7 设置 桥接网络
桥接网络的设置: 安装时设置网络为桥接网络! 找到 ip 地址,设置如下 注意ip地址并不是一样的,用以区分 然后在关闭 windows 防火墙,打开 cmd 使用 ping 命令 O ...
- CentOS 网络设置修改 指定IP地址 DNS 网关(转)
CentOS 网络设置修改 指定IP地址 DNS 网关(实测 笔记) 环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G) 系统版本:Centos-6.5-x86_64 ...
- 桥接物理网卡,pipwork指定ip,外网连接,研究salt+docker
1.桥接物理网卡: 首先下载工具: yum -y install --enablerepo=epel bridge-utils 停止服务: 983 systemctl stop docker 删除do ...
- java网络访问指定出口ip
java网络访问指定出口ip Table of Contents 1. socket 2. apache httpclient 1 socket 可以在Socket构造函数中指定使用的本地ip,如: ...
- Linux:Vmware安装linux虚拟机,桥接方式配置静态IP后重启网卡,提示:Error,some other host already uses address 10.252.252.21...
问题: Vmware安装linux虚拟机,桥接方式配置静态IP后重启网卡,提示:Error,some other host already uses address 10.252.252.21... ...
- KVM/QEMU桥接网络设置及kvm资料
KVM/QEMU桥接网络设置 配置kvm的网络有2种方法.其一,默认方式为用户模式网络(Usermode Networking),数据包由NAT方式通过主机的接口进行传送.其二,使用桥接方式(Brid ...
- 使用Docker的macvlan为容器提供桥接网络及跨主机通讯
对于了解Docker容器网络的朋友,我想对虚拟机的网络也不会陌生,毕竟我们是跟随这个时代一起学习和进步的人.相比VM,Docker的网络也在逐步走向成熟,本文主要针对其中的macvlan做下简单的介绍 ...
- docker从零开始网络(二)桥接网络
使用桥接网络 在网络方面,桥接网络是链路层设备,它在网络段之间转发流量.桥接网络可以是硬件设备或在主机内核中运行的软件设备. 就Docker而言,桥接网络使用软件桥接器,该软件桥接器允许连接到同一桥接 ...
- Linux初识之VMWare14中配置Centos7桥接网络环境
1.查看当前初始环境如下:
随机推荐
- KingbaseES分区表 -- 声明式创建分区表
一.声明式创建分区: 1. 创建分区表同时创建分区: 1.1 准备环境: # 创建分区表同时创建分区 create table tb1(id bigint,stat date,no bigint,pd ...
- MemfireCloud让静态托管页面动起来!
静态托管 我们最常接触到的静态托管是github pages,它的常见工作模式是在github上创建一个仓库,使用hexo类的工具初始化仓库,编写markdown文件,生成静态页面,推送到github ...
- 【非插件实现】wordpress网站页脚添加,网站总访问数/今日访客数
1 /** 2 * 统计全站总访问量/今日总访问量/当前是第几个访客 3 * @return [type] [description] 4 */ 5 function wb_site_count_us ...
- 【Java】try {}里有一个 return 语句,那么紧跟在这个 try 后的 finally {}里的 code 会不会被执行,什么时候被执行,在 return 前还是后?
try {}里有一个 return 语句,那么紧跟在这个 try 后的 finally {}里的 code 会不会被执行,什么时候被执行,在 return 前还是后? package com.test ...
- 高德地图和echarts结合实现地图下钻(一)
疫情大屏优化-ECharts 地图下钻功能实现 https://www.sohu.com/a/373917631_100123073 全国:100000 北京:110 ...
- WPF中动画教程(DoubleAnimation的基本使用)
实现效果 今天以一个交互式小球的例子跟大家分享一下wpf动画中DoubleAnimation的基本使用.该小球会移动到我们鼠标左键或右键点击的地方. 该示例的实现效果如下所示: 页面设计 xaml如下 ...
- Linux——ssh登录很慢解决方法
1.背景 在同一机房中,有多台安装了CentOS 7操作系统的服务器,它们的配置除了IP地址不同外基本相同.这些服务器的资源利用率都不高,但在使用SSH连接时,发现有几台服务器连接速度较慢,可能需要等 ...
- 8 CSS文本属性
8 文本属性 font-style(字体样式风格) /* 属性值: normal:设置字体样式为正体.默认值. italic:设置字体样式为斜体.这是选择字体库中的斜体字. oblique:设置字体样 ...
- 今晚战码先锋润和赛道第2期直播丨如何参与OpenHarmony代码贡献
「OpenHarmony 开源贡献者计划 2022」战"码"先锋 PR 征集,"润和赛道"已于6月15日正式开启.套件在手.先机在握,更有润和软件的超多赋能和专 ...
- 自动编号工具类:NumAutoUtils详解
在软件开发中,经常需要生成唯一的编号,例如订单号.发票号.实验编号等.为了简化这一过程,本文将介绍一个Java工具类NumAutoUtils,它可以帮助我们生成带有前缀和日期的自动编号. 概述 Num ...