Windows10下的WSL的使用和ssh配置

WSL介紹

WSL(Windows Subsystem on Linux)顶别,適用于 Windows 的 Linux 子系統(tǒng)酒朵,是微軟和Canonical(Ubuntu 的母公司)共同開發(fā)的初斑,在Windows 10后加入的功能宪肖,能夠在Windows 10 系統(tǒng)中掛載一個Linux 系統(tǒng),用起來不像虛擬機那樣臃腫濒生、開機緩慢埋泵、性能低下,是Windows使用者用來進階使用Linux系統(tǒng)的一個不錯的選擇罪治,開發(fā)人員可在其上運行GNU/Linux環(huán)境(包括大多數命令行工具丽声、實用程序和應用程序)。

WSL的安裝

第一步:啟用虛擬機平臺和 Linux 子系統(tǒng)功能

確保你的windows10系統(tǒng)的內部版本高于或等于16215 (來自官網提示)觉义;
在win10的win圖標處雁社,右鍵->管理員權限啟動 PowerShell (或者win+r-->PowerShell-->ctrl+shift+enter),出現PowerShell的命令行界面后谁撼,接著輸入以下命令啟用虛擬機平臺:

Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

命令運行后歧胁,等待一段時間滋饲,會出現如下結果厉碟,代表虛擬平臺已經開啟:

Running
[ooooooooooooooo                        ]
Path          :
Online        : True
RestartNeeded : False

虛擬平臺開啟后,接著在命令行中輸入以下命令開始Linux子系統(tǒng):

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

和開啟虛擬平臺有一些區(qū)別屠缭,命令運行結束后箍鼓,命令行會出現是否重啟的界面:

Running
[ooooooooooooooo                        ]
是否立即重啟計算機以完成此操作?
[Y] Yes  [N] No  [?] 幫助 (默認值為“Y”): n
Path          :
Online        : True
RestartNeeded : True

當然,上述windows 10的功能的開啟也可以通過啟用或者關閉windows功能來啟用:
win搜索-->控制面板-->程序-->卸載程序-->啟用或者關閉 Windows 功能-->勾選虛擬機平臺和適用于 Linux 的 Windows 子系統(tǒng):


啟用Windows功能

完成設置后呵曹,記得重啟計算機款咖!

第二步:選擇一個 Linux 發(fā)行版進行安裝

windows打開微軟應用商店(store),在搜索框中輸入Linux進行搜索奄喂,在搜索結果中有很多Linux發(fā)行版可以選擇铐殃,開始你的選擇,獲取該發(fā)行版跨新,然后安裝:


Linux發(fā)行版

選擇Ubuntu系統(tǒng)

在這里需要注意富腊,在store中的安裝并沒有實際上完成 Linux 子系統(tǒng)的安裝,還需要運行一次已安裝的 Linux 發(fā)行版域帐,這樣才會完成真正的安裝:


完成WSL的安裝

一般不愿意折騰的都推薦使用這種方法安裝Linux發(fā)行版赘被,但是官方也考慮到了其他的情況是整,如無法(或不想)通過 Microsoft Store 安裝 WSL Linux 發(fā)行版、可能運行的是不支持 Microsoft Store民假、系統(tǒng)環(huán)境中不允許 Microsoft Store 使用的 Windows Server 等等浮入,當出現以下情況時,可以通過如下的方法下載和安裝:

手動下載適用于 Linux 的 Windows 子系統(tǒng)發(fā)行版包

有時候羊异,你可能無法(或不想)通過 Microsoft Store 安裝 WSL Linux 發(fā)行版事秀,比如說,你運行的可能不支持 Microsoft Store 或公司網絡策略和/或管理員在你的環(huán)境中不允許 Microsoft Store 使用的 Windows Server 或長期服務(LTSC)桌面操作系統(tǒng) SKU野舶。
在這些情況下秽晚,雖然 WSL 本身可用,但如果你無法訪問應用商店筒愚,如何下載并在 WSL 中安裝 Linux 發(fā)行版赴蝇?

瀏覽器下載發(fā)行版

如果 Microsoft Store 應用不可用,則可以在瀏覽器中通過單擊以下鏈接下載并手動安裝 Linux 發(fā)行版:
Ubuntu 18.04
Ubuntu 18.04 ARM
Ubuntu 16.04
Debian GNU/Linux
Kali Linux
OpenSUSE Leap 42
SUSE Linux Enterprise Server 12
WSL 的 Fedora Remix
點擊鏈接后巢掺,可以下載CanonicalGroupLimited.Ubuntu18.04onWindows_1804.2018.817.0_x64__79rhkp1fndgsc.Appx這樣的以.appx為后綴的包到瀏覽器下載文件夾句伶,然后按照下面的安裝說明安裝下載的發(fā)行版。

