最近入了一臺16gb+512gb的N100,想著用來存些資源,當個nas,偶爾要用用windows系統,所以想直接在這上面搞個虛擬機器器算了,WSL2似乎是一個不錯的選擇,下面介紹搗鼓的教學。
之前向電信申請了一個公網ip,後來公網ip被收回了,打電話要了幾次還是沒有公網ip,只能以tailscale代替,如果有公網ip,則可以跳過這一步。
進入上述連結下載,然後註冊賬戶登入即可
[231129]Jellyfin中國特供版+Docker映象,含驅動,免折騰開箱即用 - 電腦討論(新) - Chiphell - 分享與交流使用者體驗
JellyFin使用這個版本進行安裝
需要在BIOS開啟虛擬化選項,可以在工作管理員看到有沒有開啟:
開啟下述三個功能:
開啟Power Shell 以管理員命令輸入下方程式碼:
bcdedit /set hypervisorlaunchtype auto
使用下述命令安裝WSL
wsl --install -d Ubuntu
完成完成後可以使用以下命令
升級核心的命令
wsl --update
重啟命令
核心升級完成以後,電腦重啟才會生效,這個可以用命令重啟
wsl -l -shutdown
檢視當前系統版本
wsl -l -v
切換版本命令
wsl --set-default-version 2 #切換到WSL2
wsl --set-default-version 1 #切換到WSL1
在映象模式下,wsl2的網路模式和wsl1的網路模式相同,都是處於同一網路,有以下的好處:
在wsl2跑的服務,在windows裡面通過localhost:埠號即可存取。
Windows本地使用代理(如clash)後,WSL2也可以走clash代理。(需要開啟tun模式)
在前面裝的內網穿透工具(Tailscale),也可以直接打洞到wsl2。
操作步驟:
使用映象模式需要將win11升級到23H2,沒有收到推播的可以加入 Windows Insider即可收到推播
更新WSL到2.0版本以上,使用wsl —update
,如果版本還是低,則用 wsl —update —pre-release
在Windows使用者目錄下,新建.wslconfig
的組態檔,寫入如下資訊:
[wsl2]
memory=8G #設定虛擬機器器最大使用記憶體,按需,預設Windows主機記憶體的1/2
[experimental]
autoMemoryReclaim=gradual # 檢測到空閒CPU後自動釋放快取記憶體。設定gradual為緩慢釋放,設定dropcache為立即釋放快取記憶體。
sparseVhd=true
networkingMode=mirrored # 如果值為mirrored則這將開啟映象網路模式。預設會設定為NAT。
dnsTunneling=true
firewall=true
hostAddressLoopback=true # 允許使用如192.168.1.10+埠這種方式來存取(不加的話只能通過localhost)
autoProxy=true #強制WSL使用Windows的HTTP代理資訊
儲存檔案後重啟
`wsl —shutdown`
再啟動WSL。
如果在WSL中使用Docker,從本機存取不了Docker中啟動的服務的話,給Docker新增下面設定( sudo vim /etc/docker/daemon.json
)
{
"iptables": false
}
然後重啟Docker
sudo service docker restart
WSL2下的Ubuntu預設是支援SSH的,需要開啟的,手動編輯下SSH服務的組態檔。
切換到root
使用者之後,用vi
命令開啟SSH的組態檔。
vi /etc/ssh/sshd_config
進入之後,修改以下設定
Port = 22 去掉這行的#,代表啟用埠號22
ListenAddress 0.0.0.0 去掉這行的#,代表監聽所有地址
PasswordAuthentication yes 將這行的no改成yes
將下面這行改為yes
PermitRootLogin prohibit-password
修改為:
PermitRootLogin yes
esc
-> wq
,,重啟一次SSH服務
sudo service ssh restart
設定開機自啟ssh
sudo systemctl enable sshd
測試在外網使用tailscale,用tailscale的ip+22埠,成功用root賬戶登入。
使用以下命令,安裝casaos的時候會自動安裝docker,裝的過程會出現推薦使用docker for windows的字樣,等待20s即可
curl -fsSL get.casaos.io/install.sh | sudo bash
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo service docker start
這裡給出迅雷,aria2 pro,ariang,alist四個映象
docker run -d --name=xunlei --hostname=mynas -p 2345:2345 -v /mnt/c/Docker/xunlei:/xunlei/data -v /mnt/c/Docker/downloads:/xunlei/downloads --restart=unless-stopped --privileged cnk3x/xunlei:latest
docker run -d --name aria2 --restart unless-stopped --log-opt max-size=1m -e PUID=$UID -e PGID=$GID -e UMASK_SET=022 -e RPC_SECRET=12345678 -e RPC_PORT=6800 -e LISTEN_PORT=6888 -p 16800:6800 -p 16888:6888 -p 16888:6888/udp -v /mnt/c/Docker/aria2/config:/config -v /mnt/c/Docker/downloads:/downloads p3terx/aria2-pro
docker run -d --name ariang --log-opt max-size=1m --restart unless-stopped -p 6880:6880 p3terx/ariang
docker run -d --restart=always -v /mnt/c/Docker/alist:/opt/alist/data -p 5244:5244 -e PUID=0 -e PGID=0 -e UMASK=022 --name="alist" xhofe/alist:latest
一鍵安裝的docker-compose.yml檔案:
version: '3'
services:
aria2:
image: p3terx/aria2-pro
container_name: aria2
restart: unless-stopped
logging:
options:
max-size: 1m
environment:
- PUID=$UID
- PGID=$GID
- UMASK_SET=022
- RPC_SECRET=12345678
- RPC_PORT=6800
- LISTEN_PORT=6888
ports:
- "16800:6800"
- "16888:6888"
- "16888:6888/udp"
volumes:
- /mnt/c/Docker/aria2/config:/config
- /mnt/c/Docker/downloads:/downloads
ariang:
image: p3terx/ariang
container_name: ariang
restart: unless-stopped
logging:
options:
max-size: 1m
ports:
- "6880:6880"
alist:
image: xhofe/alist:latest
container_name: alist
restart: always
volumes:
- /mnt/c/Docker/alist:/opt/alist/data
ports:
- "5244:5244"
environment:
- PUID=0
- PGID=0
- UMASK=022
xunlei:
image: cnk3x/xunlei:latest
container_name: xunlei
hostname: mynas
restart: unless-stopped
privileged: true
ports:
- "2345:2345"
volumes:
- /mnt/c/Docker/xunlei:/xunlei/data
- /mnt/c/Docker/downloads:/xunlei/downloads
儲存檔案後,執行 docker-compose up -d
啟動所有服務。
掛載目錄均是C槽下的Docker資料夾。
aria2的使用可以參考這篇部落格:
docker安裝aira2 pro與ariang以及alist推播下載的設定 - Scotyzh - 部落格園 (cnblogs.com)