安装 wsl2 后一些必要的配置

本贴最后更新于 181 天前,其中的信息可能已经时移世异

在 wsl 中使用主机代理

首先我安装的 wsl 发行版事 ubuntu,其他系统差不多。

我们知道在 Linux 中使用代理的方式:

export http_proxy=sock5://ip:port
export https_proxy=sock5://ip:prot

那么我们主机的 IP 在局域网中总会变,但是我们发现有一个 IP 是在/etc/resolv.conf 中那么我们可以用一个命令取出来,我们直接打开家目录下的.bashrc, vim ~/.bashrc 输入

export hostip=$(cat /etc/resolv.conf | grep -oP '(?<=nameserver\ ).*)
alias proxy='export http_proxy="sock5://${hostip}:1080"; export https_proxy="http://${hostip}:1080"; echo "open proxy"'
alias noproxy='export http_proxy= ;export https_proxy= ; echo "close proxy"'

这样我们就可以输入 proxy 打开代理,输入 noproxy 关闭代理

但是,我们发现这样是连不上主机的代理的,因为从 wsl 发出的网络包被 windows 的防火墙拦截了

解决方法是,按 win+x 键以管理员方式打开 powershell 添加以下防火墙规则

New-NetFirewallRule -DisplayName "WSL" -Direction Inbound -InterfaceAlias "vEthernet (WSL)" -Action Allow

image.png

主机或局域网中访问 wsl 中的服务

主机中访问 wsl 的服务有两种方式,一种直接使用 localhost 访问,不过这种方式缺点就是有些调试工具不支持,而且不支持。第二种方式就是使用端口转发,这种比较麻烦的部分是 wsl 每次启动 IP 都会变,而用 localhost 经常会连接不上。我们可以获取 wsl2 的 IP 并写入到 hosts 中,感谢 shayne 大佬提供了工具下载后使用管理员启动 powershell 执行如下命令

.\wsl2host.exe install

输入计算机用户名,密码,重启 wsl 后就会自动讲 wsl 的 ip 写入到 hosts,ubuntu.wsl,然后设置端口转发,在 powershell 中执行

netsh interface protproxy add v4tov4 listenport=监听的端口 connectaddress=ubuntu.wsl connectport=监听的端口 listenaddress=* protocol=tcp

wsl 中开机自启

我们经常会在 wsl 中安装一些服务,并希望这些服务开机自启,我们可以在 wsl 中的/etc/init.wsl 写入开机启动的服务比如 redis

#!/bin/bash
service redis-server start

在 windows 下创建启动的 vbs 脚本 linux-start.vbs

Set ws = WScript.CreateObject("WScript.Shell")
ws.run "wsl -d ubuntu -u root /etc/init.wsl"

按 win+r 键输入:shell:startup

将 linux-start.vbs 拖入到这个目录就可以了,这样就实现了开机启动

  • Windows

    Microsoft Windows 是美国微软公司研发的一套操作系统,它问世于 1985 年,起初仅仅是 Microsoft-DOS 模拟环境,后续的系统版本由于微软不断的更新升级,不但易用,也慢慢的成为家家户户人们最喜爱的操作系统。

    178 引用 • 445 回帖
  • WSL

    Windows Subsystem for Linux(WSL),适用于 Linux 的 Windows 子系统 。它是一个为在 Windows 上能够原生运行 Linux 二进制可执行文件的兼容层。WSL 允许开发人员直接在 Windows 上运行 GNU / Linux 环境(包括大多数命令行工具,实用程序和应用程序),不需要修改程序,无需虚拟机的开销。

    8 引用 • 9 回帖
  • 效率提高
    2 引用

广告 我要投放

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...