命令行下載發(fā)行版

使用 PowerShell WebRequest下載

下載發(fā)行版陆淀,也可以通過windows的命令行工具——PowerShell來操作考余,命令提示符是Invoke-WebRequest,如下是下載示例:

cd C:\Users\dulun\Downloads
Invoke-WebRequest -Uri https://aka.ms/wsl-ubuntu-1804 -OutFile Ubuntu-1804.appx -UseBasicParsing

來自官方的提示:下載開始的時候可以看到一個進度條轧苫,如果預估下載的時間比較長楚堤,請通過設置$ProgressPreference = 'SilentlyContinue'來關閉進度欄

使用 PowerShell curl.exe 下載

Windows 10 春季2018更新(或更高版本)包含可從命令行調用 web 請求(例如 HTTP GET、POST含懊、PUT 等命令)的常用命令行工具——curl.exe身冬,名字是客戶端(client)的 URL 工具的意思。使用curl.exe下載的示例:

curl.exe -L -o Ubuntu-1804.appx https://aka.ms/wsl-ubuntu-1804
安裝下載的Linux發(fā)行版

在Windows10系統(tǒng)中岔乔,使用PowerShell安裝已下載的Linux 發(fā)行版酥筝,但是需要進入到下載的文件的目錄,運行Add-AppxPackage \.app_name.appx雏门,示例:

cd C:\Users\dulun\Downloads
Add-AppxPackage Ubuntu-1804.appx

Windows Server安裝WSL

但是有些用戶使用的是Windows Server的系統(tǒng)嘿歌,這和Windows10的安裝有一些區(qū)別,前面的開啟受信用的執(zhí)行環(huán)境是一樣的茁影,啟用虛擬機平臺和適用于 Linux 的 Windows 子系統(tǒng)宙帝,然后重啟計算機,必須重啟募闲。然后按照上面的鏈接步脓、下載方式選擇合適Linux 發(fā)行版、下載。

Windows Server提取并安裝 Linux 發(fā)行版

下載發(fā)行版后沪编,請?zhí)崛∑鋬热莺襞瑁⑹謩影惭b發(fā)行版,使用PowerShell提取下載的<distro>.appx包的內容:

Rename-Item .\Ubuntu-1804.appx .\Ubuntu.zip
Expand-Archive .\Ubuntu.zip .\Ubuntu
cd .\Ubuntu && ls  ##進入Ubuntu目錄并查看包含的文件
Ubuntu文件

在名為Ubuntu的目標文件夾中運行Linux 發(fā)行版啟動器應用程序ubuntu1804.exe以完成安裝:

.\ubuntu1804.exe

第三步:初始化蚁廓、查看和使用 WSL

初始化安裝Linux發(fā)行版

新安裝完WSL后访圃,首次運行新安裝的分發(fā)版,會打開一個控制臺窗口相嵌,其中指出需要等待一兩分鐘時間來完成安裝:

這一步是最后的安裝階段腿时,Linux發(fā)行版的文件將會被解壓縮,然后儲存到電腦上供使用饭宾,時間的長短取決于電腦存儲設備的性能批糟,這一步也只是當Linuxf發(fā)行版是初始安裝的版本時,才需要執(zhí)行初始化安裝——這也是為什么后期WSL的啟動飛速的原因看铆。

初始話安裝結束后徽鼎,系統(tǒng)提示創(chuàng)建新的用戶帳戶及其密碼:


完成WSL的安裝

此用戶帳戶用于啟動Linux 發(fā)行版時默認登錄的非管理員用戶。

可根據需要選擇任何用戶名和密碼 - 它們與 Windows 用戶名無關弹惦。打開此Linux子系統(tǒng)時否淤,系統(tǒng)不需要輸入密碼,但是如果使用sudo權限的時候棠隐,這需要輸入密碼石抡,所以密碼還是需要記住的。

在windows中查看安裝的WSL

PowerShell中使用 wsl -l 可以列出當前系統(tǒng)上已經安裝的 Linux 子系統(tǒng)名稱助泽。注意這里的 -l 是列表list的縮寫啰扛,是字母l不是其他字符。

查看WSL

如果運行命令的時候嗡贺,提示wsl不是內部或外部命令隐解,說明你第一步的“適用于 Windows 的 Linux 子系統(tǒng)”沒有設置完整,請先完成第一步暑刃。

