前言
最近入了一台16gb+512gb的N100,想着用来存些资源,当个nas,偶尔要用用windows系统,所以想直接在这上面搞个虚拟机算了,WSL2似乎是一个不错的选择,下面介绍捣鼓的教程。
没用公网情况下 使用tailscale
之前向电信申请了一个公网ip,后来公网ip被收回了,打电话要了几次还是没有公网ip,只能以tailscale代替,如果有公网ip,则可以跳过这一步。
进入上述链接下载,然后注册账户登录即可
安装JellyFin
[231129\]Jellyfin中国特供版+Docker镜像,含驱动,免折腾开箱即用 - 电脑讨论(新) - Chiphell - 分享与交流用户体验](https://www.chiphell.com/thread-2375777-1-1.html) JellyFin使用这个版本进行安装 # 安装WSL2 需要在BIOS开启虚拟化选项,可以在任务管理器看到有没有开启:  开启下述三个功能:   打开Power Shell 以管理员命令输入下方代码: ```text bcdedit /set hypervisorlaunchtype auto ``` 使用下述命令安装WSL wsl --install -d Ubuntu 完成完成后可以使用以下命令 升级内核的命令 ```text wsl --update ``` 重启命令 内核升级完成以后,电脑重启才会生效,这个可以用命令重启 ```text wsl -l -shutdown ``` 查看当前系统版本 ```text 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`的配置文件,写入如下信息: ```shell [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`) ```json { "iptables": false } ``` 然后重启Docker sudo service docker restart # 在WSL2开启ssh和root账户 WSL2下的Ubuntu默认是支持SSH的,需要开启的,手动编辑下SSH服务的配置文件。 切换到`root`用户之后,用`vi`命令打开SSH的配置文件。 ```bash vi /etc/ssh/sshd_config ``` 进入之后,修改以下配置 Port = 22 去掉这行的#,代表启用端口号22 ListenAddress 0.0.0.0 去掉这行的#,代表监听所有地址 PasswordAuthentication yes 将这行的no改成yes 将下面这行改为yes ```bash PermitRootLogin prohibit-password ``` 修改为: ```bash PermitRootLogin yes ``` `esc`-\> `wq`,,重启一次SSH服务 ```undefined 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)](https://www.cnblogs.com/scottyzh/p/17901596.html)