前言

最近入了一台16gb+512gb的N100,想着用来存些资源,当个nas,偶尔要用用windows系统,所以想直接在这上面搞个虚拟机算了,WSL2似乎是一个不错的选择,下面介绍捣鼓的教程。

没用公网情况下 使用tailscale

之前向电信申请了一个公网ip,后来公网ip被收回了,打电话要了几次还是没有公网ip,只能以tailscale代替,如果有公网ip,则可以跳过这一步。

Download · Tailscale

进入上述链接下载,然后注册账户登录即可

安装JellyFin

[231129]Jellyfin中国特供版+Docker镜像,含驱动,免折腾开箱即用 - 电脑讨论(新) - Chiphell - 分享与交流用户体验

JellyFin使用这个版本进行安装

安装WSL2

需要在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镜像模式

在镜像模式下,wsl2的网络模式和wsl1的网络模式相同,都是处于同一网络,有以下的好处:

  1. 在wsl2跑的服务,在windows里面通过localhost:端口号即可访问。

  2. Windows本地使用代理(如clash)后,WSL2也可以走clash代理。(需要开启tun模式)

  3. 在前面装的内网穿透工具(Tailscale),也可以直接打洞到wsl2。

操作步骤:

  1. 使用镜像模式需要将win11升级到23H2,没有收到推送的可以加入 Windows Insider即可收到推送

  2. 更新WSL到2.0版本以上,使用wsl —update,如果版本还是低,则用 wsl —update —pre-release

  3. 在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开启ssh和root账户

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账户登录。

在WSL2里面安装CasaOS与Docker

使用以下命令,安装casaos的时候会自动安装docker,装的过程会出现推荐使用docker for windows的字样,等待20s即可

curl -fsSL get.casaos.io/install.sh | sudo bash

不装casaos 只装docker

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo service docker start

常用的Docker镜像和使用

这里给出迅雷,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)

N100低功耗win11安装wsl2当入门nas的更多相关文章

  1. sass、less和stylus的安装使用和入门实践

    刚 开始的时候,说实话,我很反感使用css预处理器这种新玩意的,因为其中涉及到了编程的东西,私以为很复杂,而且考虑到项目不是一天能够完成的,也很少是 一个人完成的,对于这种团队的项目开发,前端实践用c ...

  2. Linux上安装使用boost入门指导

    Data Mining Linux上安装使用boost入门指导 获得boost boost分布 只需要头文件的库 使用boost建立一个简单的程序 准备使用boost二进制文件库 把你的程序链接到bo ...

  3. Oracle安装及使用入门

    新手Oracle安装及使用入门   一.安装Oracle Step1 下载oracle压缩包并解压到同一文件夹下面 Step2 双击setup.exe进行安装 Step3:进入如下界面配置: 邮箱可不 ...

  4. Postman 安装及使用入门教程(我主要使用接口测试)

    1.Postman 安装及使用入门教程(我主要使用接口测试)Postman的English官网:https://www.getpostman.com/chrome插件整理的Postman中文使用教程( ...

  5. Linux Supervisor的安装与使用入门

    在linux或者unix操作系统中,守护进程(Daemon)是一种运行在后台的特殊进程,它独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件.由于在linux中,每个系统与用户进行交流的界 ...

  6. 20165223 Linux安装及命令入门

    预备作业3:Linux安装及命令入门 一.VirtualBox和Ubuntu的安装 通过学习实践基于VirtualBox虚拟机安装Ubuntu图文教程,我开始学习虚拟机的安装,根据教程一步步试着安装. ...

  7. Git客户端的安装与配置入门

    GitLab与Git客户端的安装与配置入门,每次配置完一段时间,就忘记配置过程了,为了自己和同学们以后有所参照,特记录了本次下载和配置,其实Git就是一个版本控制系统,类似于SVN,CVS等 下载:W ...

  8. 20155327预备作业3:Linux安装及命令入门

    20155327预备作业3:Linux安装及命令入门 安装Linux操作系统 由于之前安装过所以这里就不再赘述了 掌握Linux命令的学习方法 学习路径: 常用Ubuntu快捷键: CTRL+ALT+ ...

  9. Linux Supervisor的安装与使用入门---SuSE

    Linux Supervisor的安装与使用入门 在linux或者unix操作系统中,守护进程(Daemon)是一种运行在后台的特殊进程,它独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事 ...

  10. Linux Supervisor的安装与使用入门---Ubuntun

    Linux Supervisor的安装与使用入门 在linux或者unix操作系统中,守护进程(Daemon)是一种运行在后台的特殊进程,它独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事 ...

随机推荐

  1. 三维模型OSGB格式轻量化的数据压缩与性能平衡分析

    三维模型OSGB格式轻量化的数据压缩与性能平衡分析 在三维模型应用中,OSGB格式轻量化处理是一种常见的技术手段,它可以通过数据压缩.简化.滤波等操作,降低三维模型数据的存储空间和传输带宽需求,提高应 ...

  2. 《SQLi-Labs》02. Less 6~10

    @ 目录 索引 Less-6 题解 原理 Less-7 题解 Less-8 题解 Less-9 题解 原理 Less-10 题解 sqli.开启新坑. 索引 Less-6:布尔盲注,字符型[" ...

  3. 多重断言插件之pytest-assume的简单使用

    背景: pytest-assume是Pytest框架的一个扩展,它允许在单个测试用例中多次断言.通常情况下,当一个断言失败时,测试会立即停止执行,而pytest-assume允许我 们继续执行剩余的断 ...

  4. C# 合并Word文档

    需要安装NuGet程序包 Spire.Doc DocX 注:DocX包去除警告提示用 Spire.Doc.Document document = new Spire.Doc.Document();// ...

  5. 利用别名简化进入docker容器数据库的操作

    之前研究docker和数据库的交互,越发对docker这个东西喜爱了.因为平常偶尔会用到各类数据库测试环境验证一些想法,需要进一步简化进入到这些环境的步骤. 比如我现在有三套docker容器数据库测试 ...

  6. nodejs实现的一个简单粗暴的洗牌算法

    据说名字长别人不一定看得到 之前用python,自带shuffle用的还是超爽的: 去年6月份自己动手用nodejs写一个21点扑克游戏的后台时,就需要一个洗牌算法,于是简单粗暴的实现了一个. 贴出来 ...

  7. 「Semigroup と Monoid と Functional と」

    一个被国内 oi 环境弱化至几乎不存在的概念,不过我觉得还是有学一学的必要.因为我没学过代数结构所以大部分内容都在开黄腔,欲喷从轻. Semigroup 的定义是,\(\forall a,b\in\m ...

  8. Solution -「洛谷 P5355」「YunoOI 2017」由乃的玉米田

    Description Link. 见 Link. Solution 前三个操作就是小清新人渣的本愿. 这里简单讲解一下. 记录两个 bitset cla 和 inv. 我们考虑莫队. cla[x]= ...

  9. apollo多环境部署

    一.环境准备 jdk : 1.8+         mysql  5.6.5+ 二.安装包下载 https://github.com/ctripcorp/apollo/releases 下载如下三个压 ...

  10. 使用CEF(六)— 解读CEF的cmake工程配置

    距离笔者的<使用CEF>系列的第一篇文章居然已经过去两年了,在这么长一段时间里,笔者也写了很多其它的文章,再回看<使用CEF(一)- 起步>编写的内容,文笔稚嫩,内容单薄是显而 ...