0%

前言

我是个菜鸡,菜鸡就要先走新手练习区。

这次 CTF Writeup 的指定训练站点为 攻防世界

交作业而已,交作业而已

新手练习区

Web 区

view_source

题目描述:X老师让小宁同学查看一个网页的源代码,但小宁同学发现鼠标右键好像不管用了。

解答步骤:直接在地址栏前加上 view-source: 拿到 HTML 注释中的

cyberpeace{f3baff125*********f3cf5a7e6}

robots

解答步骤:地址栏后加上 /robots.txt ,得到

User-agent: *
Disallow: 
Disallow: f1ag_1s_h3re.php

访问 /f1ag_1s_h3re.php 得到 flag

backup

解答步骤:访问 index.php.bak,记事本打开得 flag

解答步骤:查看 cookie 看到要求访问 cookie.php,要求查看http response,看response header得到flag

MISC 区

this is flag

题目描述:Most flags are in the form flag{xxx}, for example:flag{th1s_!s_a_d4m0_4la9}

解答步骤:直接填入 flag{th1s_!s_a_d4m0_4la9}

pdf

题目描述:菜猫给了菜狗一张图,说图下面什么都没有

附件:一份 PDF

解答步骤:我一开始还想用 Word 转换 PDF 再尝试的,结果发现 Word 转换后字没了,然后试了一下 Ctrl+A,发现获取到文字,Ctrl+C 拿到 flag{security_through_obscurity}

https://static.yecdn.com/imguoguo/images/CTF-Writeup/pdf.png

果然 Ctrl+A 和 Ctrl+C 是人类第一生产力

如来十三掌

题目描述:菜狗为了打败菜猫,学了一套如来十三掌。

题目附件:一份 word 文档

