乐趣区

关于wsl2:WSL2配置代理-记录下遇到的所有坑

第一步: 凋谢 windows 对 wsl2 的防火墙

大家都晓得 wsl2 和 wsl1 不一样, wsl2 基本上就是一个虚拟机, 虚构了一个 linux 的零碎

主机之间是有防火墙的, 当初咱们要敞开它

关上 powershell7 以管理员身份运行

PS C:\WINDOWS\system32>  New-NetFirewallRule -DisplayName "WSL" -Direction Inbound  -InterfaceAlias "vEthernet (WSL)"  -Action Allow

这条命令单纯凋谢了主零碎 windows 对 wsl2 的局域网拜访权限, 无毒有害

如果胜利你应该能够在 设置 -> 防火墙 -> 高级设置 -> 入站规定 中看到

第一步实现

第二步: 应用魔法

没有魔法必定上不了不必想了 个别也得花点米 这里不敢细讲 我自用的是 SDKDNS

第三步: 应用 Clash for window 软件代理

我的本来的代理软件貌似无奈代理 wsl2 的环境, 我最初用了 Clash for window 解决了, SDKDNS 官网有配置这个的教程, 并给了一键配置的计划, 十分不便

如果你用的不是Clash for window, 你应该更改代理的端口号, 个别代理软件会给出这些信息, 替换掉他们

比方你的代理软件在 2333 端口那么第四步中的脚本的那一行就应该改一下

alias setss='export https_proxy="http://${hostip}:2333";export http_proxy="http://${hostip}:2333";export all_proxy="socks5://${hostip}:2333";'

第四步: WSL2 的配置

以下办法援用自 这里

## 获取主机 IP
## 主机 IP 保留在 /etc/resolv.conf 中 wsl2 须要通过这个 ip 拜访 windows
export hostip=$(cat /etc/resolv.conf |grep -oP '(?<=nameserver\).*')

而后粘贴上面的脚本并运行

export hostip=$(cat /etc/resolv.conf |grep -oP '(?<=nameserver\).*')
alias setss='export https_proxy="http://${hostip}:7890";export http_proxy="http://${hostip}:7890";export all_proxy="socks5://${hostip}:7890";'
alias unsetss='unset all_proxy'

下面的脚本只影响以后会话 大可不必放心会把 wsl 的网络搞崩 也就是你重新启动个 shell 这些环境都没了

如果感觉每次粘贴麻烦 能够将这脚本粘贴到用户目录下的 .zshrc 配置文件或 bash 的配置文件中

或保留为任意文件每次运行source < 保留的脚本文件名 >

第五步: enjoy😎

➜  ~ curl www.google.com
<!doctype html><html itemscope=""itemtype="http://schema.org/WebPage"lang="ja"><head><meta content="&#19990;&#30028;&#20013;&#12398;&#12354;&#12425;&#12422;&#12427;&#24773;&#22577;&#12434;&#26908;&#32034;&#12377;&#12427;&#12383;&#12417;&#12398;&#12484;&#12540;&#12523;&#12434;&#25552;&#20379;&#12375;&#12390;&#12356;&#12414;&#12377;&#12290;&#12373;&#12414;&#12374;&#12414;&#12394;&#26908;&#32034;&#27231;&#33021;&#12434;&#27963;&#29992;&#12375;&#12390;&#12289;&#12362;&#25506;&#1
退出移动版