Windows端口异常占用

Windows端口异常占用

Windows11基于 WSL2启动 docker 后报错如下(需要注意有时候使用启动命令会报错,但是 restart 命令 docker 可以运行,对应服务无法访问)

Bind: An attempt was made to access a socket in a way forbidden by its access permissions.

观察错误发现占用的信息为2345,从 windows 和 wsl 中分别查看端口是否被占用:

1
netstat -aon|findstr "2345"
1
netstat -tunlp | grep 2345

均显示没有被占用,这可能是由于协议 tcp 使用的动态端口问题导致,可以使用管理员权限在 powershell 或者 cmd 中执行下列命令查看端口是否在动态范围中:

动态范围可能是由于 hyper-v 的原因修改过起始端口,所以可能会发现关闭 hyper-v 后没有占用的情况的现

1
netsh int ipv4 show dynamicport tcp

如在,修改动态范围,之后使用的时候避开这些端口即可。

1
netsh int ipv4 set dynamicport tcp start=49152 num=16384

重启电脑即可生效。


Docker Configuration01 Install on Linux

Docker Configuration01 Install on Linux

不同于 Docker 在 Windows 端借助 Desktop 可视化进行安装和配置,Linux 端没有默认的 Desktop 界面,因此会额外安装 portainer 作为我们 docker 的 Dashboard.

Install Docker on Ubuntu

该部分完全转载自官方的安装指引,如果流程需要更新的时候可以移步官网检查,此外官网还包含了其他几种安装方式,这里就不介绍,这里只介绍基于 apt 的安装方式。

设置 apt 的 repo

1 更新 apt 的索引,同时通过下载包来允许 Apt 基于 http 来索引仓库

1
2
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg

2 安装 docker 官方的 GPG 秘钥

1
2
3
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

3 配置对应的 repository

1
2
3
4
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

完成上述设置之后,就可以开始安装 Docker 了。


Docker-App 1 Backup Photos by Immich

Docker-App 1 Backup Photos by Immich

手机到电脑端的图像备份和预览往往是一个大问题,特别是当多个手机要备份的时候,说难不难,但说简单也确实有很多麻烦的地方,因此我推荐 Immich 的解决方案。

Immich 是一个基于个人开发者开发的开源 Github 项目,immich-app/immich,该解决方案有以下的一些优势:

  • 移动端支持:移动端实现便于手机的随时和自动同步;
  • 多用户支持:多用户的权限管理、分割、以及用户间的相册共享;
  • Live 格式支持:支持各种原生格式存储,

Self-hosted photo and video backup solution directly from your mobile phone.

因此我本人推荐按照以下的方式来使用:针对家庭等环境,多用户部署在 NAS 或者某台 PC 上,可以长期或者定期的启动备份服务,然后就可以将手机中的照片空间释放掉。由此可以实现:

  1. 通过共享文件夹共建家庭相册;
  2. 权限分割个人相册;
  3. 定期/自动备份手机中的照片,并清理对应的存储空间;

Windows App01 Potplayer & Alist

Windows App01 Potplayer & Alist

本篇主要介绍一下播放器 PotPlayer 的设置以及结合 Alist&小雅 alist 的使用,这样就可以直接在播放器访问本地网盘上的内容,便于使用和观看。

Alist Deploy

Alist 作为一个网盘管理中心,可以将各大网盘中的资源进行统一管理,同时支持视频的 webdav 播放,这里推荐的安装方式是使用 Docker-Compose 进行安装,根据自己的情况来选择对应的挂载和安装目录。

由于官方的文档已经事无巨细,这里就不在赘述如何安装和配置 alist 的各个网盘挂载,详情参见:Home | AList Docs (nn.ci)

安装完并启动 Alist 服务即可,记住自己的端口和设置的账号密码

Aria2离线下载支持

该部分介绍如何通过 docker 为 Alist 添加 Aria2 作为离线下载服务,以及一些常见的问题解决方法。

参考资料:aria2-pro | aira2-pro-github | aria2认证失败

这里介绍使用 docker-compose 安装 aria2的方法,并将 docker 版本的 aria2和 alist 结合起来使用,在基于 docker 安装之前,我们先准备几个文件夹:

1
2
cd <your-path-2-aria2> && mkdir aria2-config && chmod 777 aria2-config
mkdir aria2-downloads && chmod 777 aria2-downloads

其中 downloads 目录是我们用来下载文件的目录,我们也可以使用挂载的目录或者共享的目录来存储下载的文件;然后我们准备一下 alist 中用于离线下载的目录,该目录需要在 alist 的 docker 和 aria2的 docker 中都将该 volume 挂载到同一个地方

本文将 aria2的队名目录挂载到 alist 的对应目录中,对应的 alist 的 compose 文件有

image.png

而 aria2的 compose 文件则有:

image.png

再将该目录的权限改成777,chmod 777 <this-dir> 之后即可再 alist 中离线下载成功,而且该下载文件会在指定的网盘中上传,当上传完成时会删除临时文件,不占用本地磁盘空间。

完整的 Compose 文件可以参考 Aria2-Pro-Docker/docker-compose.yml at master · P3TERX/Aria2-Pro-Docker · GitHub 官方的配置进行安装,我个人的 compose 文件则会上传到AikenH/aikenh-DockerComposeYML (github.com)中。

Aria2Ng 界面认证失败的问题,是因为我们再 compose 中设置了密码之后,要在该界面的设置中设置密码后才能正常认证。

image.png

密码需要到如下地方设置:

image.png

设置完成后应该就不会有认证失败的提示了。

alist 设置 Aria2失败,由于使用的 docker 部署的 aria2,这里不能使用 localhost,要使用对应的 ip 来设置该服务,如下图所示

image.png

完成这些设置后应该就可以正常使用了,但是由于现在都是网盘场景更多,所以离线下载的可能使用场景也有限,而且通过测试发现,如果完全装在树莓派上的话,可能会对系统的性能造成一定的负担。

Xiaoya Deploy

Xiaoya 是基于 Alist 做改版的个人资源站,里面涵盖了大量的影视资源,并在不断的更新,通过在本地挂载 xiaoya 我们也可以用来通过 webdav 在播放器中直接选择视频进行播放,大多数情况下都免去了找资源的痛苦。

官方网站:主页 | 小雅的分类 Alist (xiaoya.pro)

拥有了 Docker 环境后,就可以基于 xiaoya 提供的脚本实现一键拉取镜像和启动 Docker,默认的端口是 5678,安装指令如下:

1
sudo bash -c "$(curl -s http://docker.xiaoya.pro/update_new.sh)"

安装过程中会需要填入如下内容:token、open_token、转存目录的 folder id,具体和后续更新参考配置页,(跟随安装引导界面进行安装即可。)


Docker Configuration00 Install on WSL2

Docker Configuration00 Install on WSL2

基于 WSL2 对于 Docker 的适配,本文介绍 Windows 下利用 WSL2 对 Docker 的安装和部署,对于 WSL2 的安装可以参考上篇文章: Windows Configuration01 WSL2 - AikenH Blogs

Install Docker on Windows

该部分主要介绍以下几内容:安装,存储盘迁移,连接 WSL2 发行版,完成了这几步之后就可以畅游 Docker 世界了。

前置:先安装好一个 WSL2 的发行版

首先,官网 Docker: 下载 Docker Desktop for windows,安装基于 WSL2 的 docker,安装完成后 Docker 的发行版和存储目录会默认存放在,该地址可以用来确认后续的迁移状态。

  • Docker-Desktop/data:%LOCALAPPDATA%/Docker/wsl
  • WSL2:%LOCALAPPDATA%/packages/c......./local_state