如果提示沒有發(fā)現任何已安裝的 Linux子系統(tǒng)厢漩,說明你沒有安裝 Linux 發(fā)行版,或者只是從商店或者瀏覽器下載了岩臣,沒有運行它執(zhí)行真正的安裝,請先完成本文第二步宵膨。

在這里如果直接在PowerShell中輸入wsl架谎,也可以直接進入安裝的Linux子系統(tǒng)。

WSL的配置ssh的開機自啟動

因為我是在Workstation上安裝的WSL辟躏,本意是取代原先使用的虛擬機谷扣,這里說一下為什么舍棄了虛擬機,我剛開始使用的是VirtualBox,這個軟件吧我第一次使用会涎,KI‘s IT部門推薦的裹匙,但是除了安裝完第一次以后,我就再也沒有打開過末秃,IT小哥也不知道怎么辦概页,我只能轉投了VMware,這不是我第一次使用了练慕,剛來KI的時候惰匙,因為條件艱苦,我使用了辦公室老機器打了一個虛擬機用來搭建流程铃将,但是用的只能說還行项鬼,畢竟只是前期搭建。
后來新機器來了以后劲阎,因為網絡驅動器(俗稱存儲Server)的存在绘盟,我沒有辦法安裝Ubuntu,只能先安裝KI的windows 10悯仙,然后使用實驗室博后的賬號登錄奥此,Server才會出現(人家有access的)。VMware在KI的Software Center居然下不到雁比,想盡了辦法安裝好稚虎,體驗了5天左右,缺點出來了偎捎,我配的服務器的內存是256g蠢终,但是VMware的max memory是64g;機器配了兩個cpu茴她,共40個核寻拂,但是VMware的max processor數是16,這導致我配置的機器大部分性能根本沒法發(fā)揮出來丈牢,于是我轉身就投身了WSL的懷抱祭钉,配置起來也是各種奇葩,因為KI安裝軟件的各種限制己沛。
既然是服務器的使用慌核,肯定需要用到SSH的配置,因為我一般是使用自己的電腦用putty申尼、xshell等軟件連接服務器的垮卓,但是WSL的ssh不是安裝好久開機自啟動,需要設置师幕,接下來簡單說一下我的設置粟按。

Ubuntu 啟用SSH所需設置
#設置root的口令(密碼),用作后續(xù)登陸使用
sudo passwd root

#安裝openssh-server(ubuntu自帶已安裝,但是我使用有問題灭将,沒找到原因)
sudo apt remove openssh-server
sudo apt install openssh-client openssh-server

#備份原始的sshd_config
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
sudo cp /etc/ssh/ssh_config /etc/ssh/ssh_config.bak

#使用vim進行編輯疼鸟,按i進入insert模式
sudo vim /etc/ssh/sshd_config

在vim中找到對應項并修改,ESC庙曙,輸入`wq`保存退出:
Port 2222
ListenAddress 0.0.0.0        # 如果需要指定監(jiān)聽的IP則去除最左側的井號空镜,并配置對應IP,默認即監(jiān)聽PC所有IP
PermitRootLogin no           # 如果你需要用 root 直接登錄系統(tǒng)則此處改為 yes
PasswordAuthentication yes    # 將 no 改為 yes 表示使用帳號密碼方式登錄

#使用vim進行編輯矾利,按i進入insert模式
sudo vim /etc/ssh/sshd_config

#在vim中找到對應項并修改姑裂,ESC,輸入`wq`保存退出:
Port 2222
ListenAddress 0.0.0.0        # 如果需要指定監(jiān)聽的IP則去除最左側的井號男旗,并配置對應IP舶斧,默認即監(jiān)聽PC所有IP

#啟動ssh,查看status
sudo service ssh start             #啟動SSH服務
sudo service ssh status            #檢查狀態(tài)
sudo systemctl enable ssh          #開機自動啟動ssh命令察皇,我好想失效了
WSL開機自啟動SSH

因為我使用systemctl這個失效了茴厉,所以就另想辦法開機自啟動ssh;

Ubuntu 系統(tǒng)添加啟動:

##登錄帳號就會啟動什荣,寫入到bash中
sed -i '/^sudo service ssh --full-restart/ d' ~/.bashrc

##使用sudo開機自啟動
echo -e "%sudo\tALL=(ALL) NOPASSWD: /usr/sbin/service ssh --full-restart" | sudo tee -a /etc/sudoers

##檢測ssh的狀態(tài)矾缓,也是寫入到bash中
cat << 'EOF' >> ~/.bashrc
sshd_status=$(service ssh status)
if [[ $sshd_status = *"is not running"* ]]; then
  sudo service ssh --full-restart