打开文档可以看到很多个呐,由此我们可以断定这个是一个二次元 word 档(不是

夜哆悉諳多苦奢陀奢諦冥神哆盧穆皤三侄三即諸諳即冥迦冥隸數顛耶迦奢若吉怯陀諳怖奢智侄諸若奢數菩奢集遠俱老竟寫明奢若梵等盧皤豆蒙密離怯婆皤礙他哆提哆多缽以南哆心曰姪罰蒙呐神。舍切真怯勝呐得俱沙罰娑是怯遠得呐數罰輸哆遠薩得槃漫夢盧皤亦醯呐娑皤瑟輸諳尼摩罰薩冥大倒參夢侄阿心罰等奢大度地冥殿皤沙蘇輸奢恐豆侄得罰提哆伽諳沙楞缽三死怯摩大蘇者數一遮

https://static.yecdn.com/imguoguo/images/CTF-Writeup/word-na.png

没有思路,所以上网一搜,找到了解码站 与佛论禅

复制内容粘贴到下方解码框,发现提示:太深奥了,参悟不出佛经的真意……

于是随意输入文本,加密后出现开头 “佛曰:”,添加后再次解密

获得一串字符串

https://static.yecdn.com/imguoguo/images/CTF-Writeup/tudoucode.png

上网随意找一个 Rot13 解密工具

这玩意还真不能随便找,要找一个不会全部替换为小写的用,不然的话搞半天就白搞

解密后得

ZmxhZ3tiZHNjamhia3ptbmZyZGhidmNraWpuZHNrdmJramRzYWJ9

得到 flag

flag{bdscjhbkzmnfrdhbvckijndskvbkjdsab}

高手进阶区

Web 区

Training-WWW-Robots

访问 /robots.txt 要求访问 /fl0g ,访问获得flag

baby_web

F12 访问 / 看 response header 得到 flag

Cat

输入 localhost 后发现出现一个 ICMP 请求,似乎没什么用

陆续输入 ;ls 之类的以后发现提示 invaild URL

输入一个不和谐的 emoji 以后弹出报错信息

https://static.yecdn.com/imguoguo/images/CTF-Writeup/cat.png

根据 https://www.php.net/manual/zh/function.curl-setopt.php

https://static.yecdn.com/imguoguo/images/CTF-Writeup/cat-php-curl.png

输入 @ 可以传递文件,输入 @/opt/api/dnsapi/utils.py 出 invaild URL,输入 @/opt/api/database.sqlite3 出报错信息,搜索 CTF 得到flag

新年新气象,果果想在 2020 年更加努力上进

转眼间,域名好像已经换了三回了已经嘻嘻嘻

2019 年,果果从阿卡琳转变为了

转成啥了我也不知道

2020 年就,努力获取更多新知,变为一个更加阳光上进的孩子哦~

哦对了,还有一件事,

2020 年争取把果果的辣鸡英语给补上去(

顺带一提,新年新气象

博客域名换为 guo.moe

前言

之前在工作室直播的时候,同学一直用的QQ直播,直播质量极其廉价,然后又不是很想用B站直播之类的,毕竟都是自己看,于是就萌生了要自建直播间供工作室大佬使用的想法。

安装直播服务器

使用 Docker 安装 nginx-rtmp

所谓万物皆可 docker,能 docker 的事就别找别的麻烦的,反正学校服务器配置够高,用就是了

开文件夹,配置 docker-compose.yml

version: "3"

services:
  nginx-rtmp:
    container_name: "nginx-rtmp"
    volumes:
        - "./conf/nginx.conf:/etc/nginx/nginx.conf"
        - "./www:/usr/local/nginx/www"
    image: tiangolo/nginx-rtmp:latest
    ports:
        - "1935:1935/tcp"
    environment:
      TZ: 'Asia/Shanghai'
    restart: always
    networks:
        - docker-lemp

networks:
    docker-lemp:
        external:
            name: docker-lemp_default

这里这么搞是为了可以和我之前用的 docker-lemp 网络对接,当然你也可以直接将生成的流文件文件夹映射到本地的网站目录,这样更方便一点。顺带说一下,这个conf也要映射的原因是要修改默认配置文件。然后默认的1935端口给一下,大概差不多

** 通过编译安装 nginx-rtmp

参考此处资料进行使用,上面用了docker的就不用了

https://github.com/arut/nginx-rtmp-module

修改 nginx.conf

使用 docker 的在当前目录下创建 ./conf/nginx.conf

编辑 nginx.conf ,修改为以下内容

worker_processes auto;
rtmp_auto_push on;
events {}
http {
    server {
        listen 80;

        location /hls {
            # Serve HLS fragments
            types {
                application/vnd.apple.mpegurl m3u8;
                video/mp2t ts;
            }
            root /usr/local/nginx/www;
            add_header Cache-Control no-cache;
        }
    }
}
rtmp {
    server {
            listen 1935;
            application live {
                live on;
            }
            application hls {
                live on;
                hls on;
                hls_path /usr/local/nginx/www/hls;
            }
     }
}

运行 Docker

输入 sudo docker-compose up -d ,等到容器创建完毕完事~

推流

nginx-rtmp 搭建好了以后,你就可以进行推流了。

上面开 hls 是为了方便移动端设备直接访问,也是为了方便浏览器上观看直播。

OBS 推流

打开推流设置页面,服务器填写 rtmp://<IP地址>:1935/hls ,密钥你自己喜欢,点击开始推流,看能不能推上

推上了以后,会在 ./www/hls 文件夹中生成 <密钥>.m3u8 ,说明推流成功

FFMPEG 推流视频

不想直播了,但是想在直播间循环一些视频

ffmpeg -re -stream_loop -1 -i <视频名> -vcodec copy -acodec copy  -f flv rtmp://<IP地址>:1935/hls/<密钥>

https 强迫症

如果你有 https 强迫症,或者说不想看端口,你也可以套一层 nginx 反代,或者直接在上面的 nginx 改设置

location / {
        proxy_pass  http://nginx-rtmp/;

        #Proxy Settings
        proxy_redirect     off;
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
        proxy_max_temp_file_size 0;
        proxy_connect_timeout      90;
        proxy_send_timeout         90;
        proxy_read_timeout         90;
        proxy_buffer_size          4k;
        proxy_buffers              4 32k;
        proxy_busy_buffers_size    64k;
        proxy_temp_file_write_size 64k;
   }

1935 那噶哒端口也一样,写就对了

然后串流地址就可以改成 https://xxxxx/hls

前端

参考资料:http://dplayer.js.org/zh/guide.html

为了图省事,我这里使用了 hls.js + DPlayer,直接引入 hls.js 和 dplayer.js 就行

按照 DPlayer 的指南简单写一下

<html>
    <head>
        <title>女装直播间</title>
        <link rel="stylesheet" href="DPlayer.min.css" />
    </head>
    <body>
        <div id="dplayer"></div>
    </body>
    <script src="hls.min.js"></script>
    <script src="DPlayer.min.js"></script>

    <script>
        const dp = new DPlayer({
            container: document.getElementById('dplayer'),
                live: true,
            video: {
                url: 'test.m3u8',
                type: 'hls',
            },
            pluginOptions: {
                hls: {
                    // hls config
                },
            },
        });
    </script>
</html>

(Ctrl+C, Ctrl+V ,摸了

最后效果和首页的差不多

弹幕服务器

众所周知,Dplayer 是一个弹幕播放器,那肯定要有弹幕才能尽兴。

开始我试了一下用官方的 docker 容器来搭建,搭好以后发现这个不太适用于直播,适用于视频类的,所以还是得手撸

主要思路是点击发送的时候 DPlayer 调用 apiBackend 的 send,然后再走 websocket 发送弹幕,当websocket 接收到新数据的时候再通过 dp.danmaku.draw 进行渲染。

将 danmaku 的 options 展开还可以指定视频 id、用户之类的,然后为了赶工我就只先搞了视频 id 的,用户啥的还没写

(视频id我就大概用视频地址md5一下差不多了

(说起来找了半天才发现这个 danmaku 是可以展开的(

美化

利用 Element 来加一点点细节,就很好看啦

https://static.yecdn.com/imguoguo/images/Live/Live1.png

多人直播间

根据 Vue-router 和 Vue 的特性,你可以根据路由来动态改变视频地址和直播间名字

https://static.yecdn.com/imguoguo/images/Live/otome.png

注:此处安装不太适合给没有 VNC 管理权限的服务器使用,装炸了难以排查问题

前言

之前学校的服务器是 CentOS ,分区是在 /dev/sda2 上又开了一层 lvm 分区,这种分区方式令我感觉十分不舒服,其中有个原因是根目录空间不够,但 /home 分区的空间又大得一坨,遂尝试删除并合并分区。swapoff 并删除+合并以后没问题,但保险起见将备份文件移至我的 NUC 上,改 /etc/fstab ,然后一重启,打不开机子,上面好像写着无法读取 /dev/centos/swap 分区。(不过我也不是很清楚到底哪里)正当我庆幸自己聪明机智有备份的时候,翻开 NUC 一看,里面几个大字写着

Backup.tar.gz.part

然后稍感事情好像不太对,最后费了一天时间来提里面的备份,好不容易提出来。

(小声BB一句,CentOS 的救援模式似乎没办法联网,所以都是情急下xjb弄的

(极限操作,开启 CentOS 光盘中的救援模式,挂载系统盘,提取备份文件至 /tmp ,删除分区,重新分区,分一个2G的盘给备份文件,剩下的直接开新分区)

Q: 系统都坏成这样了,为什么不直接装 ArchLinux?

因为 VMware vSphere 似乎无法挂载自己的 ISO 文件,得主机有这个 iso 文件才能用,

因为学生没有权限挂载自己的 ISO 文件

而之前还挂着 CentOS 的安装盘,所以就曲线救国,先装一遍 CentOS 再安装 ArchLinux。

正片

参考资料:https://wiki.archlinux.org/index.php/Install_Arch_Linux_from_existing_Linux

下载

直接前往镜像站(163)wget一手 archlinux-bootstrap-*-x86.64.tar.gz 到 /tmp 目录,解压至 /tmp

修改 mirrorlist

找到 China 的 163 源,取消注释

放置解析

为了防止等会装的时候删文件解析出问题,所以先

rm -f /tmp/root.x86_64/etc/resolv.conf
cp /etc/resolv.conf /tmp/root.x86_64/etc/

进入 chroot

记得确认 Bash 版本是否 ≥ 4

/tmp/root.x86_64/bin/arch-chroot /tmp/root.x86_64/

注:我在此处执行命令的时候出现了这个提示

unshare: unrecognized option '--fork'

解决方法很简单,更新一下 util-linux 就行了

yum update -y util-linux

初始化并验证 pacman 密匙环

pacman-key --init
pacman-key --populate archlinux

新安装的 CentOS 跑这个特别的慢,按照官方提示,你可以先安装一个 rng-tools

yum install -y rng-tools

挂载目录

将 /dev/sda2 挂载到 /mnt ,将 /dev/sda1 挂载到 /mnt/boot

mount /dev/sda2 /mnt
mount /dev/sda1 /mnt/boot

删除外围文件夹,将除了 /proc /srv /sys /dev /opt /run /tmp(也就是没法删的)的文件夹都删了

感觉跟 rm -rf /* 差不多(

注意:请不要把 /tmp 文件夹给删了,不然这个 chroot 就直接炸掉

配置

接下来的操作就和 ArchLinux 安装笔记 所提到的差不多了,依次进行笔记所提到的开始安装和基础设置。但这个 VMware vSphere 好像默认是传统引导方式,所以中间的grub安装修改一下

pacman -S grub
grub-install /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg

就可以了

配置网络

注意,这个时候重启是没有网络的,所以要先提前配置好 sshd 和 systemd-networkd ,否则重启以后还要进 vnc 会有点麻烦,编译 /etc/systemd/network/20-wired.network

[Match]
Name=ens32 # 网卡名字

[Network]
Address=172.16.5.233/24 # IP 地址
Gateway=172.16.5.1
DNS=172.16.5.1

并执行

systemctl enable systemd-networkd
systemctl enable sshd

然后就可以重启了,尝试外部能否连接 ssh?

后言

正常来说,这个时候重启就基本能够出现高贵的 ArchLinux 字样了,

虽然过程很艰苦,但还是开心的

开心个屁啊,备份文件提不出来那几次差点被急哭了,还好有 U2 在一旁帮忙

前言

因为一些小bug,本身的 killer 网卡无法连接至无线网络,再加上盒盖后电脑经常会睡死,macOS 没怎么用了,于是就想着重装一下 ArchLinux,于是就重装了。

安装 ArchLinux

以下操作参考自资料 Installation guide - ArchWiki

安装 ArchLinux 前需确保计算机已连接至互联网。

下载 ArchLinux ISO 镜像

https://www.archlinux.org/download/ 随便找个镜像地址,打开找到 archlinux-2019..-x86_64.iso 下载,使用 rufus 写入至 U 盘

开机

就选择引导,之后会进入到 archiso 的界面

格式化分区

输入 lsblk ,发现之前安装的 macOS 分区放在 nvme0n1p4 ,将其格式化为 xfs 格式

mkfs.xfs -f /dev/nvme0n1p4

稍等一会,就好了

更换 mirrorlist

修改 /etc/pacman.d/mirrorlist ,将 #China 下的源提前。推荐 163 源

swap 交换分区

这个你喜欢,反正我是没搞。按照官方 wiki,这里可以使用单独分区,也可以用 swapfile 交换分区文件

挂载分区

挂载系统分区

将分区挂载到 /mnt ,输入

mount /dev/nvme0n1p4 /mnt

挂载引导分区

这里我的 esp 分区放在了第一个分区,先创建 /boot/efi 文件夹,再进行挂载

mkdir /boot/efi
mount /dev/nvme0n1p1 /mnt/boot/efi

生成 fstab

genfstab -U /mnt >> /mnt/etc/fstab

开始安装

使用 pacstrap 进行必要包的安装

U2 说 zen 鸡血内核不错,所以这里用 zen 内核

pacstrap /mnt base base-devel linux-zen linux-firmware
# 用默认内核的话将 linux-zen 换成 linux 就行了

基础设置

输入 arch-chroot /mnt 切换至新安装的系统

时区设置

ln -sf /usr/share/Asia/Shanghai /etc/localtime
hwclock --systohc

本地化设置

编辑 /etc/locale.conf,将 LANG=en_US.UTF-8\zh_CN.UTF_8\zh_TW.UTF_8 前的 # 去掉

执行 locale-gen

新增用户

输入 useradd -G wheel -m guoguo 新增用户,并输入 passwd guoguo 进行密码重置

输入 visudo ,插入

guoguo (ALL) = (ALL) ALL

安装 grub 引导

这里我使用了 UEFI 方式

输入 pacman -S grub 安装 grub,然后输入

grub-install --target=x86_64-efi --efi-directory=/boot/efi

如果是移动硬盘的话加入 –removeable ,否则可能会出现重启无法进入grub的情况

然后执行

grub-mkconfig -o /boot/grub/grub.cfg

重启

输入 exit ,然后 reboot,拔除 U 盘。

如果成功进入系统,那

前言

上文所述,Samba 因 445 端口被校园网屏蔽无法使用,所以只能使用另一种方案,于是就想到了 NextCloud + WebDav 这种方案

安装配置

服务器的配置与安装

https://nextcloud.com/install/#instructions-server 下载压缩包后,在服务器上解压缩,按照步骤一步步填入数据库资料进行安装,安装过程中可能会出现 504 超时错误,稍等两三分钟待 config/config.php 文件中出现

'installed' => true

即为安装完毕。

NTFS 文件系统的配置问题

安装完成后,无法正常访问,提示

Please change the permissions to 0770 so that the directory cannot be listed by other users.

排查原因后,发现

由于硬盘本身是 NTFS,导致 data 文件映射后一直有权限问题,没有啥其他好的方法,只能忽略错误了。

参考资料:https://b1ue.me/archives/183

在 config/config.php 下加入

'check_data_directory_permissions' => false

虽然有用,但十分不建议使用,除非是真的无可奈何,请不要使用这种方法。此文件将会允许任何知道文件路径的人访问获取文件。

WebDav 配置

Explorer.exe 资源管理器的配置

具体步骤如上一篇文章,此电脑右键映射网络驱动器写入 WebDav 的链接,链接可以在下图中所在位置找到(点击设置,会出现 WebDav 地址)

但据同学反映,此处写入后会出现 错误67:找不到网络名 的错误,遂换方法

其中参考过 在 Windows 上正确优雅地挂载 WebDAV - 黎明余光 这篇文章的方法,使用命令

NET USE * https://nextcloud.*************/remote.php/webdav/

但莫用,在命令提示框内继续显示 错误67:找不到网络名,还是要更换方法。

RaiDrive 的使用

以前看小h番的时候有将 Google Drive 挂载到本地磁盘看过,效果还不错,所以这次就尝试在 RaiDrive 挂载 WebDav 的方法。[下载链接]

安装后添加网络磁盘,选择 NextCloud ,成功挂载

(但速度好像一般,会卡死 Explorer.exe

重启以后又好了 emm

但速率还是一般,内网最高才 6M/s 左右,不知道是哪里问题

(晚上试了一下好像是教室路由器是百兆的,别人用了我就慢了(x

开放注册

设置邮箱服务器

在设置中设置好邮件服务商提供的 SMTP 服务器信息,发送邮件测试是否可以通过

安装 registration apps

此处下载 apps https://apps.nextcloud.com/apps/registration ,在 /apps 中解压压缩文件,在设置中启用应用,其他设置中稍微配置一下即可

然后失败

配置完成以后,不知道为什么在尝试填入注册邮箱的时候都会报 500 错误,暂未修复。

结语

总的来说 NextCloud 的安装就这样了,感觉还是达不到自己的预期,看看还后没有其他的方法

前言

因为(白嫖)学习目的,从学校工作室(白嫖)借用了块硬盘,供工作室的小伙伴用,同时也可以在上面放一些自己的东西,但总是通过网页进行管理那总是不方便的啊,所以就想着使用 Samba 进行文件共享。

安装

众所周知,万物皆可 Docker ,这次使用的是 https://github.com/dperson/samba 这个项目,那上面也有 DockerFile 了,所以也不重复造轮子了。

docker-compose.yml

众所周知,有 Docker 的地方就有 Docker Compose ,所以这里还是用 Docker Compose,这里人家已经给写好了,所以就直接参考此处。

参考资料: https://github.com/dperson/samba/wiki/Using-Docker-Compose

version: '3.4'

services:
  samba:
    image: dperson/samba
    environment:
      TZ: 'EST5EDT'
    networks:
      - default
    ports:
      - "137:137/udp"
      - "138:138/udp"
      - "139:139/tcp"
      - "445:445/tcp"
    read_only: true
    tmpfs:
      - /tmp
    restart: unless-stopped
    stdin_open: true
    tty: true
    volumes:
      - ./data:/mnt:z

    command: '-s "Guoguo;/mnt;yes;no;no;guoguo" -u "guoguo;*******"'
      # 这里注意一下 第一个参数是分享名称,等会要用到,后面的 guoguo 就是用户名
      # -s 其他的参数分别如下,其他的都可以在 GitHub Wiki 上找到
      # -u 最简用法就是前面用户名,后面密码
      # <share_name>;
      # <path_to_share>;
      # [browsable] default:'yes' or 'no';
      # [read_only] default:'yes' or 'no';
      # [guest]: default: 'yes' or 'no';
      # [users]: default: 'all' or list of allowed users;
      # [admins] default: 'none' or list of admin users;
      # [writelist] default: 'none' or list of users that can write to read-only share;
      # [comment] default: 'none' or description of share
networks:
  default:

这里需要注意一下,他这里 wiki 用的是环境变量,但他也说明了环境变量只能使用单个用户,多个用户是需要使用 command ,具体格式见上述 wiki ,当时我还盯着半天 Incorrect Example 想着为啥连不上(小声

启动

执行

sudo docker-compose up -d

连接

https://static.yecdn.com/imguoguo/images/Samba/Explorer.png

Windows 中,此电脑右键,映射网络驱动器,在文件夹中填入 \<share_name>

例如上面我的 share_name 写的是 Guoguo,IP 为 192.168.6.233 那此处就写 \192.168.6.233\Guoguo,注意勾选使用其他凭据连接,完成,输入上面填入的账号密码,连接成功。再在其中新建文件夹,linux 上 ls,成功新建。

share_name 这里卡了我好久,次次都说无法找到网络路径次次排查,最后才发现得这么写(摔

端口转发

在路由器上,对 137、138 端口进行 UDP 转发,445、139端口进行 TCP 转发,使用校园内网 IP 进行访问测试

后记

本来到这里就结束了的,没想到捣鼓完了以后,发现校园网把 445 屏蔽了,想要连接到服务器就只能走 VPN 连回宿舍再连接服务器,这显然不符合自己之前的目的,于是就只能想要另一种方法了。

(此处纯果果瞎捣鼓,不一定会规范

瞎 BB

朋友服务器是 Ubuntu ,没法捣鼓 ArchLinux 很不舒服,加上朋友服务器也莫 VNC,之前不小心给它硬核安装 ArchLinux 装挂过一次,其实之前在自己那台上搭过,也就当玩具玩玩图个乐~

参考资料: [在 Docker 中使用 Archlinux 的折腾记录 | Mogeko`s Blog](https://mogeko.me/2019/063/)

emm 这里已经有大佬打包过了,那就不重复造轮子了

之前用的是 U2FsdGVkX1 的 archlinux-ssh ,但是已经两年没有过更新了,而且之前滚过一次也没法使用,也忘了有什么原因,所以就用了 mogeko 的 mogeko/archlinux

然后 docker-compose 真的是太方便辣,然后下文就以 docker-compose 为主

Docker Compose 操作

安装 Docker 和 Docker Compose

pacman -S docker.io docker-compose # ArchLinux
apt install docker docker-compose # Ubuntu
# 其他参考资料:https://docs.docker.com/compose/install/

docker-compose.yml 内容

version: "3"

services:
  archlinux:
    container_name: archlinux
    image: mogeko/archlinux:latest
    ports:
      - "2223:22/tcp"
    environment:
      TZ: 'Asia/Shanghai'

    restart: always

然后走一手 docker-compose up -d 就可以了。

如果出现无法连接到 unix:///var/run/docker.sock 的,先检查一手是否 root 权限,即 sudo 一波,再看看 dockerd 有没有开,systemctl start dockerd 一手。

然后 docker-compose.yml 我好像暂时没找到 rename docker 的方法(小声

sudo docker ps | grep archlinux
# 76983db2c6f2        mogeko/archlinux:latest          "/usr/bin/sshd -D"       6 days ago          Up 35 hours             0.0.0.0:2223->22/tcp                                                          archlinux
sudo docker exec -it 7698 bash
[root@76983db2c6f2 /]#
# 然后走一手 passwd 重置一下密码就可以 ssh root@localhost -p2223 连接啦

开始瞎皮

注:以下内容极有可能严重不规范,真的真的真的仅为果果瞎捣鼓玩的

映射目录

emm 由于 docker 重启就清内容的特性,然后我又想捣鼓个不丢数据的,又可以方便直接读取修改的,于是就开始疯狂映射

刚开始尝试了直接将 ./data 目录直接映射到 docker 中的 / ,后来发现 docker 不允许将路径直接映射为 docker 的根目录,于是便开始一个个文件夹地映射。

先运行 docker-compose down ,往 docker-compose.yml 中添加

volumes:
      - './data/backup:/backup'

再 docker-compose up -d,打开 bash

将以下文件夹打包,复制到 /backup 中

bin   etc    lib    mnt  run   srv   tmp  var
boot  home   lib64  opt  root  sbin  sys  usr

将 ./data/backup 打包文件移动到 ./data 解包,并修改 docker-compose.yml 最终为

version: "3"

services:
  archlinux:
    container_name: archlinux
    image: mogeko/archlinux:latest
    ports:
      - "2223:22/tcp"
    environment:
      TZ: 'Asia/Shanghai'
    volumes:
      - './data/bin:/bin'
      - './data/boot:/boot'
      - './data/etc:/etc'
      - './data/home:/home'
      - './data/lib:/lib'
      - './data/lib64:/lib64'
      - './data/mnt:/mnt'
      - './data/opt:/opt'
      - './data/root:/root'
      - './data/run:/run'
      - './data/sbin:/sbin'
      - './data/srv:/srv'
      - './data/sys:/sys'
      - './data/tmp:/tmp'
      - './data/usr:/usr'
      - './data/var:/var'
    restart: always

重启,然后就能暴力地获得一台重启不掉数据的容器啦,顺便还能直接丢东西进去(逃

我觉得应该有肯定有更优雅的方法的(小声逼逼

Docker 互相连接

emm 有时候 docker 之间网络不互通,交流起来不方便,开一个网络,大家连进来,就可以几个 archlinux 互相连着玩啦(不是

创建一个新网络

docker network create my-net

将 Docker Compose 中的 Docker 连接到新建的外部网络

先 docker-compose down,编辑 docker-compose.yml,在 services: archlinux: 下加入

networks:
   - my-net

注意 networks 与上面的 restart 对齐,对不齐的买把游标卡尺自己量

在文件最下面加入

networks:
    my-net:
        external:
            name: my-net

此处 networks 与上面的 services 对齐,也就是顶格写,写完保存 docker-compose.yml

然后你把其他 Docker Compose 也这么写,就可以互相连着玩啦(不是

使用外部的设置

里一套密码外一套密码总感觉不是很舒服,所以文件你也可以映射一波,一匙开两门,又快又方便(不是

使用外部的账号密码

自己宕,自己编辑文件,在 volumes: 下加入

volumes:
        # ...
  - '/etc/passwd:/etc/passwd:ro'
  - '/etc/shadow:/etc/shadow:ro'

ro 即仅允许读,rw即允许读写,这里没啥必要给修改的就给 ro 了

自己开 docker-compose ,外部用密码连接,嗨,成了

使用外部的授权密钥

方法和上面一样,文件编辑加入

volumes:
        # ...
  - '/root/.ssh/authorized_keys:/root/.ssh/authorized_keys:ro'

重启,用密钥连接,嗨,也成了

关闭密码登录

映射文件也行,自己改也行,这里就不赘述了

(皮完了)

在升级到 Windows 10 1909 以后,XPS 的续航从开着省电模式5个小时骤降至两个半小时,比人家游戏本还差,正好也苦于 Windows 10 的更新体验,再加上总是出一些莫名其妙的bug(比如说双屏情况下鼠标和键盘总是会突然卡一下,和手环、手机经常连不上)于是就干脆换成 Windows LTSC 2019 试试。

在 msdn Itellyou 下载好 LTSC 的镜像以后,就开始了重装之旅。从 Windows 10 1909 专业工作站版直接安装不能够保留个人文件,于是把重要文件都移到了 NUC 上备份,开始重装。

安装中途和普通安装差别不大,就是在安装过程中登录 Microsoft 账号需要使用学校或工作账号,不过在安装完毕后可以使用个人账号重新登陆,安装时先创建个人账号即可。

安装后系统很干净,没有 Windows Store ,没有 Cortana, 没有 Mail

这里的不保留任何个人文件,说是不保留,其实和U盘直接安装差不多,Program Files, Windows等文件夹删掉或移到 Windows.old 文件夹,Users 文件夹移到 Windows.old 文件夹,其他文件夹保留在原位置。

安装软件

Windows Store

作为 Windows 10 的铁哥,这玩意怎么能没有呢

参照此处 为Windows 10 Enterprise LTSC增加应用商店

安装完成后正常使用软件

Windows Mail

Emmc 这个我在 Windows Store 中找不到,暂时没有使用的方法

https://static.yecdn.com/imguoguo/images/Windows10LTSC/mail.png

点击此处跳转下载

Office

SBM$ ,我的 MS 账号有 Office 365 的家庭版授权,但是一直无法激活 office 365,一激活就报没有 Office 365 的许可证,然后自动给我换成 Office 2019,而且 OneDrive 也一直只有5G,多次给 M$ 致电仍然不了了之,有几次打过去甚至直接把我电话挂了??我TM

https://static.yecdn.com/imguoguo/images/Windows10LTSC/MS.png

当场给他多打了几次,次次都说催工程师,结果到现在都还没给我回电。

重装以后系统终于恢复之前的续航了,可喜可贺

晒一张重装后的系统属性界面图

https://static.yecdn.com/imguoguo/images/Windows10LTSC/Prop.png

emmc 之前听说 XPS 续航挺好的来着,不知道为啥有点低于预期(小声逼逼

前言

由于 WordPress 实在是太大太臃肿,访问时间需要 7s 左右,遂决定将程序由 WordPress 转移到 Hexo上使用,随手记录一下迁移过程。

Hexo 的初始化和安装

首先安装 npm,再运行指令安装 hexo-cli

npm install hexo-cli -g

接着运行

hexo init Guoguo

初始化目录,运行

hexo server

打开 Hexo 服务器,输出日志如下

INFO  Start processing
INFO  Hexo is running at http://localhost:4000 . Press Ctrl+C to stop.

浏览器访问 localhost:4000 即可看到完毕页面

修改配置信息

在 _config.yml 编辑

更换主题

更换 hexo-theme-next

git clone https://github.com/viosey/hexo-theme-next themes/next

完成后在 hexo 根目录的 _config.yml 编辑 themes: next 即可

文章的迁移

此处参照 https://hexo.io/zh-cn/docs/migration.html Wordpress 详细步骤

Disqus 的配置

修改 next 主题的配置文件 /themes/next/_config.yml 的 api,但出现

该 Thread 并没有初始化,是否 切换到完整 Disqus 模式 进行初始化?

尚未解决。

部署完成以后点击切换到完整版解决。

添加自定义链接

在 next 主题的 menu 加入

友情链接: /links/ || user

(不知道使用方法有没有错误

部署到服务器

输入

hexo g

生成乱七八糟的文件,将 Public 内文件丢上服务器

提升幸福感

使用 Service Worker,参考资料

添加底部版权信息

参考资料: Hexo Next下添加版权声明模块 | 每天进补一点点!

小改动:

css 插入至 source/css/_common/components/post/post.styl

HTML 内容插入至 END POST BODY 上面 div 标签的前面,将

url_for(page.path)

修改为

post.permalink

🉑