wsl 配置禁用 win系统环境变量
进入 wsl 的 /etc/wsl.conf
目录,增加以下配置:
[interop]
enabled=false
appendWindowsPath=false
然后退出wsl,并且执行关闭正在运行的 wsl,执行命令 wsl --shutdown
最后重新进入wsl 即可。
参考资料
wsl 配置禁用 win 系统代理
进入用户目录,创建配置文件 .wslconfig
,输入或追加以下配置:
[experimental]
autoProxy=false
然后重启 wsl 即可。
参考资料
wsl docker 安装
进入 wsl, 执行以下命令
curl -fsSL https://get.docker.com -o get-docker.sh
# 指定镜像源为 阿里云 或者 --mirror AzureChinaCloud
sh install-docker.sh --mirror Aliyun
等待 20秒后即可开始安装
wsl2 启用 systemd
wsl1 并不支持服务进程,wsl2 中没有默认启用,当尝试使用 systemctl
命令检查服务进程状态时,wsl 会抛出以下异常。
System has not been booted with systemd as init system (PID 1).
Can't operate. Failed to connect to bus: Host is down
当我们想要一只运行一些服务器软件如 Nginx , sshd 时就需要配置开启 systemd。
此时我们需要在 wsl 中进入到配置文件 /etc/wsl.conf` 里,添加如下配置:
[boot]
systemd=true
然后退出 wsl,使用 wsl --shutdown
命令结束当前正在运行的 wsl 然后重新进入 wsl,此时就可以看到 wsl 已经开启了 systemd.
通过远程ssh 链接 wsl2
我们在配置好 wsl 之后,可以通过开启 systemd 的方式,然后安装 openssh-server 使得 wsl 启动 ssh 服务,并监听在 22 端口。
[root]# systemctl status ssh
○ ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/usr/lib/systemd/system/ssh.service; disabled; preset: enabled)
Active: inactive (dead)
TriggeredBy: ● ssh.socket
Docs: man:sshd(8)
man:sshd_config(5)
[root]# ss -nltp
LISTEN 0 4096 127.0.0.54:53 0.0.0.0:* users:(("systemd-resolve",pid=99,fd=16))
LISTEN 0 4096 127.0.0.53%lo:53 0.0.0.0:* users:(("systemd-resolve",pid=99,fd=14))
LISTEN 0 4096 *:22 *:* users:(("systemd",pid=1,fd=51))
[root]# ip addr
[root]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:15:5d:43:75:13 brd ff:ff:ff:ff:ff:ff
inet 172.21.125.77/20 brd 172.21.127.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::215:5dff:fe43:7513/64 scope link
valid_lft forever preferred_lft forever
那现在就好办了,我们只需要将其监听到本地 win 地址上就好了:
以管理员身份运行 cmd ,并输入下面的命令,即可实现端口转发:
> netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=22 connectaddress=72.21.125.77 connectport=22
> netsh interface portproxy show v4tov4
侦听 ipv4: 连接到 ipv4:
地址 端口 地址 端口
--------------- ---------- --------------- ----------
0.0.0.0 22 72.21.125.77 22
删除转发:
> netsh interface portproxy show v4tov4
Listen on ipv4: Connect to ipv4:
Address Port Address Port
--------------- ---------- --------------- ----------
0.0.0.0 22 72.21.125.77 22
> netsh interface portproxy delete v4tov4 listenport=22 listenaddress=0.0.0.0
> netsh interface portproxy show v4tov4
现在我们访问 win主机的 22 端口,就能直接连接进入 wsl了。