fi
EOF

如果大家覺得麻煩,可以使用這個自動安裝和配置的腳本稻爬,我修改了一下嗜闻,大家用之前可以看一下大概,這里也會安裝一下基礎的安裝包桅锄。

Windows啟用SSH端口所需設置

因為在前面設置的ssh端口是2222琉雳,22端口在Windows下有其他占用了,所以還需要去防火墻中設置一下這個端口的撥入友瘤,win+防火墻翠肘,進入防火墻頁面,按如下操作:


設置防火墻

端口-->TCP-->特點本地端口2222-->允許連接-->下一步確定辫秧;設置完成束倍。

Windows 系統(tǒng)添加自動啟動

在ubuntu中添加一個腳本程序,詳情如下:

sudo vi /etc/init.wsl
#!/bin/sh
# Filename: /etc/init.wsl
# Usage: sudo /etc/init.wsl [start|stop|restart]
/etc/init.d/ssh $1
/etc/init.d/cron $1
/usr/sbin/rstudio-server $1
mount -t drvfs 'P:\PHA' /mnt/shareP

Windows 中添加自動啟動的腳本 startubuntu.vbs盟戏;
a. 打開當前用戶默認自啟動加載文件夾绪妹,在 Windows 中,開始-運行(或者win+r)抓半,輸入:shell:startup喂急;

b. 在當前用戶默認自啟動加載文件夾中,添加要加載的VBS腳本文件 startubuntu.vbs 笛求。

Set ws = WScript.CreateObject("WScript.Shell")
ws.run "wsl -d ubuntu -u root /usr/sbin/service ssh --full-restart", vbhide
ws.run "ubuntu run sudo /etc/init.wsl start", vbhide

重啟 Windows 系統(tǒng),驗證WSL ssh服務是否自動啟動。

至此探入,我這段時間的折騰就在這里了狡孔,還有些有的沒的也就沒寫了,服務器配置好了蜂嗽,還需要去把流程什么的遷移過來苗膝,后期再寫寫WSL中掛在硬盤、移動硬盤植旧、網絡驅動器等等再說吧辱揭!

References

如何在 Windows 10 中安裝 WSL2 的 Linux 子系統(tǒng)

WSL 服務自動啟動

在Windows上舒適地使用Linux子系統(tǒng)(一):WSL的安裝及配置

                        —— dulunar 后記于 2019.10
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市病附,隨后出現的幾起案子问窃,更是在濱河造成了極大的恐慌,老刑警劉巖完沪,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件域庇,死亡現場離奇詭異,居然都是意外死亡覆积,警方通過查閱死者的電腦和手機听皿,發(fā)現死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宽档,“玉大人尉姨,你說我怎么就攤上這事÷鹪” “怎么了又厉?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長欣孤。 經常有香客問我馋没,道長,這世上最難降的妖魔是什么降传? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任篷朵,我火速辦了婚禮,結果婚禮上婆排,老公的妹妹穿的比我還像新娘声旺。我一直安慰自己,他們只是感情好段只,可當我...
    茶點故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布腮猖。 她就那樣靜靜地躺著,像睡著了一般赞枕。 火紅的嫁衣襯著肌膚如雪澈缺。 梳的紋絲不亂的頭發(fā)上坪创,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天,我揣著相機與錄音姐赡,去河邊找鬼莱预。 笑死,一個胖子當著我的面吹牛项滑,可吹牛的內容都是我干的依沮。 我是一名探鬼主播,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼枪狂,長吁一口氣:“原來是場噩夢啊……” “哼危喉!你這毒婦竟也來了?” 一聲冷哼從身側響起州疾,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤辜限,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后孝治,有當地人在樹林里發(fā)現了一具尸體列粪,經...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年谈飒,在試婚紗的時候發(fā)現自己被綠了岂座。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡杭措,死狀恐怖费什,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情手素,我是刑警寧澤鸳址,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站泉懦,受9級特大地震影響稿黍,放射性物質發(fā)生泄漏。R本人自食惡果不足惜崩哩,卻給世界環(huán)境...
    茶點故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一巡球、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧邓嘹,春花似錦酣栈、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至棚贾,卻和暖如春窖维,著一層夾襖步出監(jiān)牢的瞬間榆综,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工陈辱, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留奖年,地道東北人细诸。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓沛贪,卻偏偏與公主長得像,于是被迫代替她去往敵國和親震贵。 傳聞我的和親對象是個殘疾皇子利赋,可洞房花燭夜當晚...
    茶點故事閱讀 42,792評論 2 345