清朝云资源网

作者: 清朝云

  • Windows 家庭版使用安装 wsl 和 docker


    共计 1155 个字符,预计需要花费 3 分钟才能阅读完成。

    零、前言

    windows 使用 docker 有两种方式,一种是安装 wsl,另外一种是开启 Hyper-V。

    如果使用的是 windows 的家庭版版本,默认是没有安装 Hyper-V 的,要么安装一个,要么就只能使用 wsl 了。

    这里是清朝云在 windows 上安装 Docker 的记录。

    一、安装 WSL

    1. 开启相关功能

    进入控制面板 -> 程序 -> 启用或关闭Windows功能,将虚拟机相关的都勾选上。如适用于 Linux 的 Windows 子系统,Windows 虚拟机监控程序平台,虚拟机平台。

    2. 设置默认为wsl2

    参考于:旧版 WSL 的手动安装步骤

    2.1 启用Windows子系统

    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

    2.2 检查运行WSL2的要求

    一般来说,现在的系统基本都满足。

    对于 x64 系统:版本 1903 或更高版本,内部版本 18362 或更高版本。
    对于 ARM64 系统:版本 2004 或更高版本,内部版本 19041 或更高版本

    2.3 启用虚拟机功能

    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

    2.4 下载安装Linux内核更新程序包

    地址:适用于 x2 计算机的 WSL64 Linux 内核更新包

    管理员运行下载的更新包。

    2.5 将WSL2设置为默认版本

    wsl --set-default-version 2
    # 查看默认版本
    wsl -l -v

    2.6 开启子系统

    为了解决可能出现的报错,这一步骤和上面命令一样再次开启子系统,不然很有可能还是出现报错。

    Installing, this may take a few minutes…
    Installation Failed!
    Error: 0x8007019e
    Press any key to continue…

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

    这里会提示重启,一定要重启!!!

    3. 安装wsl

    一种选择是进入微软商店搜索 wsl,选择合适的版本安装。

    另一种方式是使用命令行安装,命令如下:

    Invoke-WebRequest -Uri https://aka.ms/wsl-ubuntu-2004 -OutFile ./Ubuntu.appx -UseBasicParsing

    安装时设置用户名和密码,如果没有看见进入 wsl 的快捷键,直接使用 cmd,输入 wsl 进入即可。

    二、安装 Docker

    进入 Docker 官网,下载 windows 版本,然后以管理员进行安装。

    安装好 docker 后可以进行配置。

    Windows 家庭版使用安装 wsl 和 docker

    />

    Windows 家庭版使用安装 wsl 和 docker

    提醒:本文发布于490天前,文中所关联的信息可能已发生改变,请知悉!

    />

    Tips:清朝云网络工作室

  • Docker 搭建私有镜像仓库 registry


    共计 1870 个字符,预计需要花费 5 分钟才能阅读完成。

    1. 简介

    内网环境下,很多机器可能都无法联网,如果不进行配置代理,那么这个时候就需要搭建一个私有仓库。

    Docker Registry 是一个用于存储和分发 Docker 镜像的开源服务器应用程序,下面讲一下如何搭建。

    2. 搭建

    使用如下命令搭建一个 Docker Registry:

    mkdir -p /home/docker/registry/config && \
    touch /home/docker/registry/config/config.yml && \
    cat > /home/docker/registry/config/config.yml <<EOF
    version: 0.1
    log:
      level: info
      formatter: text
      fields:
        service: registry
    storage:
      filesystem:
        rootdirectory: /var/lib/registry
      delete:
        enabled: true
    http:
      addr: 0.0.0.0:5000
    EOF
    docker run -d \
    --name registry \
    -p 5000:5000 \
    -v /home/docker/registry/data:/var/lib/registry \
    -v /home/docker/registry/config/config.yml:/etc/docker/registry/config.yml \
    --restart=always \
    registry:2

    3. 配置

    需要修改 docker 配置文件,告诉 docker 这个地址不需要 https,也就是配置不安全的仓库地址。

    查看是否有 /etc/docker/daemon.json 这个文件,如果没有这个文件需要先创建文件,然后添加如下内容:

    {
        "insecure-registries": ["172.21.9.125:5000"]
    }

    注意,其中的 ip 修改为自己的地址。

    如果已经存在文件,那么只需要在最后一行添加英文逗号后,然后再添加 insecure-registries 这行即可。

    重新加载配置文件并重启。

    systemctl daemon-reload && systemctl restart docker

    4. 镜像上传下载

    4.1 上传

    给镜像打 tag,这样才能够进行上传,否则需要设置默认地址,清朝云没有尝试过,应该是可以的。

    docker tag registry 172.21.9.125:5000/registry

    然后就可以直接 push。

    docker push 172.21.9.125:5000/registry

    5. 相关API

    5.1 查看API是否可用

    curl -I -X GET localhost:5000/v2

    返回 200 代表可用。

    5.2 查看所有镜像

    curl -X GET localhost:5000/v2/_catalog

    5.3 查看某个镜像所有tag

    curl -X GET localhost:5000/v2/<image_name>/tags/list
    # image_name为镜像名,如:
    curl -X GET localhost:5000/v2/registry/tags/list

    5.4 删除镜像

    前提是配置文件需要配置为可删除:

    storage:
      delete:
        enabled: true

    需要先获取镜像的唯一标识。

    curl -s -I -H "Accept: application/vnd.docker.distribution.manifest.v2+json" \
                localhost:5000/v2/<image_name>/manifests/<tag> | \
                awk '/Docker-Content-Digest/ { print $2 }' | tr -d '\r'

    然后即可删除镜像,digest 即为唯一标识。

    curl -X DELETE localhost:5000/v2/<image_name>/manifests/<digest>

    示例:

    curl -s -I -H "Accept: application/vnd.docker.distribution.manifest.v2+json" \
                localhost:5000/v2/registry/manifests/latest | \
                awk '/Docker-Content-Digest/ { print $2 }' | tr -d '\r'
    curl -X DELETE localhost:5000/v2/registry/manifests/sha256:f4d532d482a050a3bb02886be6d6deda9c22cf8df44b1465f04c8648ee573a70

    提醒:本文发布于489天前,文中所关联的信息可能已发生改变,请知悉!

    Tips:清朝云网络工作室

  • 10月10日,星期四, 每天60秒读懂全世界!

    百度热搜新闻

    新闻来源:百度热搜榜

    1. 亚锦赛国乒女团不敌日本获得亚军

    2. 戴LV丝巾受访的女局长被查

    3. 享丰收喜悦 品节气之美 在刚刚过去的第七个中国农民丰收节,各地组织一系列富有特色的农耕文化、民俗文化活动,生动展现农业农村现代化美好图景,充满了丰收中国的浓浓韵味。

    4. 牛市要结束了?业内分析 9日,A股三大指数经历近日最大幅度的回调。沪指大幅回调超6%,牛市要结束了?业内分析:获利回吐的压力导致了市场的大幅调整。

    5. 理记称江歌妈妈失独是惊天骗局 近日,理记称江歌妈妈失独是惊天骗局,并称其有儿子还与濒死五保户结婚。江秋莲直播中回怼网友:我就看你们能把我怎么地?

    6. 杨振宁携48岁翁帆度过102岁生日 近日,杨振宁度过了自己的102岁生日。现场杨振宁拄着拐杖,在旁人的搀扶下缓缓走出了酒店大门,其48岁的妻子翁帆也在侧。

    7. 朝鲜永久切断朝韩道路连接 韩国回应 近日,朝鲜宣布切断一切朝韩间公路及铁路连接。9日下午,韩军方回应:此次朝方宣称的切断与封锁等措施只会招致更加严酷的孤立。

    8. 美籍专家:中国144小时免签成效显著

    9. 出现下跌 A股后市如何? 10月9日早盘,A股市场核心指数出现普跌。多数行业和主题也出现大幅回调。情绪喧嚣过后终会回归冷静,A股后市如何?

    10. 崔永熙:没有顶级天赋也要向顶尖磨练

    —- 百度热搜新闻 End —-

    知乎新闻

    新闻来源:知乎日榜

    标题: 闵氏几何是什么?它是如何统一时空并极大简化狭义相对论的?
    链接: https://daily.zhihu.com/story/9776043
    ———————-
    标题: 内存是怎么映射到物理地址空间的?内存是连续分布的吗?
    链接: https://daily.zhihu.com/story/9776063
    ———————-
    标题: 有没有哪两个汉字相似到难以区分?
    链接: https://daily.zhihu.com/story/9776089
    ———————-
    标题: 人类广泛使用铁基金属材料,是因为铁本身具有优良丰富的性质,还是因为铁的数量最多最方便获得?
    链接: https://daily.zhihu.com/story/9776120
    ———————-

    —- 知乎新闻 End —-

    IT之家新闻

    新闻来源:ITHome之家科技新闻

    标题: 联发科天玑 9400 旗舰手机处理器发布:第二代 8 核全大核,多核功耗降低 40%
    发布时间: 2024-10-09T11:10:01.357
    新闻简介: 联发科今日正式发布天玑 9400 旗舰手机处理器,定位“旗舰 5G 智能体 AI 芯片”。联发科天玑 9400 搭载第二代全大核 8 核 CPU,采用 ARM v9 最新一代 IP Blackhawk 黑鹰的架构设计,使用台积电的新一代 3nm 工艺。
    ———————-
    标题: 理想汽车回应车主雪山打不开车门砸窗自救:已沟通致歉
    发布时间: 2024-10-09T16:43:05.01
    新闻简介: 理想汽车有关负责人回应称,由于后台暂无法解锁车辆,事发时客服人员已就解锁方式、拖车方案等与用户多次沟通,对于用户反馈的车窗问题会及时反馈给门店,目前正持续与用户保持沟通。(南方都市报)
    ———————-
    标题: 雷军称“金光闪闪的 5 个字”被误解,原文提到小米首先是 sb
    发布时间: 2024-10-09T16:23:01.123
    新闻简介: 小米公关部总经理王化今日发文澄清,“金光闪闪五个字”的场面,好多人记错了或者根本不知道,以至于被目前网络中断章取义的五个字给误导了。雷军本人也发文称“被很多人误解。”
    ———————-
    标题: 《黑神话:悟空》开发总成本 3 亿元以上,游戏科学 2023 年享受研发费用加计扣除 2800 余万元
    发布时间: 2024-10-09T16:55:35.583
    新闻简介: 今年前 8 个月,杭州市为数字贸易等企业办理研发费用加计扣除 491.9 亿元。#黑神话开发成本超3亿# #黑神话悟空#。#黑神话开发成本#
    ———————-
    标题: vivo X200 系列手机官宣首发天玑 9400 旗舰处理器
    发布时间: 2024-10-09T11:24:53.983
    新闻简介: vivo X200 系列手机已三证齐全,支持 90W 快充,携带最新的“蓝科技”—— 蓝图定制传感器和影像芯片、蓝海续航系统、蓝晶芯片技术栈、蓝心大模型。
    ———————-
    标题: 博主“溪溪大人”发布声明向小米道歉,并赔偿十五万元
    发布时间: 2024-10-09T20:11:05.353
    新闻简介: 7 月,小米法务部称就小米与微博用户“溪溪大人”不正当竞争纠纷一案,法院作出终审判决,要求被告在微博置顶道歉 24 小时,同时在判决生效七日内赔偿小米经济损失等共计 15 万元。
    ———————-
    标题: 打工人慎用:苹果 iPhone 镜像功能被曝隐私和法律风险
    发布时间: 2024-10-09T06:48:21.35
    新闻简介: 网络安全公司 Sevco 昨日(10 月 8 日)发布博文,表示如果苹果用户在 Mac 设备上使用 iPhone 镜像功能,存在隐私和法律方面的风险。
    ———————-
    标题: 王化回应“网友恶搞 AI 雷军配音骂人”:已转给小米法务部
    发布时间: 2024-10-09T15:10:03.653
    新闻简介: 有网友呼吁“把雷军AI语音骂人的事情先解决一下吧”并@小米法务部 ,@王化 对此回应称,已经转给他们。
    ———————-
    标题: 华为 Mate 60 等 4 款设备再过开源鸿蒙兼容性测评,操作系统版本号 OpenHarmony 5.0.0 Release
    发布时间: 2024-10-09T17:01:20.673
    新闻简介: IT之家注意到,华为 Mate 60、Mate 60 Pro、Mate X5 和 MatePad Pro 13.2 英寸 2023 款于昨日通过开源鸿蒙兼容性测评,评测结果显示上述机型的操作系统版本号为 OpenHarmony 5.0.0 Release。
    ———————-
    标题: 荣耀 X60 系列手机配色公布:圆环相机模组、官方表示“好设计,无需多言”
    发布时间: 2024-10-09T16:53:24.477
    新闻简介: 荣耀 X60 手机有典雅黑、月影白、海湖青三种配色,荣耀 X60 Pro 手机四种配色分别为天海青、玄武灰、燃橙色、典雅黑。
    ———————-
    标题: 长城魏建军谈汽车行业:小米 SUV 市场表现可能优于轿车、奇瑞“真的盈利”
    发布时间: 2024-10-09T11:41:37.647
    新闻简介: 魏建军直言,当前汽车行业的恶意竞争对行业的杀伤力基本上是毁灭性的。这10年内,已经倒下了24个国内汽车品牌,“公司没有了,你想想对消费者有多么大的伤害?”
    ———————-
    标题: 6.98-9.88 万元,吉利星愿纯电小车正式发布
    发布时间: 2024-10-09T20:16:11.903
    新闻简介: 顶配车型可选 L2 级智能驾驶系统,具备自适应巡航、信号灯识别与起步提醒等功能。
    ———————-

    —- IT之家新闻 End —-

  • Ubuntu 远程桌面连接方式


    共计 1854 个字符,预计需要花费 5 分钟才能阅读完成。

    如果需要通过远程连接到 ubuntu 桌面,有很多种方式,但归根到底其实就两种 VNC 和 RDP。

    一、VNC 方式连接

    首先 VNC 方式连接 ubuntu,ubuntu 桌面版系统自带了一个 vnc 服务端,叫 vino,设置开关中的共享屏幕其实就是这个 vnc 服务端,如果你是最小安装版,那就没有共享屏幕这个选项,你需要手动安装,安装方式

    sudo apt install vino

    如果 server 端,默认是没有 ubuntu 图形化界面的,需要安装好才能使用远程桌面。

    ubuntu 的图形化界面主要有几种: unity、gnome、xfce、kde。其中 unity 在 ubuntu 早期版本中常用,新版本 ubuntu 默认桌面是 gnome,而如果安装的是 ubuntu server 系统,需要在图形化操作,一般安装 xfce,它非常轻量,kde 在 ubuntu 中不常用。

    所以如果要远程连接 ubuntu 桌面,前提你得有一个桌面,在 gnome 桌面环境下,默认有一个 vnc 服务端叫 vino,这个 vnc 服务端很坑爹,必须要 ubuntu 物理机登录上一个账户并且把安全认证关闭才能通过 vnc 客户端连接,比如 vnc-viewer。参考文章 Ubuntu 配置远程 vnc 访问

    关闭安全认证方式有两种,一种直接通过命令:

    sudo gsettings set org.gnome.Vino require-encryption false

    另一种方式通过安装工具,使用工具来关闭,这个工具就是 dconf-editor

    sudo apt-get install dconf-editor 

    选择: org->gnome->desktop->remote access->require encrytion 关闭

    系统自带的 vino 很鸡肋,所以如果你想用 vnc,就安装一个第三方的,vnc4server,使用这个需要关闭系统默认的共享桌面,你可以在图像化菜单中关闭屏幕共享,或者直接卸载 sudo apt remove vino ,为什么要关闭,因为打开的话就占用了 5900 端口,只要是 vnc 服务,默认端口都是 5900,如果不关闭,会造成其他 vnc 服务端开启失败。

    然后安装 vnc4Server

    sudo apt install vnc4server 

    具体配置查阅网上教程。

    二、RDP 方式连接

    rdp 是 windows 系统专用的远程连接方式,但是 ubuntu 等 linux 系统下可以通过移花接木的方式,也就是 xrdp,xrdp 本身不具备桌面服务功能,需要和图形化桌面配合,这个提供桌面能力的其实就是 xorg,xorg 在 ubuntu 中默认存在,所以通过 xrdp 连接远程桌面默认会选择 xorg,xorg 为 xrdp 提供桌面服务,xrdp 本身提供远程连接能力。如果你安装了 GNOME, 那 xorg 就将 GNOME 桌面远程提供给你,如果你安装了 xfce,xorg 就将 xfce 桌面提供给你。

    可以说 xorg 是远程桌面服务的中间件,但是 xorg 和 gnome 配合不是很好,往往会有问题,但是网上也有解决方案,最佳的配合还是 xfce+xorg+xrdp,由于 xorg 是 ubuntu 默认存在的图形化能力,所以只要在 ubuntu 中安装上 xrdp,如果你的桌面系统是 xfce 就能直接使用远程桌面。

    如果没有 xfce 桌面,需要安装

    sudo apt update
    
    sudo apt install xubuntu-desktop

    然后安装 xrdp。

    sudo apt install xrdp
    #Xrdp 使用/etc/ssl/private/ssl-cert-snakeoil.key,它仅仅对 ssl-cert 用户组成员可读。运行下面的命令,将 xrdp 用户添加到这个用户组:
    sudo adduser xrdp ssl-cert  
    #重启就能使用
    sudo systemctl restart xrdp

    windows 可以通过远程桌面客户端连接了,xrdp 的端口和 rdp 一样都是 3389,所以可以直接使用 windows 自带的远程桌面连接工具,连接口弹出窗口,默认选中了 xorg,输入 ubuntu 用户名密码就可以登录,这个和 ubuntu 下面的屏幕共享没有半毛钱关系,当然,xrdp 不仅可以选择 xorg,还能选择 vnc-any,也就是选择了这个,你可以连接 vnc 服务端,也就是 xrdp 不仅可以和 xorg 配合,也能和 vnc4server、vino、tightvncserver 等 vnc 服务端配置使用。

    另外,还可以参考文章 xrdp + xfce4 搭建 Linux 远程桌面

    本文转载自:https://www.lategege.com/?p=691

    提醒:本文发布于355天前,文中所关联的信息可能已发生改变,请知悉!

    Tips:清朝云网络工作室

  • Css 中 flex 弹性布局详解


    共计 2344 个字符,预计需要花费 6 分钟才能阅读完成。

    1. 概念

    flex 是 CSS 的一种布局模式,它通过定义父容器 (flex container)子元素 (flex items) 之间的关系来创建灵活的布局。

    1.1 容器-Flex Container

    • 设置了 display: flexdisplay: inline-flex 称为容器。
    • 它的所有直接子元素都会成为 flex items (弹性项目)。

    1.2 弹性项目-Flex Items

    • 所有弹性容器内的子元素。
    • 这些子元素可以通过各种 flex 相关的 css 属性来控制对齐、排序和空间分配。

    此案例外层 div 为容器,内层全为弹性项目。

    <div class="box">
      <div>One</div>
      <div>Two</div>
      <div>Three</div>
    </div>
    
    <style>
    .box {
        display: flex;
    }
    </style>

    1.3 主轴与交叉轴

    • 主轴:弹性项目的主要排列方向,默认是水平的(从左到右)。
    • 交叉轴:与主轴垂直的方向,默认是垂直方向(从上到下)。

    可以通过 flex-direction 改变主轴方向。

    2. 容器属性

    2.1 display

    display 属性定义弹性容器。

    • flex:块级弹性容器,元素占据整个宽度。
    • inline-flex:行内弹性容器,容器只占据内容的宽度。

    2.2 flex-direction

    弹性项目在弹性容器中的排列方向(主轴方向)。

    • flex-direction:从左到右
    • row-reverse: 从右到左。
    • column: 从上到下。
    • column-reverse: 从下到上。

    2.3 flex-wrap

    弹性项目是否换行。

    • nowrap: 不换行,所有项目都在同一行(默认)。
    • wrap: 换行,项目会在行满后另起一行。
    • wrap-reverse: 换行,但顺序与 wrap 相反。

    2.4 justify-content

    弹性项目在主轴上的对齐方式。

    • flex-start: 从主轴起始处对齐(默认)。
    • flex-end: 从主轴末端对齐。
    • center: 居中对齐。
    • space-between: 两端对齐,项目之间的间距相等。
    • space-around: 每个项目两侧的间距相等,项目之间的间距是两边间距的两倍。
    • space-evenly: 项目之间的间距和两端的间距都相等。

    2.5 align-items

    弹性项目在交叉轴上的对齐方式(针对单行)。

    • stretch: 项目拉伸以填满容器(默认)。
    • flex-start: 项目在交叉轴的起始处对齐。
    • flex-end: 项目在交叉轴的末端对齐。
    • center: 项目在交叉轴上居中。
    • baseline: 项目基线对齐。

    2.6 align-content

    定义多行内容在交叉轴上的对齐方式(针对多行)。

    • stretch: 行会拉伸以填满容器(默认)。
    • flex-start: 行在交叉轴的起始处对齐。
    • flex-end: 行在交叉轴的末端对齐。
    • center: 行在交叉轴上居中。
    • space-between: 行之间的间距相等。
    • space-around: 每行两侧的间距相等,行之间的间距是两侧的两倍。

    3. 弹性项目属性

    3.1 order

    • 控制项目的显示顺序,默认值为 0
    • 数字越小,项目越靠前,负数同样有效。

    3.2 flex-grow

    项目在容器中剩余空间的分配比例,默认值为 0。(即默认不占满容器)

    • 比例越大,项目占据的剩余空间越多。
    • 如果所有项目的 flex-grow 值相同,剩余空间将会均匀分配。

    3.3 flex-shrink

    项目在容器空间不足时的收缩比例,默认值为 1。(即空间不足时默认自动收缩容器,原来设置宽度为800,但实际会达不到)

    • 比例越大,项目缩小得越多。
    • 如果设置为 0,项目不会缩小。

    3.4 flex-basis

    项目的初始大小(主轴方向上的),默认值为 auto。

    • 可以用具体的值如 px%auto
    • flex-basis 的值会覆盖 widthheight 的值。

    3.5 flex

    flex-grow, flex-shrinkflex-basis 的简写形式。

    • flex: none 等价于 flex: 0 0 auto。即元素不会放大,也不会缩小,元素的初始尺寸根据其内容、宽度/高度等自动决定。
    • flex: auto 等价于 flex: 1 1 auto。容器空间有剩余时占满,不足时收缩。元素的初始大小由其内容、宽度/高度等因素自动决定(类似于常规布局时的大小),而不是固定为 0。
    • flex: 1 等价于 flex: 1 1 0。即:容器空间有剩余时占满,不足时收缩。布局时先忽略元素内容的大小,然后再按 flex-grow 和 flex-shrink 规则调整。

    3.6 align-self

    允许单个项目对齐方式覆盖容器的 align-items 属性。

    • auto: 使用容器的 align-items 设置(默认)。
    • stretch: 拉伸以填充容器。
    • flex-start: 在交叉轴起始处对齐。
    • flex-end: 在交叉轴末端对齐。
    • center: 在交叉轴居中对齐。
    • baseline: 项目基线对齐。

    测试代码:

    <div class="container">
      <div class="item">Item 1</div>
      <div class="item">Item 2</div>
      <div class="item">Item 3</div>
      <div class="item">Item 4</div>
    </div>
    
    <style>
    .container {
        display: flex;
        flex-direction: row;
        flex-wrap: nowrap;
        justify-content: center;
        align-items: center;
        height: 300px;
        border: 2px solid #333;
    }
    
    .item {
        width: 600px;
        height: 100px;
        background-color: lightcoral;
        margin: 10px;
    }
    </style>

    Tips:清朝云网络工作室

  • 手把手教你如何获取亚马逊免费服务器并搭建图床


    共计 1351 个字符,预计需要花费 4 分钟才能阅读完成。

    前言

    由于最近 telegraph 不再允许上传图片,导致之前在论坛等地方使用的图床失效了,所以想整一台不需要经常重装的机器来搭建图床。

    又想到很久之前听说亚马逊云科技提供免费的云服务器,上官网一看,果然活动还在。并且,除了云服务器,还有永久免费的无服务器计算服务等等,可以访问亚马逊云科技进行查询免费产品进行体验。

    手把手教你如何获取亚马逊免费服务器并搭建图床

    />

    这还说什么,有免费的云服务器不拿来体验一下,想想都觉得可惜。

    获取免费云服务器

    1. 注册账号

    首先,当然是需要注册账号的。访问注册地址,填写邮箱和用户名。

    手把手教你如何获取亚马逊免费服务器并搭建图床

    />

    点击验证电子邮箱会收到验证码,输入进行验证即可。

    手把手教你如何获取亚马逊免费服务器并搭建图床

    />

    然后当然就是要创建密码了,这里需要输入复杂一点的密码,否则不能通过验证。

    手把手教你如何获取亚马逊免费服务器并搭建图床

    />

    接下来需要填写联系人信息,这里按自己情况进行填写即可。需要注意的是 州/省/自治区/直辖市或地区 这里必须使用英文,所以就索性全部用英文了。

    手把手教你如何获取亚马逊免费服务器并搭建图床

    />

    然后需要填写账单信息,还好之前为了方便使用海外的产品申请了一张招商的 visa 信用卡。

    手把手教你如何获取亚马逊免费服务器并搭建图床

    />

    然后就是验证手机号码了,这个也简单,收个验证码就行。

    手把手教你如何获取亚马逊免费服务器并搭建图床

    />

    然后就到了最后一步,选择支持计划,这里选择免费的基本支持就好了。

    手把手教你如何获取亚马逊免费服务器并搭建图床

    />

    2. 创建云服务器

    创建以后访问控制台,右上角可以看见区域,这个区域就是创建云服务器的位置。我这里是悉尼,刚好自己也想玩玩除了美国、香港以外的机器,所以就没有进行修改了,需要的可以自行修改。

    手把手教你如何获取亚马逊免费服务器并搭建图床

    />

    然后可以点击图中最近访问的 EC2,如果你的界面和我不一样也没关系,看见点进去就行。

    手把手教你如何获取亚马逊免费服务器并搭建图床

    />

    可以看见右上角这里亚马逊还很贴心的预测是否有产品在月末免费套餐限额,以及已经超过额度的产品。当然这不是重点,重点是点击箭头指向的启动实例。

    然后进入到如下界面,填写服务器名称以及选择操作系统。服务器名称随意填写,操作系统我选择的是 debian。

    手把手教你如何获取亚马逊免费服务器并搭建图床

    />

    往下需要创建一个密钥对,方便创建好服务器后使用密钥进行登录,这里记得保存好密钥。另外这里安全组选择新建,并且三个地方都勾选。我的理解是勾选以后开放 22、443、80 端口。

    手把手教你如何获取亚马逊免费服务器并搭建图床

    />

    接下来就是配置存储了,这里提示 30g 免费就填 30,当然是越大越好咯,对吧。全部搞定以后,点击启动实例就创建好了。

    手把手教你如何获取亚马逊免费服务器并搭建图床

    />

    等待创建好就可以看见服务器的 ipv4 地址了。

    手把手教你如何获取亚马逊免费服务器并搭建图床

    />

    搭建图床

    1. 安装 docker

    用刚刚创建的 ssh 密钥登录服务器,用户名为 admin。

    手把手教你如何获取亚马逊免费服务器并搭建图床

    />

    然后运行如下命令安装 docker:

    curl -fsSL https://get.docker.com | bash -s docker

    安装后启动并设置自启动。

    sudo systemctl start docker && sudo systemctl enable docker

    2. 安装兰空图床

    使用如下命令即可进行安装:

    sudo docker run -d \
    --name lsky \
    --restart unless-stopped \
    -p 80:8089 \
    -e WEB_PORT=8089 \
    -v /home/docker/lsky/html:/var/www/html \
    halcyonazure/lsky-pro-docker

    不愧是海外服务器,镜像一下就拉好了。

    安装的话具体可以查看教程:Docker 基于开源的兰空图床搭建自己专属的图床

    如果使用 vscode 写文章,那我推荐一款自己写的便捷上传插件:Vscode 兰空图床插件一键上传图片

    如果使用 tg,那么可以创建一个方便上传的机器人:Docker 搭建兰空图床的 tg 机器人

    Tips:清朝云网络工作室

  • 10月09日,星期三, 每天60秒读懂全世界!

    百度热搜新闻

    新闻来源:百度热搜榜

    1. 吴邦国同志逝世 新华社北京10月8日电,吴邦国同志,因病医治无效,于2024年10月8日4时36分在北京逝世,享年84岁。

    2. 吴邦国同志遗像发布 吴邦国同志,因病医治无效,于2024年10月8日4时36分在北京逝世,享年84岁。官方发布吴邦国同志遗像。

    3. “县域游”成文旅消费新宠 今年国庆假期,不少“宝藏小城”登上热搜,“小而美”的县域旅游释放促进地方发展的“大能量”。

    4. 孙颖莎1比3不敌金琴英 8日,2024乒乓球亚锦赛女团1/4决赛,中国女对阵朝鲜女团,首盘比赛孙颖莎1-3不敌金琴英。

    5. 以色列一日内遭三方导弹袭击 10月7日,以色列一日之内遭胡塞武装、黎真主党及哈马斯三方轮番发射导弹。

    6. 30℃又要回来了? 8日,新一股弱冷空气将影响我国北方大部地区。预计未来一周,我国大部地区气温升得多、降得少,建议根据气温变化,适时增减衣物。

    7. 大学生返程初见双层火车被震惊

    8. A股一天创下4大纪录

    9. 专家:A股调整可能要来 十一假期后第一个交易日,A股再度见证历史。前券商首席经济学家李大霄对风口财经表示:值得警惕!A股调整可能要来。

    10. 东帝汶渔民在鲨鱼腹中发现女子遗骸

    —- 百度热搜新闻 End —-

    知乎新闻

    新闻来源:知乎日榜

    标题: 为什么有些金属离子有颜色,有些则没有?
    链接: https://daily.zhihu.com/story/9776029
    ———————-
    标题: 0 的 0 次方等于 1 吗?怎么证明?
    链接: https://daily.zhihu.com/story/9776033
    ———————-
    标题: 中国在地球科学领域让你最引以为豪的成果是什么?
    链接: https://daily.zhihu.com/story/9776037
    ———————-
    标题: 瞎扯 · 如何正确地吐槽
    链接: https://daily.zhihu.com/story/9776044
    ———————-

    —- 知乎新闻 End —-

    IT之家新闻

    新闻来源:ITHome之家科技新闻

    标题: 微信员工:原生鸿蒙是一套新的技术框架,很多问题大家要对着文档边做边学
    发布时间: 2024-10-08T13:28:27.157
    新闻简介: @客村小蒋 表示,原生鸿蒙(HarmonyOS NEXT)完全是一套新的技术框架,编程语言是独特的 ArkTS 语言,这意味着所有的 App 都要完全重写。
    ———————-
    标题: 微信华为鸿蒙原生版开始内测邀请,QQ 等超 20 款腾讯 App 陆续适配中
    发布时间: 2024-10-08T10:35:06.58
    新闻简介: 今日微信鸿蒙原生版正式开始邀请内测,已升级至原生鸿蒙操作系统 HarmonyOS NEXT 的用户,可在收到邀请后抢先体验。这款“尝鲜版”的微信,已包含基础社交通讯、音视频通话、朋友圈、微信支付的二维码收 / 付款等功能。目前,微信、QQ、腾讯会议、企业微信、腾讯视频、腾讯新闻、腾讯体育、QQ 浏览器、搜狗输入法、腾讯自选股、理财通、腾讯广告、QQ 音乐、酷狗音乐、酷我音乐、全民 K 歌、懒人听书、起点读书、QQ 阅读、微信读书、微信输入法等超过 20 款产品在不断适配迭代 HarmonyOS NEXT,在确保产品稳定和用户体验前提下,腾讯将在后续版本中陆续更新完善。
    ———————-
    标题: 华为纯血鸿蒙 HarmonyOS NEXT 公测申请现已开启
    发布时间: 2024-10-08T10:11:01.73
    新闻简介: 华为纯血鸿蒙 HarmonyOS NEXT 今日 10:08 开启公测,首批公测机型包括华为 Mate 60 系列、华为 Mate X5 系列、华为 MatePad Pro 13.2 英寸系列。消费者可通过“我的华为”App -“升级尝鲜”申请升级。
    ———————-
    标题: 三只羊集团东部中心招牌已拆除
    发布时间: 2024-10-08T12:59:35.313
    新闻简介: 据多位合肥网友近日发布的视频显示,三只羊集团东部中心的招牌已拆除。三只羊网络客服表示,相关咨询已经超出客服服务范畴。
    ———————-
    标题: 宋紫薇回应从理想汽车离职:创业一直是我心里一颗种子,希望去探索 AI 智能硬件赛道
    发布时间: 2024-10-08T11:48:33.227
    新闻简介: 在去年 9 月加入理想之前,宋紫薇曾任 iQOO 手机产品经理。公开资料显示,宋紫薇 2019 年从上海华为技术有限公司跳槽到 vivo 公司,担任 iQOO 产品经理一职,并于同年 7 月首次亮相 iQOO Neo 发布会。
    ———————-
    标题: 纯血鸿蒙也能“砍一刀”,拼多多上架华为 HarmonyOS NEXT 应用商店
    发布时间: 2024-10-08T10:40:55.577
    新闻简介: 华为纯血鸿蒙 HarmonyOS NEXT 今日正式开启首批公测,与此同时,电商平台拼多多在华为 HarmonyOS NEXT 应用商店上架。
    ———————-
    标题: 腾讯张军:鸿蒙原生版微信会随机向部分用户推送内测邀请,随后登陆“尝鲜”专区
    发布时间: 2024-10-08T11:18:47.703
    新闻简介: 对于如何获得鸿蒙原生版微信邀请资格,腾讯公司公关总监张军透露,会随机向部分用户推送内测邀请。如果没有推送到请耐心等候,随后会登陆“尝鲜”专区。#鸿蒙NEXT微信来了#
    ———————-
    标题: 2024 金摇杆奖回应《黑神话:悟空》仅获一项提名:“年度最佳游戏”提名还没公布
    发布时间: 2024-10-08T11:24:56.417
    新闻简介: 2024 金摇杆奖近日公布提名名单,热门大作《黑神话:悟空》仅获得“最佳视觉设计”一项提名,引发网友热议。
    ———————-
    标题: 基于华为 HarmonyOS NEXT,WPS 鸿蒙版开启公测
    发布时间: 2024-10-08T10:53:49.6
    新闻简介: 今日,基于 HarmonyOS NEXT 的 WPS 鸿蒙版正式开启公测,官方称,一年时间跨平台移植 4000 万行代码,实现全端流畅运行。
    ———————-
    标题: 华为 Pura 70 等 8 款设备开启 HarmonyOS NEXT 花粉 Beta 版尝鲜招募,目标系统“Beta2”
    发布时间: 2024-10-08T16:39:33.583
    新闻简介: 除公测设备外,华为 Pura 70 系列等 8 款设备今日也开启了 HarmonyOS NEXT 花粉 Beta 版尝鲜招募,版本号为 Beta 2,用户报名审核通过后可升级至“纯血鸿蒙”系统。
    ———————-
    标题: 微博鸿蒙版开启公测,核心功能已在华为 HarmonyOS NEXT 系统落地
    发布时间: 2024-10-08T12:03:59.3
    新闻简介: 华为 HarmonyOS NEXT 今日开启公测,微博鸿蒙版公测同步开启。官方称,经过一年多持续不断地开发迭代,微博鸿蒙版实现了核心功能在鸿蒙系统的全面落地,在这里你可以看到一个和鸿蒙系统全面融合的微博。
    ———————-
    标题: 2024 诺贝尔物理学奖揭晓:机器学习奠基人 John J. Hopfield 和 Geoffrey E. Hinton 获奖
    发布时间: 2024-10-08T17:51:17.373
    新闻简介: 瑞典皇家科学院宣布,决定将 2024 年诺贝尔物理学奖授予 John J. Hopfield 和 Geoffrey E. Hinton,“表彰他们通过人工神经网络实现机器学习的基础性发现和发明”。
    ———————-

    —- IT之家新闻 End —-

  • Ubuntu 安装 terminator 以及美化


    共计 1287 个字符,预计需要花费 4 分钟才能阅读完成。

    Ubuntu 默认终端不太好看,所以找到了 Terminator 开源的终端仿真器,安装非常简单:

    sudo apt install terminator

    但是没有配置过的 terminator 比默认终端还要难看,所以还需要进行配置。

    Ubuntu 安装 terminator 以及美化

    />

    没有配置过的 terminator 不会生成配置文件,所以需要手动创建。

    mkdir -p ~/.config/terminator/ && touch  ~/.config/terminator/config

    然后在 ~/.config/terminator/config 配置文件中配置如下内容:

    [global_config]
      handle_size = -3
      title_transmit_fg_color = "#000000"
      title_transmit_bg_color = "#3e3838"
      inactive_color_offset = 1.0
      suppress_multiple_term_dialog = True
    [keybindings]
    [profiles]
      [[default]]
        background_color = "#282828"
        background_darkness = 0.9
        background_type = transparent
        cursor_shape = ibeam
        cursor_color = "#e8e8e8"
        font = Ubuntu Mono 14
        foreground_color = "#ffffff"
        show_titlebar = False
        scroll_background = False
        scrollback_lines = 3000
        palette = "#292424:#ed333b:#f9f06b:#cdcd00:#33d17a:#cd00cd:#00cdcd:#ffffff:#ff7800:#868e09:#00ff00:#ff7800:#4682b4:#33d17a:#cdcd00:#77767b"
        use_system_font = False
    [layouts]
      [[default]]
        [[[child1]]]
          parent = window0
          profile = default
          type = Terminal
        [[[window0]]]
          parent = ""
          size = 1300, 700
          type = Window
    [plugins]

    效果如下:

    Ubuntu 安装 terminator 以及美化

    />

    此时右键终端打开还不是 terminator,需要进行配置为默认终端。

    gsettings set org.gnome.desktop.default-applications.terminal exec /usr/bin/terminator
    gsettings set org.gnome.desktop.default-applications.terminal exec-arg "-x"

    如果想换回默认的设置,运行如下命令:

    gsettings reset org.gnome.desktop.default-applications.terminal exec
    gsettings reset org.gnome.desktop.default-applications.terminal exec-arg

    提醒:本文发布于354天前,文中所关联的信息可能已发生改变,请知悉!

    Tips:清朝云网络工作室

  • Openwrt 编译官方固件详解


    共计 9865 个字符,预计需要花费 25 分钟才能阅读完成。

    一、OpenWrt 简介

    OpenWrt 是一个开源的嵌入式操作系统,专为无线路由器和其他网络设备而设计。平常我们买的路由器基本都是厂家烧录的固件,功能非常有限。而刷了 openwrt 固件或其他如潘多拉固件,这些固件可以以安装插件的方式,让我们更加方便灵活的使用一些功能,如 DDNS、广告屏蔽等插件。

    OpenWrt 在方便的地方还是在于它的可定制性,因为不同的硬路由设备它的 falsh 和内存都不一样,所以可以根据自己的需要和路由器的硬件参数来编译自己的 openwrt 系统,因为每个人的路由器不一样,也许用别人编译的固件不一定适合。

    接下来就说说如何编译自己的 openwrt 镜像,本次使用的源代码是官方的,地址:https://github.com/openwrt/openwrt

    另外,国内也有大神对 openwrt 系统做了一些定制,整合了更多国内需要的插件,地址:https://github.com/coolsnowwolf/lede

    其实使用官方源码也是可以自己整合主题和需要的插件的,这些内容将会在后面讲到。

    二、纯官方源码编译

    1. 编译前准备

    最好是挂梯子,否则很有可能因为网络问题编译失败

    首先官方推荐使用 ubuntu 或者 debian 来编译 openwrt 镜像,所以需要准备一台虚拟机或物理机安装好系统,本次使用的是 ubuntu 22.04。

    安装好以后更新软件源和安装编译所需的软件,这里用到的是 lede 大神提供的命令。

    sudo apt update -y
    sudo apt full-upgrade -y
    sudo apt install -y ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential \
    bzip2 ccache cmake cpio curl device-tree-compiler fastjar flex gawk gettext gcc-multilib g++-multilib \
    git gperf haveged help2man intltool libc6-dev-i386 libelf-dev libglib2.0-dev libgmp3-dev libltdl-dev \
    libmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libreadline-dev libssl-dev libtool lrzsz \
    mkisofs msmtp nano ninja-build p7zip p7zip-full patch pkgconf python2.7 python3 python3-pyelftools \
    libpython3-dev qemu-utils rsync scons squashfs-tools subversion swig texinfo uglifyjs upx-ucl unzip \
    vim wget xmlto xxd zlib1g-dev python3-setuptools

    2. 编译配置

    接下来就可以下载源代码进行自定义配置了。

    git clone https://github.com/openwrt/openwrt.git

    下载完源码后,还需要进入 openwrt 里面更新 feed。feed 可以认为是 openwrt 的一些组件,这些组件自己维护自己的源码,以免和 openwrt 核心源码耦合太高。feed 源可以在 feeds.conf.default 文件中看见,内容如下:

    # 软件包
    src-git packages https://git.openwrt.org/feed/packages.git
    # openwrt 图形界面
    src-git luci https://git.openwrt.org/project/luci.git
    # 路由相关的软件包
    src-git routing https://git.openwrt.org/feed/routing.github
    # 电话通信相关的软件包
    src-git telephony https://git.openwrt.org/feed/telephony.git
    #src-git video https://github.com/openwrt/video.git
    #src-git targets https://github.com/openwrt/targets.git
    #src-git oldpackages http://git.openwrt.org/packages.git
    #src-link custom /usr/src/openwrt/custom-feed

    了解完这些以后,接下来需要更新和安装 feed。

    cd openwrt
    # 下载软件到 feeds 目录
    ./scripts/feeds update -a
    # 实际上是将 feeds 目录下的文件软链到 package/feeds 目录下的文件
    ./scripts/feeds install -a

    然后接下来就是重中之重了,这里 openwrt 提供一个图形化界面进行相应的配置,配置好以后会生成一个 .config 文件。进入图形化界面,输入以下命令即可:

    make menuconfig

    如果第一次进来,看见这么多选项肯定会有点懵,没关系,下面将给出大概的解释。其实,就算是自己编译固件,如果不是很特殊的需求,只需要注意几点即可。

    首先是确定目标的型号,比如编译 x86 通用的镜像还是说针对自己硬路由型号的固件。

    然后就是 LuCI 中配置主题和需要的插件,当然这里的插件不要贪多,根据自己的需求即可,否则可能冲突导致编译报错。LuCI 配置要选 Collections 其中一项,因为默认是没有勾选的,不勾选将没有图形界面。Modules 里面选择 Translations 包含语言,简体中文是默认没有勾选的,需要勾选上。LuCI compatibility libraries 也需要勾选上,这个是 LuCI 的兼容库,不勾选可能导致页面加载缓慢。插件和主题的话根据自己需要进行选择,注意这里 * 代表编译并包含进固件镜像,M 代表仅仅编译,空则表示不编译。

    下面就是对 make menuconfig 界面的一些解释了,一般来说都需要了解,否则可能不能编译出自己需要的特殊镜像。

    1. Target System:目标系统的体系结构,比如 x86 架构、arm 架构等。

    2. Subtarget:目标系统的子目标,更精细化的选择,比如 x86 架构下有 64 位,还有传统的 32 位选项,另外还有 amd 和 i386。

    3. Target Profile:选择目标配置文件。

    4. Target Images:选择要生成的目标镜像类型。比如 x86 为例,可以生成 ext4、squashfs 等文件系统镜像,还可以直接生成虚拟机所用的磁盘文件,比如 qcow2、vhdk 文件等。这里还可以选择镜像的打包格式,这样可以节省空间,可以选择 cpio.gz 和 tar.gz。

    ramdisk:内存盘。它是一个临时的文件系统,可以加载到内存中使用。

    Root filesystem archives – 根文件系统的归档格式选项

    • cpio.gz:使用 cpio.gz 格式来打包根文件系统。
    • tar.gz:使用 tar.gz 格式来打包根文件系统。

    Root filesystem images – 根文件系统的映像格式选项

    • ext4:ext4 是一种日志化的文件系统,具有较高的性能和可靠性。支持读写操作,并提供了对大文件和大容量存储设备的支持。可以比较方便的调整分区大小,如果有扩展根分区的需求选这个。
    • squashfs:squashfs 是一种只读压缩文件系统。它将文件系统打包成只读的压缩镜像,可以有效地减小文件系统的尺寸,并提供压缩和随机访问的功能,还有利于恢复系统

    Build GRUB images:构建 GRUB 引导加载程序的镜像,仅适用于 Linux x86 或 x86_64 主机。

    Build GRUB EFI images:构建 GRUB EFI 引导加载程序的镜像,仅适用于 Linux x86 或 x86_64 主机。

    Use Console Terminal (in addition to Serial):在串口之外使用控制台终端,启用时需要配置串口设备名称和串口波特率。

    • Serial port device:串口设备名称。
    • Serial port baud rate:串口波特率。
    • Use RTE/cTs on serial console:启用 Use Console Terminal 时,可以启用该项在串口控制台上使用 RTE/cTs。

    Extra kernel boot options:额外的内核启动选项,可以在此项输入字符串。

    Seconds to wait before booting the default entry:在启动默认条目之前等待的时间(秒)。常用于引导加载程序(如 GRUB)的配置中,比如 centos 启动时有很多项可以选择,但是超过该时间就会选择默认条目。

    Title for the menu entry in GRUB:GRUB 菜单条目的标题。

    Build LiveCD image (ISO):构建 LiveCD 镜像(ISO 格式)。

    Build PVE/KVM image files (Qcow2):构建 PVE/KVM 镜像文件(Qcow2 格式)。

    Build VirtualBox image files (VDI):构建 VirtualBox 镜像文件(VDI 格式)。

    Build VMware image files (VMDK):构建 VMware 镜像文件(VMDK 格式)。

    Build Hyper-V image files (VHDX):构建 Hyper-V 镜像文件(VHDX 格式)。

    Gzip images:对镜像进行 gzip 压缩。

    Image Options – 镜像选项

    • Kernel partition size (in MiB):内核分区的大小(以 MiB 为单位)。
    • Root filesystem partition size (in MiB):根文件系统分区的大小(以 MiB 为单位)。一般该根文件系统分区会分得比较大些,剩下的空间将分配给 overlay。
    • Root partition on target device:目标设备上的根分区。该选项通常是空白或未指定的。这意味着>根文件系统镜像不会自动安装到目标设备上的任何特定分区。根文件系统将会被写入设备的整个存储空间(通常是闪存或磁盘),而不是特定的分区。这种方式被称为“全闪存安装”或“整盘安装”。
    • Make /var persistent:使/var 目录持久化。/var 目录通常是一个临时目录,其内容保存在内存中,每次重启内容都会丢失。可以将 /var 目录的存储改为持久化,使其在设备重启后保留数据。这对于存储需
      要在重启间保持的配置文件、日志、临时数据等非易失性数据非常有用。

    编译的镜像不但有内核镜像和根文件系统镜像,还有一个带 combined 后缀的镜像,这个镜像实际上是将根文件系统和内核合并到一个镜像文件中可以更方便地部署和使用。所以其大小为内核分区 + 根文件系统的大小。

    1. Enable experimental features by default:这个选项允许默认启用实验性的功能。如果选择启用,编译生成的 OpenWrt 固件将会默认包含实验性的功能。这些功能可能还不够稳定或经过充分测试,因此仅供开发和测试目的使用。

    2. Global build settings:这个选项打开了全局构建设置,允许对 OpenWrt 的构建进行全局配置。

    3. Advanced configuration options:这个选项提供了高级配置选项,适用于开发人员。

    4. Build the OpenWrt Image Builder: 这个选项允许构建 OpenWrt 的镜像构建工具(Image Builder)。Image Builder 是一个独立的工具,允许你在已编译的基础上自定义和生成 OpenWrt 镜像。这个工具可以在编译好镜像以后,单独编译主题或者是软件包。 另外还支持配置网络设置、创建预配置的固件、构建定制的固件等。

    5. Build the OpenWrt SDK:这个选项允许构建 OpenWrt 的软件开发工具包(SDK)。SDK 提供了开发应用程序和软件包所需的工具和库,以便在 OpenWrt 上进行应用程序开发。

    6. Package the OpenWrt-based Toolchain:这个选项允许打包基于 OpenWrt 的工具链。工具链是一组编译器、库和工具,用于在特定平台上进行软件开发和编译。

    后续的选项是组织 OpenWrt 固件的不同部分和组件,如基本系统、管理、引导加载程序、开发、额外软件包、固件、字体、内核模块、语言、库、LuCI(Web 界面)、邮件、多媒体、网络、声音、实用工具和 Xorg(X Window 系统)等。通过选择这些选项,你可以定制所需的功能和组件,并将其包含在编译生成的 OpenWrt 固件中。

    1. Base system:包括操作系统的核心组件和基本工具。这些组件是构建 OpenWrt 固件所必需的基本部分。比如防火墙、opkg 工具、dnsmasq 等包含在这里。

    2. Administration:提供管理和配置功能的软件包。这包括系统管理、网络管理、用户管理、文件管理等相关工具。比如 htop、Zabbix、netdata 等。

    3. Boot Loaders:用于启动设备的引导加载程序,例如 GRUB、U-Boot 等。这些组件负责引导加载和启动 OpenWrt 固件。

    4. Development:包括开发工具链和库,用于在 OpenWrt 上进行应用程序开发和定制。这使得用户能够为特定需求开发自己的软件和功能。

    5. Extra packages:提供额外功能和应用的软件包。这些包括各种网络工具、媒体应用、安全性软件、Web 服务器等。

    6. Firmware:包括路由器固件和其他设备所需的驱动程序和固件文件。这些组件负责设备的硬件支持和功能。

    7. Fonts:提供不同字体样式和字体库的软件包。这允许设备显示不同的字体和文本效果。

    8. Kernel modules:提供额外的内核模块,以支持特定的硬件功能和驱动程序。这些模块可以根据需要进行选择和包含。

    9. Languages:配置支持的编程语言。

    10. Libraries:提供各种库文件和依赖项。这些库提供了不同应用程序和组件的基础功能和支持。

    11. LuCI:包括 LuCI Web 界面的相关组件和应用。LuCI 是 OpenWrt 的默认 Web 管理界面,用于配置和管理路由器。

    • Collections:这个目录包含了一组逻辑相关的 LuCI 插件。每个集合都有一个名称,并包含一组相关的功能模块。集合的目的是为了组织和管理 LuCI 的功能模块。 比如有支持 docker 的集合,还有使用 nginx 的集合等等。
    • Modules:这个目录包含了 LuCI 的功能模块,也称为插件。每个模块对应 LuCI 界面的一个特定功能或配置项。模块可以是路由器的不同配置部分(如网络设置、无线设置、防火墙等),也可以是其他功能模块(如系统日志、文件管理等)。
    • Applications:这个目录包含了一些额外的应用程序或服务插件,可以通过 LuCI 进行配置和管理。这些应用程序可能包括 DHCP 服务器、DDNS 客户端、VPN 客户端等。
    • Themes:这个目录包含了 LuCI 的界面主题,用于改变 LuCI 界面的外观和样式。
    • Protocols:这个目录包含了 LuCI 支持的不同网络协议的配置和管理插件。例如,可以配置 ipv6 和 ppp 网络协议的插件。
    • Libraries:这个目录包含了 LuCI 使用的各种库文件,这些库文件提供了 LuCI 运行所需的核心功能和支持。
    1. Mail:提供邮件客户端和服务器的软件包。这使得设备能够发送和接收电子邮件。几乎用不到,所以默认不勾选。

    2. Multimedia:包括多媒体应用和库的软件包。这包括音频播放器、视频播放器、图像处理等。包括 ffmpeg 工具,还有解锁网易云灰色歌曲工具。

    3. Network:提供不同网络协议和网络工具的软件包。这包括网络协议栈、路由协议、网络分析工具等。包括常见的 iperf、wol 工具。

    4. Sound:提供音频处理和声音功能的软件包。这包括音频编解码器、音频处理工具等。软路由上几乎用不到,所以默认也几乎没有勾选。

    5. Utilities:包括各种实用工具和辅助软件的软件包。这些工具可以用于系统调试、日志记录、网络测试等。包括常见的 lsof、lscpu 等。

    6. Xorg:提供 X Window 系统的相关组件和应用。这允许设备具有图形用户界面和图形应用的功能。

    3. 编译

    编译前最好先进行下载编译所需的文件,避免编译时因为网络导致编译报错。其中 $(nproc) 代表 cpu 核心数,如果你知道自己电脑的核心数,直接填写数量即可。

    make download -j$(nproc)

    然后就是进行编译,编译的过程是非常漫长的,并且很多人建议首次编译时使用单线程,其实这只是为了方便查看报错。实际上,首次编译也可以使用多线程,如果遇到编译报错再使用单线程查看错误也是可以的,因为再次编译时会从报错的位置开始,而不是从头开始。这里设置 V=s 选项就是启用详细输出模式,让编译过程中的每个步骤都显示详细的日志信息,方便排查错误。

    make V=s -j$(nproc)

    编译好以后,可以在 OpenWrt 源码目录下的 bin/targets/xxx/xxx 文件查看到编译好的文件。

    名称带 kernel 的固件是内核固件,带 rootfs 的固件是根文件系统,带 combined 的镜像是内核和根文件系统的组合。内核固件是操作系统的核心,负责管理硬件和提供基本的系统功能。根文件系统包含了操作系统的文件和目录结构,提供了用户空间程序和配置文件。

    在正常的启动过程中,引导加载程序(bootloader)会首先加载内核固件,然后将控制权交给内核。内核会初始化系统并挂载根文件系统,然后执行用户空间程序。

    如果尝试单独启动内核固件,它将无法正常运行,因为缺少必要的系统组件和文件。同样地,如果你单独启动根文件系统,它将没有一个运行的内核来提供系统功能。

    为了成功启动 OpenWrt,你需要同时加载内核固件和根文件系统。这通常是由引导加载程序完成的,它会将两者结合在一起并启动系统。

    当然,在某些只需要根文件系统的情况下,可以只需要根文件系统,比如使用 lxc 容器启动容器,这容器将与宿主机共享内核。

    三、添加第三方插件主题编译

    其实添加第三方的主题或插件一般只需要拉取代码到 package 目录,可以在此目录下新建文件夹,因为执行 make menuconfig 命令时会扫描该文件夹下的 Makefile。

    这里以 argon 主题和 passwall 插件为例:

    添加第三方主题

    cd package
    # 创建以自己用户名命名的文件夹,方便管理
    mkdir hz
    cd hz
    # 拉取主题代码
    git clone https://github.com/jerrykuku/luci-theme-argon.git

    接下来就可以在 make menuconfig 界面选择 LUCI -> Theme -> Luci-theme-argon 主题了。

    添加第三方插件

    passwall 插件可能比较特殊,需要配置 feed 源,因为它需要依赖 v2ray-core、xray-core 等组件。

    # 需要在 openwrt 源码根目录下执行
    echo "src-git passwall_packages https://github.com/xiaorouji/openwrt-passwall-packages.git;main" >> "feeds.conf.default"
    echo "src-git passwall https://github.com/xiaorouji/openwrt-passwall.git;main" >> "feeds.conf.default"

    更新并安装 feed 源:

    ./scripts/feeds update -a
    ./scripts/feeds install -a

    接下来就是拉取 passwall 插件代码:

    cd package
    # 创建以自己用户名命名的文件夹,方便管理
    mkdir hz
    cd hz
    # 拉取插件代码
    git clone https://github.com/xiaorouji/openwrt-passwall.git

    接下来就可以在 make menuconfig 界面选择 LUCI -> Applications -> Luci-app-passwall 插件,并需要把插件的 configuration 里面的选项全部选上。

    这里可能报错,也许是 passwall 默认依赖了 dnsmasq-full,和之前官方默认选择的 dnsmasq 有冲突,所以把 dnsmasq 取消即可。此外,编译其他的插件也有可能出现这种情况,所以需要注意看日志。

    Openwrt 编译官方固件详解

    />

    四、单独编译插件

    也许你可能用的官方的固件,基本上很满意,但是想要安装一个插件,那么此时可以自己编译一个插件。需要注意的是,需要知道用哪个版本的源码来编译,这个目前还不知道怎么看,只知道个大概的编译流程。

    这里以编译 luci-app-aria2 为例,首先最好更新一下 feeds:

    ./scripts/feeds update -a
    ./scripts/feeds install -a

    然后需要运行如下命令:

    make menuconfig

    在配置页面中,选择 LUCI -> Applications -> Luci-app-aria2 插件,并保存配置。

    其次最重要的是知道需要单独编译的软件包,在 openwrt 源码的哪个目录下,如 aria2 的路径为 package/feeds/luci/luci-app-aria2/。知道路径以后,那么运行代码:

    # 先清除模块
    make package/feeds/luci/luci-app-aria/clean
    # 编译模块
    make package/feeds/luci/luci-app-aria2/compile V=s -j$(nproc)
    # 也许因为是编译固件漏掉了该插件,那么可以执行如下命令
    # 将单独编译的软件包安装到OpenWrt的软件包路径中
    # make package/install
    # 将软件包从软件包路径复制到目标设备中的相应位置进行安装
    # make target/install 

    等待 此时在 bin/packages/xxx/luci 目录下已经生成了 luci-app-aria2_git-xxx.ipk 软件包,如果你是中文环境,那么还有可能生成了 luci-i18n-aria2-zh-cn_git-xxx.ipk 汉化包。

    需要注意的是,如果是自己下载源码放在 packages 的源码,目录有可能不同,可以考虑使用 find 命令查找:sudo find / -name “ipk” | grep “aria2”

    如果此时直接打开 luci 界面,上传软件包并安装,会发现报错:

    Collected errors:

    • pkg_hash_check_unresolved: cannot find dependency aria2 for luci-app-aria2
    • pkg_hash_fetch_best_installation_candidate: Packages for luci-app-aria2 found, but incompatible with the architectures configured
    • opkg_install_cmd: Cannot install package luci-app-aria2.

    这是因为 luci-app-aria2 的依赖没有安装,它的依赖可以在 Makefile 文件中看见:

    LUCI_DEPENDS:=+luci-base +aria2

    说明 luci-app-aria2 依赖于 luci 基础包,还依赖于 aria2 这个软件包。一般来说,这个软件包会存在于 luci 目录同级目录下的的 packages 文件夹下。

    关于软件包的依赖,还可以在官网查找:https://openwrt.org/packages/index/start。当然,如果官方源码里面没有的软件包,这里应该也是找不到的,还是需要看软件包的 Makefile 文件。

    知道了需要先安装依赖那就好办了,因为在配置界面选中 luci-app-aria2 时,也会默认选中它的依赖。它能编译成功,说明他的依赖也编译成功了,可以在 bin/packages/xxx/packages 目录下找到 aria2_xxx.ipk

    最后只需要按依赖顺序进行安装即可,aria2_xxx.ipk -> luci-app-aria2_git-xxx.ipk -> luci-i18n-aria2-zh-cn_git-xxx.ipk

    提醒:本文发布于351天前,文中所关联的信息可能已发生改变,请知悉!

    Tips:清朝云网络工作室

  • 使用 cert-maker 给 PVE 制作 ssl 证书


    共计 766 个字符,预计需要花费 2 分钟才能阅读完成。

    原因

    经常需要用到 PVE 的图形化界面,但是由于 PVE 的证书不被信任,所以决定使用自己之前制作的证书快速制作工具,做一个自己的 CA 证书并给 PVE 生成证书。

    制作证书

    首先当然是制作证书:

    docker run --rm \
    -e SIGN_BY_CA=true \
    -e CERT_NAME="pve" \
    -e CERT_DAYS="36500" \
    -e CERT_C="CN" \
    -e CERT_ST="Guangdong" \
    -e CERT_L="Guangzhou" \
    -e CERT_O="Hausen" \
    -e CERT_OU="Hausen" \
    -e CERT_CN="Hausen" \
    -e CERT_DNS="pve.qcyqq.com,172.21.9.120" \
    -v $PWD/cert:/cert \
    hausen1012/cert-maker

    内容根据自己需要进行修改,这里最重要的是修改 ip,如果想使用域名也可以指定。此时会在 cert 目录下生成 ca 的证书和密钥,另外还有 pve 的证书和密钥。

    导入 CA 证书

    为什么要导入证书呢?因为即使我们生成了 pve 的证书,但这个证书是我们自己的 ca 证书签名的,所以需要导入 ca 证书为受信任的根证书颁发机构。

    双击证书即可进入安装页面,可以看见如下页面,点击下一步即可。

    使用 cert-maker 给 PVE 制作 ssl 证书

    />

    选择第二项。

    使用 cert-maker 给 PVE 制作 ssl 证书

    />

    选择受信任的根证书颁发机构,然后一直下一步即可。

    使用 cert-maker 给 PVE 制作 ssl 证书

    />

    注意:这里生成的 ca 证书最好保存,下次生成其他证书的时候就不需要重复导入证书了

    更新 PVE 证书

    进入 pve 管理页面,点击凭证即可上传证书。

    使用 cert-maker 给 PVE 制作 ssl 证书

    />

    私钥选择刚刚生成的 key 文件,证书选择刚刚生成的 crt 文件。

    使用 cert-maker 给 PVE 制作 ssl 证书

    />

    然后关闭浏览器,再次进入 pve 管理界面发现已经不提示网站不安全了,此时 Edge 浏览器也可以保存密码了。

    使用 cert-maker 给 PVE 制作 ssl 证书

    />

    如果发现还是提示不安全,首先考虑是否已经清理浏览器缓存,其实看清楚证书指定的扩展名称里面的 ip 和pve 的 ip 是否一致。

    提醒:本文发布于351天前,文中所关联的信息可能已发生改变,请知悉!

    Tips:清朝云网络工作室