曾经尝试过升级win11,但是我这台r5-5600g的机器,经常卡死,所以就退回win10了。本来就是因为新出的镜像网络功能二打算升级的。
因为之前的wsl的ip每次都会变动,用起来感觉很难受。所以我一直没有用wsl开发。
最近在win10上体验了镜像网络,发现以前的问题大部分都可以解决了。
需要先把wsl升级到最新2.x版本才能使用
css
wsl --update --preview
下面是现在wsl的配置 这个文件在%ALLUSERSPROFILE%
目录下,也就是你的用户目录下创建.wslcon fig
,就可以对wsl进行配置,配置完了执行wsl --shutdown
,关闭wsl,然后重新启动,启动时就会读取到配置
ini
[wsl2]
memory=20GB #限制最大内存
processors=8 #限制线程数
localhostforwarding=true
nestedVirtualization=true
guiApplications=true
[experimental]
autoMemoryReclaim=gradual # gradual | dropcache | disabled
networkingMode=mirrored
dnsTunneling=true
firewall=true
autoProxy=true
# 使用稀疏vhd减少空间占用
sparseVhd=true
# [boot]
# command="service redis-server start"
[network]
# 取消自动生成dns文件,
# 默认生成的dns server是本地ip,那样实测走不了clash
# 这里关掉,然后在/ect/resolv.conf设置google dns 8.8.8.8
generateResolvConf = false
这样设置以后,windows上可以通过localhost访问到wsl内开启的应用。
DNS设置
默认的DNS是指向本机的,但是因为各种原因,导致你的代理配置失效 所以,所以要修改这个配置 sudo vi resolv.conf
nameserver 8.8.8.8
wsl访问windows的问题
就是wsl下无法通过localhost访问到windows上的服务,比如你在windows上开了一个postgresql,然后wsl里面访问不到。
这个暂时不知道怎么解决,用局域网地址之类的都试了,发现也不能连接到,访问外部网址倒是没问题,比如curl www.baidu.com
不过我最后发现是虚惊一场, 虽然无法通过localhost来访问,但是通过局域网ip来访问还是可以的。 因为我的postgresql没有配置局域网访问才产生了这个问题。
修改一下配置文件就可以了。也不需要重启pgsql就能生效。 C:\Program Files\PostgreSQL\16\data\pg_hba.conf
css
host all all 0.0.0.0/0 scram-sha-256
这样我们可以通过修改hosts文件,把localhost转发到局域网的ip地址,就能正常启动这个项目了。
bash
sudo gedit /etc/hosts
把localhost的映射替换掉。。。
你的局域网IP localhost