本篇文章會介紹win10中wsl2的安裝和使用以及遇到的常見問題好比如何固定wsl2地址等問題的總結。html
wsl是適用於 Linux 的 Windows 子系統,安裝指南:適用於 Linux 的 Windows 子系統安裝指南 (Windows 10)mysql
簡單來講,之前想在windows中使用linux,須要安裝vmware虛擬機,如今則不比這麼麻煩了,直接安裝linux子系統,秒開。linux
按照官方文檔安裝好wsl2以後,再順便安裝下Windows 終端,一塊兒使用,效果更佳。redis
安裝好wsl2後,直接在菜單中找到對應的wsl終端直接打開便可,第一次用的時候讓你初始化一個用戶名和密碼,根據提示幾秒鐘便可初始化完成。sql
安裝好以後就能夠愉快的玩耍了,貌似一切都ok。。。慢着,用久了,你會發現一些問題:docker
好比我使用的ubuntu20,安裝和更新軟件都特別慢,由於畢竟國內,這時候就要使用國內鏡像進行加速[ 0 ]。ubuntu
第一步:備份源文件windows
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
第二步:編輯/etc/apt/sources.list文件bash
在文件最前面添加如下條目,以後保存便可生效(以阿里雲鏡像爲例,操做前請作好相應備份):ssh
vi /etc/apt/sources.list deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
通常來講這不是什麼大問題,可是別忘了咱們要wsl是幹啥的,咱們老是但願可以在windows中訪問wsl中的一些服務,好比安裝的mysql、redis等,若是wsl的ip地址老是變化,豈不是每次開機都要在windows中手動設置一次ip地址[ 1 ]?固定ip地址的方法比較簡單,直接運行如下腳本便可,我這裏安裝了docker,有些小夥伴沒安裝docker則須要修改下腳本才行。
@echo off setlocal enabledelayedexpansion wsl -u root service docker start | findstr "Starting Docker" > nul if !errorlevel! equ 0 ( echo docker start success :: set wsl2 ip wsl -u root ip addr | findstr "192.168.169.2" > nul if !errorlevel! equ 0 ( echo wsl ip has set ) else ( wsl -u root ip addr add 192.168.169.2/28 broadcast 192.168.169.15 dev eth0 label eth0:1 echo set wsl ip success: 192.168.169.2 ) :: set windows ip ipconfig | findstr "192.168.169.1" > nul if !errorlevel! equ 0 ( echo windows ip has set ) else ( netsh interface ip add address "vEthernet (WSL)" 192.168.169.1 255.255.255.240 echo set windows ip success: 192.168.169.1 ) ) pause
將它保存到文件,好比劃分虛擬局域網&啓動docker.bat
,而後將其放到windows啓動目錄下[ 2 ]:
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup
以後,每次電腦啓動以後就會自動執行該腳本了
首先,wsl中已經安裝的ssh是不完整的或者有問題的,因此不管你怎麼改都不會生效,甚至ssh服務都沒法正常啓動,正確的作法是先卸載ssh再從新安裝。
sudo apt-get purge openssh-server # purge 是卸載並刪除配置文件 sudo apt-get install openssh-server
而後修改配置文件/etc/ssh/sshd_config,新增以下配置
PermitRootLogin yes
修改PasswordAuthentication
配置項爲yes,修改Port
端口號爲2222
(22端口比較特殊,windows可能會使用到)
使用命令 service sshd restart
重啓ssh服務
作完以上修改以後,解決了第一個問題,即如何在windows使用工具ssh鏈接wsl2, 接下來要作的事情是如何在局域網中遠程登錄wsl2。
首先分析下爲啥局域網其餘機器沒法鏈接wsl2
- 第一個緣由,windows防火牆沒關閉或者沒有設置入站規則
- 第二個緣由,也是最本質的緣由,wsl2的地址是虛擬地址,並不是是局域網中的物理地址
那怎麼解決呢?
interface portproxy add v4tov4 listenport=【宿主機windows平臺監聽端口】 listenaddress=0.0.0.0 connectport=【wsl2平臺監聽端口】 connectaddress=【wsl2平臺ip】
好比,我這裏使用以下命令配置了win10 IpV4協議端口號2222轉發到地址爲192.168.169.2的wsl端口號2222
netsh interface portproxy add v4tov4 listenport=2222 listenaddress=0.0.0.0 connectport=2222 connectaddress=192.168.169.2
netsh interface portproxy show all
netsh interface portproxy delete v4tov4 listenport=9696 listenaddress=0.0.0.0
完成以上四步設置,便可在局域網使用securityCRT工具或者putty遠程鏈接wsl了。
正常來講,應當上docker官網按照安裝文檔來安裝,可是你會發現及時你更新了源,安裝速度仍然特別慢,高速打開方式[ 3 ]爲
sudo apt-get update sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ software-properties-common curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository \ "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \ $(lsb_release -cs) \ stable" sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io
同理,正常來講,docker-compose的安裝方式應該遵循官方網站的指導 https://docs.docker.com/compose/install/ ,可是會很是慢,仍是要另闢蹊徑[ 4 ]
curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose
最後,歡迎關注個人私有博客~ https://blog.kdyzm.cn/