提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、安装WSL2分发版
- 二、配置步骤
- 三、测试
- 总结
前言
说起来本来这个功能我也不需要的,只是最近突然有个需求就顺便研究了下,WSL2默认的网络方式是NAT,即WSL2的网卡本身是虚拟网卡,通过以太网或WIFI的地址转换来上互联网,我试了下是不能直接走代理的,最近比较忙没具体研究,但是我用另一种方式实现了,下面介绍给需要的人。
注意:这个方法只能是WIndows11系统,WIndows10系统上的WSL2缺少了一项功能导致不可用。
一、安装WSL2分发版
这个绝对不说了,你一定有分发版了才会看这篇文章。
二、配置步骤
这里需要使用一种特殊的功能,很多人可能都没听说过,它是WIndows11系统上的WSL2上一个独特的功能,WIndows10系统没有。
mirrored:又叫镜像网络,有点像桥接感觉又不是,当你开了之后你的WSL2的发行版网络IP和WIndows的网卡IP就成了同一个了,这样你在WSL2中上网就好像在Windows里上网一样,给人的感觉是合二为一了,想了解更多就去巨硬官网看看=官方介绍。
注意:默认的网络模式是NAT,这个不多说了可以自行了解下!
你需要在用户目录里面创建一个WSL2的配置文件.wslconfig
,点在WIndows系统中不是隐藏的意思,是一种特殊的标记。
比如我的用户目录是C:\Users\hoo
下面是我的配置,你可以参考下:
# Settings apply across all Linux distros running on WSL 2
[wsl2]
# 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=4
# Specify a custom Linux kernel to use with your installed distros. The default kernel used can be found at https://github.com/microsoft/WSL2-Linux-Kernel
#kernel=C:\\temp\\myCustomKernel
#kernel=E:\\Test\\Linux\\WSL2\\6.6\\bzImage
# Sets additional kernel parameters, in this case enabling older Linux base images such as Centos 6
#kernelCommandLine = vsyscall=emulate
# Sets amount of swap storage space to 8GB, default is 25% of available RAM
#swap=8GB
# Sets swapfile path location, default is %USERPROFILE%\AppData\Local\Temp\swap.vhdx
#swapfile=C:\\temp\\wsl-swap.vhdx
# Disable page reporting so WSL retains all allocated memory claimed from Windows and releases none back when free
#pageReporting=true
#一个布尔值,用于在 WSL 中打开或关闭对 GUI 应用程序 (WSLg) 的支持。 仅适用于 Windows 11
#guiApplications=true
#一个布尔值,用于在 WSL 2 发行版实例启动时打开显示 dmesg 内容的输出控制台窗口。 仅适用于 Windows 11。
#debugConsole=true
# Turn off default connection to bind WSL 2 localhost to Windows localhost
#一个布尔值,用于指定绑定到 WSL 2 VM 中的通配符或 localhost 的端口是否应可通过 localhost:port 从主机连接。
#localhostforwarding=true
# Disables nested virtualization
#用于打开或关闭嵌套虚拟化的布尔值,使其他嵌套 VM 能够在 WSL 2 中运行。 仅适用于 Windows 11。
#nestedVirtualization=false
#如果值为 mirrored,则会启用镜像网络模式。 默认或无法识别的字符串会生成 NAT 网络。
networkingMode=mirrored
#networkingMode=NAT
#如果设置为 true,则 Windows 防火墙规则以及特定于 Hyper-V 流量的规则可以筛选 WSL 网络流量。
firewall=false
#更改将 DNS 请求从 WSL 代理到 Windows 的方式
dnsTunneling=true
#强制 WSL 使用 Windows 的 HTTP 代理信息
autoProxy=true
注意:其他选项根据个人需要打开,不一定非得和我一样,橙色的选项和我配置一样就行了!
配置好之后别忘了保存,然后杀死WSL2
,再重启虚拟机
之后就可以了。
三、测试
这里我使用了chrome浏览器来测试代理访问,chrome安装方法的话自行脑补。
百度正常使用
谷歌正常使用
我的chrome不是WIndows上的chrome,而是从WSL2打开的chrome,说明功能正常。
其实应该还有个方法的,通过export http_proxy=http://<server ip>
和export https_proxy=https://<server ip>
来解决,理论上这两种方法应该是行的,只不过我手上没有相关的资源,所以测试不了。
总结
1、方法总体没什么难度,NAT方式暂时没研究透,后续有时间再研究
2、WIndows10系统不支持mirrored,暂时需要另辟蹊径