VPS能做什么(总结几个我正在用的服务的配置过程)

1 写在前面

VPS, Virtual Private Servers,中文即虚拟专用服务器

虽说入坑vps也有两年了,说来惭愧我至今仍分不清VPS、虚拟主机、云主机等一些专有名词的关系。
最近感觉自己对VPS的需求越来越高,入门级的小鸡已经空间不足了,故决定放弃续费几年前入手的bandwagon祖传vps。(翻出了最开始的账单,这种价位的搬瓦工现在也很少了、经常缺货中)

这段时间试了试阿里云(国内的话网站要备份,很多推荐国际站香港的服务器)、cloudcone(便宜,但感觉不稳),最终选择了大厂Vultr的产品;一个月$10(我选的硅谷机房)还是有点心痛的,但至少方便管理些、所有服务都能放在一台机器上。
说到VPS、很多情况下还要牵涉到域名,我现在有两个域名:一个专门做博客、一个配置各种服务,都转移到了cloudflare上管理,域名续费一年的开支是$8.18+$8.03,累计起来每年要花近1000块,也算的上一笔不小的开支了(但相对于各种手游手一抖就是518,似乎也不算什么)。
那么回归正题,VPS能为我带来些什么呢? 记得最开始是fq、到后来的密码管理、网盘分享、webdv存文献、bt下载、NAS外网访问、qq机器人…
下面系统地记录一下自己用VPS搭建这些服务的步骤:(fq除外、我怕ip被封影响其他服务)

2 Bitwarden,密码管理服务

之前的一篇post有讲过具体搭建步骤,但废话比较多,我也懒得改了。新手还可以一看,和大佬一比也只能是班门弄斧了;
这次还是也顺便回顾下。

2.1 安装docker、docker-compose

推荐去网上找一个一键安装脚本、省时省力,我在My_vimrc(最初用来记录vim个人配置)这个仓库整理了一些折腾vps时用到的脚本,接下来讲到的一些配置文件也有放里面。

2.2 配置文件(docker-compose.yml)

文件目录如下,其中bw-data中存放密码数据,最好及时备份,迁移到另一台vps时将这个文件夹拷贝覆盖就行。

~/bitwarden
├── bw-data
│   ├── db.sqlite3
│   ├── icon_cache
│   ├── rsa_key.der
│   ├── rsa_key.pem
│   └── rsa_key.pub.der
└── docker-compose.yml

docker-compose.yml文件如下:

version: "3"

services:
  bitwarden:
    image: bitwardenrs/server
    restart: always
    ports:
    - "8080:80"
    - "8081:3012"
    volumes:
      - ./bw-data:/data
    environment:
      WEBSOCKET_ENABLED: "true"
      SIGNUPS_ALLOWED: "false"          #允许注册,配置的时候打开,之后关闭就行
      WEB_VAULT_ENABLED: "true"         #允许网页访问,配置好了可以关闭

其中左侧的8080端口(之后访问bitwarden的web页面所用端口)和8081端口(忘了啥用)可以随意改动,不过注意不要和其他服务端口冲突了(说个常识:http默认80端口、https默认443端口)。

2.3 运行服务

docker-compose.yml目录下运行 sudo docker-compose up -d。 若未报错则访问http://vps_ip:8080应该能打开如下页面,但要正常使用还需配置https
常用命令:

sudo docker ps  #列出当前的containers
sudo docker-compose down&&sudo docker-compose up -d #先停止并移除,再创建并启用
sudo docker-compose build --pull    # build、rebuild,有些情况下不需要用这步

2.4 设置nginx代理(需要域名,并在托管商处申请到SSL证书)

  1. 我的域名托管在cloudflare故以它为例,先添加一个DNS的A记录,名称我设置的是bitwarden,以后就通过bitwarden.yourdomain.com访问bitwarden服务。

  2. 之后在SSL/TLS选项中的边缘证书可以申请一个,保存好cert.pemcert.key文件。

  3. 安装nginx,并进入配置文件夹,将之前获得的cert.pemcert.key复制到/etc/nginx中。

sudo apt-get install nginx;
cd  /etc/nginx;
  1. /etc/nginx/conf.d/中新建default.conf,并编辑:
sudo vim /etc/nginx/conf.d/default.conf;

加入如下内容:(更多配置请参考官方文档

# bitwarden
# 需要改的地方已用注释标出
server {
  listen 443 ssl http2;
  server_name yourdomain.com;  #这里改成自己的域名(之前DNS解析了的)
  client_max_body_size 128M;
  ssl on;
  ssl_certificate cert.pem;         #之前获得的SSL证书
  ssl_certificate_key cert.key;
  ssl_session_timeout 5m;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
  ssl_prefer_server_ciphers on;
  location / {
    proxy_pass http://127.0.0.1:8080;       #这里8080对应前面docker-compose里的设置,127.0.0.1代表本机ip
    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_set_header X-Forwarded-Proto $scheme;
  }
  location /notifications/hub {
    proxy_pass http://127.0.0.1:8081;   #8081也对应前面设置
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
  }
  location /notifications/hub/negotiate {
    proxy_pass http://127.0.0.1:8080;   #8080对应前面设置
  }
  # Optionally add extra authentication besides the AUTH_TOKEN
  # If you don't want this, leave this part out
  location /admin {
    # See: https://docs.nginx.com/nginx/admin-guide/security-controls/configuring-http-basic-authentication/
    auth_basic "Private";
    auth_basic_user_file /path/to/htpasswd_file;
    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_set_header X-Forwarded-Proto $scheme;
    proxy_pass http://127.0.0.1:8080;   #8080对应前面设置
  }
}

2.5 定时备份数据

  1. 需要先配置好github环境,用私钥免密码登录github(我把这一步写成了一个脚本,方便自己在别的机器上配置。)由于github配置因人而异、比较个性化,需要参考的话可以在My_vimrc仓库找到。
    我习惯保管好一对密钥,免得每次都要重新生成;关于非对称加密知识可以参考我之前的post

  2. 先建立远程备份仓库并和本地绑定。

cd ~/bitwarden/bw-data      #改成自己bitwarden所在位置
git init
git remote add origin [email protected]:xxxx/xxxx.git  #自己在github建的空仓库,这里用SSH进行clone
git add -A
git commit -m "first push"
git push -u origin master
  1. 建立定时上传github的脚本,备份bw-data文件夹。
cd ~
sudo timedatectl set-timezone Asia/Shanghai; #修改系统时区
cat >> backUp_Bitwarden.sh << EOF
#!/bin/sh

date=\$(date '+%Y-%m-%d %H:%M')
cd ~/bitwarden/bw-data
git add -A
git commit -m "backup at $date"
git push
EOF
chmod +x backUp_Bitwarden.sh;
  1. 定时任务crontab建立。
# 每天13:00备份一次
echo "00 13  * * * bash ~/backUp_Bitwarden.sh> ~/backup.log 2>&1 &">bt.cron;
crontab bt.cron;
rm -rf bt.cron;
crontab -l; #查看是否设置成功

3 Webdav,同步Zotero文献

以前都是用坚果云存Zotero里的文献,方便在多设备同步。但随着文献数量越来越多,自己又经常做一些标注、修改,坚果云的免费空间已经完全不够用了,遂在VPS上搭一个webdav服务来存文献。

3.1 docker-compose文件配置

Webcam搭建起来很简单,只需要一个docker-compose.yml文件就行了,我选择在~/webdav建立服务:

version: '3'
services:
  webdav:
    image: bytemark/webdav
    restart: always
    ports:
      - "8082:80"
    environment:
      AUTH_TYPE: Digest
      USERNAME: yourname    #用户名
      PASSWORD: yourpasswd  #密码
    volumes:
    # :左边为数据保存路径
      - /srv/dav:/var/lib/dav

3.2 Zotero软件设置

  1. 运行sudo docker-compose up -d后访问http://vps_ip:8082,应该会跳出如下弹窗,说明配置成功。

  1. 打开Zotero,编辑-首选项-同步-文件同步-使用WebDAV,填入地址、用户名和密码,点击验证服务器,会提示创建zotero文件夹,之后验证成功后就可以愉快地同步了~

  2. 注意,这个webdav是为内存比较小的VPS准备的,如果还要装nextcloud的话就没必要用这个了(nextcloud自带webdav,主页面左下角点击就是地址,账号密码输入nextcloud设置的admin用户就行)。

4 Nextcloud,私人网盘

Nextcloud是一套用于创建网络硬盘的客户端-服务器软件。其功能与Dropbox相近,但Nextcloud是自由及开放源代码软件,每个人都可以在私人服务器上安装并运行它。

4.1 docker-compose文件配置

文件夹结构如下:


~/nextcloud
├── app
│   └── Dockerfile
├── db.env
├── docker-compose.yml
└── web
    ├── Dockerfile
    └── nginx.conf

下面贴出每个文件的内容:

  • docker-compose.yml
version: '3'

# 运行后数据储存在/var/lib/docker/volumes下的nextcloud_db和nextcloud_nextcloud文件夹下
services:
  db:
    image: mariadb
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    restart: always
    volumes:
      - db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=        #这里需要填入要设定的初始密码
    env_file:
      - db.env

  redis:
    image: redis:alpine
    restart: always
    # command: redis-server --requirepass 123456      #这里的123456和后面redis密码对应,没啥用(为了解决部署后日志中一个bug);
    # 这一项设置后会拖慢上传速度,故取消

  app:
      #image: nextcloud:fpm-alpine
    build: ./app
    restart: always
    volumes:
      - nextcloud:/var/www/html
    environment:
        REDIS_HOST: redis
        # REDIS_HOST_PASSWORD: 123456     #和前面对应,值不重要
        # 这一项设置后会拖慢上传速度,故取消
        MYSQL_HOST: db
    env_file:
      - db.env
    depends_on:
      - db
      - redis

  web:
    build: ./web
    restart: always
    ports:
      - 8083:80         #设置访问端口
    volumes:
      - nextcloud:/var/www/html:ro
    depends_on:
      - app

  cron:
    image: nextcloud:fpm-alpine
    restart: always
    volumes:
      - nextcloud:/var/www/html
    entrypoint: /cron.sh
    depends_on:
      - db
      - redis

volumes:
  db:
  nextcloud:
  • db.env
MYSQL_PASSWORD=
MYSQL_DATABASE=nextcloud
MYSQL_USER=nextcloud
NEXTCLOUD_TRUSTED_DOMAINS=nextcloud.tdbrywwwcg.xyz

这里的密码和docker-compose.yml里要一致,USER随便起,NEXTCLOUD_TRUSTED_DOMAINS填自己的域名,后面配置代理。

  • app/Dockerfile
FROM nextcloud:fpm-alpine

RUN set -ex; \
    \
    apk add --no-cache \
        ffmpeg \
        imagemagick \
        procps \
        samba-client \
#       libreoffice \
    ;

RUN set -ex; \
    \
    apk add --no-cache --virtual .build-deps \
        $PHPIZE_DEPS \
        imap-dev \
        krb5-dev \
        openssl-dev \
        samba-dev \
        bzip2-dev \
    ; \
    \
    docker-php-ext-configure imap --with-kerberos --with-imap-ssl; \
    docker-php-ext-install \
        bz2 \
        imap \
    ; \
    pecl install smbclient; \
    docker-php-ext-enable smbclient; \
    \
    runDeps="$( \
        scanelf --needed --nobanner --format '%n#p' --recursive /usr/local/lib/php/extensions \
            | tr ',' '\n' \
            | sort -u \
            | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \
    )"; \
    apk add --virtual .nextcloud-phpext-rundeps $runDeps; \
    apk del .build-deps

配置这部分是为了之后在nextcloud里挂载Onedrive、GoogleDrive这些外部储存,需要用到smbclient等套件;很多教程没有这部分,而是通过安装好后再输入几个命令去配置、显得比较麻烦。

  • web/nginx.confweb/Dockerfile

nextcloud直接在docker里配置了nginx代理,不需要再在/etc/nginx中加,而且对新手来说内容比较复杂,故照搬example里的就行了。

4.2 个人建议

  1. 建立好上面的几个文件就可以构建了(国内的vps下载速度慢、可能要花很久)。
sudo docker-compose build --pull;
sudo docker-compose up -d;
  1. 访问http://vps_ip:8083,不出意外应该能显示登录页面了。

  2. 如果不是对nginx很熟悉,非常不推荐设置nextcloud的反向代理。因为自己设置好后虽然能访问,很经常出现各种bug:上传错误、图标不显示、网址链接错误…

踩了上面说的这些坑之后我也看了很多别人的设置,但仍未找到比较完美的解决方案,但一想不配置http、https也能用,只是网址比较难看而已,最终选择了妥协

5 Sharelist,分享工具

ShareList 是一个易用的网盘工具,支持快速挂载 GoogleDrive、OneDrive ,可通过插件扩展功能。
它的优点体现在支持的网盘种类比较多,而且配置一次后只要拷贝配置文件就可以很方便在不同机器上部署。

5.1 部署服务

cd ~
git clone https://github.com/reruin/sharelist && cd sharelist
vim docker-compose.yml

docker-compose.yml中可修改端口,之后一样运行sudo docker-compose up -d

version: "3"
services:
  sharelist:
    image: reruin/sharelist
    volumes:
      - $HOME/sharelist:/sharelist/cache
    ports:
      - "8084:33001"        #我把sharelist放在8084端口
  • 覆盖配置文件(可选)。

如果之前用过sharelist、现在只是换了个机器部署的话,只需要拷贝覆盖目录中的config.json

5.2 nginx代理配置

/etc/nginx/conf.d/default.conf中加入如下内容:

# sharelist
server {
  listen 443 ssl http2;
  server_name yourdomain.com;       #填入自己的域名
  # Specify SSL config if using a shared one.
  #include conf.d/ssl/ssl.conf;
  # Allow large attachments
  ssl on;
  ssl_certificate cert.pem;
  ssl_certificate_key cert.key;
  ssl_session_timeout 5m;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
  ssl_prefer_server_ciphers on;
  location / {
    proxy_pass http://127.0.0.1:8084;       #设置的sharelist端口
      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_set_header X-Forwarded-Proto $scheme;

      proxy_set_header Range $http_range;
      proxy_set_header If-Range $http_if_range;
      proxy_no_cache $http_range $http_if_range;
  }
}

6 Aria2,下载利器

Aria2是一款自由、跨平台命令行界面的下载管理器,该软件根据GPLv2许可证进行分发。支持的下载协议有:HTTP、HTTPS、FTP、Bittorrent和Metalink。

我用的是P3TERX大佬的Aria2-ProDocker镜像,安装很简单:
由于Aria2只是个命令行,是否安装好了没法直接看出来,需要配置服务端并能连接成功才算成功了第一步;接着下载一个种子试试就知道了。

6.1 服务端安装

cd ~
git clone https://github.com/P3TERX/Docker-Aria2-Pro && cd Docker-Aria2-Pro;
# 把<TOKEN>改成要设置的密码
sudo docker run -d \
    --name aria2-pro \
    --restart unless-stopped \
    --log-opt max-size=1m \
    -e PUID=$UID \
    -e PGID=$GID \
    -e RPC_SECRET=<TOKEN> \
    -e RPC_PORT=6800 \
    -p 6800:6800 \
    -e LISTEN_PORT=6888 \
    -p 6888:6888 \
    -p 6888:6888/udp \
    -v ~/aria2-config:/config \
    -v ~/downloads:/downloads \
    p3terx/aria2-pro

安装好后可以在~/aria2-config文件夹修改配置。

6.2 AriaNg, web客户端

下载一个AriaNg的html文件,连接上服务端就可以开始用了。
AriaNg的Web界面

7 Zdir,目录列表

Zdir是一款使用PHP开发的目录列表程序,无需数据库,体积小巧,功能完善。

我一般用它直接访问Aria2下载好的文件,部署也很简单:

  1. 下载一键安装脚本,按照说明来配置。

  2. zdir文件夹里修改相关模板文件。(懂一点html知识就行)
    我的Zdir,图为Aria2下载文件夹

  3. nginx代理配置:

#zdir
server {
    listen 80;
    server_name  yourdomain.com;
    location / {
       proxy_pass http://127.0.0.1:1080;    #zdir端口,可以通过改脚本修改
       proxy_redirect off;
       proxy_set_header Host $host;
       client_max_body_size 50m;
           client_body_buffer_size 256k;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_max_temp_file_size 200m;
  }

location ~ .*\.(js|css|woff|woff2|gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)?$ {
       proxy_pass http://127.0.0.1:1080;
       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;
       expires 7d;
        access_log off;
  }
}

8 frp,NAS内网穿透

8.1 win10虚拟机上安装黑群晖

具体安装步骤和文件我传到了Nextcloud里,这里注意虚拟机的网络一定要设置成桥接模式,原理可以参照这张路由器的图来说明:

当选择非桥接模式时虚拟机相当于上面的路由器2,其处在win10主机派生出的局域网下,而win10主机和其他同一WIFI下的设备处于同一个上级局域网中,上级网络无法访问下级网络。
同样外网设备(不在路由器1的局域网下)也无法直接访问到NAS,常见的解决方法有两个:

  1. 路由器1改成桥接模式,并设置端口转发;这种方式要求要有公网IP、并且路由器改模式可能需要向运营商申请,总的来说很麻烦。
  2. 内网穿透,需要一个VPS和域名,利用VPS作为中转服务器将两个客户端相连。比较常用的内网穿透工具是国人开发的frp

8.2 内网访问NAS

在win10中通过cmdipconfig获取到本机ip,如果前面设置正确,同一局域网下的其他设备应该能通过http://win10_ip:5000访问到NAS主页(具体端口参考群晖官网)。

## client(客户端)frpc配置
## server(服务端)frps配置 ~

8.3 内网穿透从入坑到放弃

frp的配置分为客户端和服务端,客户端(也就是黑群晖)可以开一个docker运行frpc,服务端(VPS)开一个screen运行frps,当然前提是写好配置文件。
说下我踩到的坑吧,第一天配置挺好可以正常访问、Nginx代理文件都写好了。结果第二天不知怎么的各种http proxy EOF错误,怎么改都弄不好,折腾了一个下午最终放弃了。

9 yobot,手游机器人

yobot 是为公主连接公会战设计的辅助机器人,能够帮助公会战管理者提供自动化管理服务。 yobot 提供了群聊、web 页面两套用户交互方式,具有操作便捷、通知及时、数据详细的特点。 基于 QQ 的部分已不再支持,本项目正在向其他平台迁移

按照官网上的Linux-Mirai部署方式一步步来就行,注意QQ号必须先在VPS上登录并挂几天、不然容易被封或被屏蔽消息。



以下内容更新于2020-08-07 14:19:12

10 Calibre-web,个人书库

10.1 介绍

最近开始用Calibre整理书籍了,之前都是下载一本、往ipad里一丢、看完就不管了(有时随手就删了),导致想翻一翻之前看过的书都找不到地方; 并且因为自己在日亚买的正版书有版权限制,只能用注册过的kindle看,不方便管理。Calibre这款软件能很好解决我的需求:

  1. 可以搜索书籍的元数据,整理起来很方便轻松。
  2. DeDRM插件能去除版权限制,可以将书籍转为epub等主流格式方便非kindle阅读器查看。
  3. 结合Calibre-web,搭建线上图书馆(相比于桌面版增加了一些功能,也更便于分享)。

10.2 VPS中用docker-compose安装

  1. 建一个books(名称随意)文件夹并进入;

  2. 建立一个docker-compose.yml文件,内容如下:

version: "3"

services:
  calibre-web:
    # 体验后还是这个image最好用
    image: technosoft2000/calibre-web
    container_name: calibre-web
    environment:
        - PUID= 1000     #run `id` in shell to get id for a user
        - PGID= 1000
        - SET_CONTAINER_TIMEZONE= true
        - CONTAINER_TIMEZONE= Asia/Shanghai
    volumes:
        - ./calibre:/books  #存放书籍和app.db等数据库
        # 我喜欢全放一个文件夹,方便管理
        - ./calibre-web/app:/calibre-web/app
        - ./calibre-web/kindlegen:/calibre-web/kindlegen
        - ./calibre-web/config:/calibre-web/config
    ports:
        # 左边为外部端口,不要和其他服务冲突就行
        - "8085:8083"
    restart: always
  1. 运行sudo docker-compose up -d,访问http://vps_ip:8085,在web中初始化、路径输入/books

  2. 若输入后报错则是文件夹权限的问题,我一般用sudo chmod -R 777 *这种粗暴的方式解决。

10.3 群晖NAS中用docker安装

  1. 映像中搜索calibre-web,找到technosoft2000/calibre-web并下载;

  2. 创建容器-高级设置-启动自动重新启动卷-添加文件夹如下:

  1. 运行状态可在详情-终端机中查看(拉去github资源需要一段时间);

  2. 进入web配置,出错则检查http用户是否对文件夹具有完全控制权限。

10.4 备份

书籍的所有数据都在docker内的/books文件夹下(即外部的pathTo/books/calibre),其中metadata.dbmetadata_db_prefs_backup.json以及书籍文件夹是和桌面版calibre软件互通的,也就是可以互相拷贝覆盖。app.dbgdrive.db记录了calibre-web上的一些操作(如书架设置、用户名和密码、googleDrive设置),需要将服务迁移到另一台机器上时记得备份这些文件。



以下内容更新于2020-11-13 23:22:02

11 Leanote,私有云笔记

蚂蚁笔记虽然几年前就已经没更新了,但基本的功能挺全的,作为私有云笔记用起来没啥问题。我尝试了一个多月感觉还行,支持markdown、可以传图片、IOS下也有app、网页就能直接访问、备份方便…总之个人强力推荐吧,看了一些其他支持私人部署的笔记平台也都差不多的样。

我用的是docker部署的方式,比较无脑,而且这个仓库是大佬整合制作的镜像,有不同版本可供选择(视vps配置),反正我512M内存祖传vps运行完全版Leanote也毫无压力。

12 FileRun,私人网盘

与之前的Nextcloud相比,FileRun私人网盘体积更加轻盈,部署起来没有那么多糟心的坑,也支持Webdav,适合部署在低配的机器上,只是传一传小文件(抱歉、低配硬盘根本不够用)、用webdav同步下一些app的数据(如OmniFocus之类的)。

配置过程及其简单,官网https://docs.filerun.com/docker里说的明明白白,顶多改一改volumes方便换vps时同步数据、或者改一改文件夹权限之类的,不像nextcloud真的是各种错误(虽然nextcloud的功能确实强大、加上各种插件、社区也很活跃)。

13 删去一些不必要的服务

用了一段时间后清理了一些平时基本不怎么用的服务,最后只留下BitwardenLeanote、和FileRun,别的比如nextcloud、Aria2、Calibre-web放到了我的群晖NAS(越用越香)上,最近手头有点紧,能省则省吧(最终还是不肯放弃bandwagon的祖传小鸡、被自己啪啪打脸)。

Author: zcp
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint polocy. If reproduced, please indicate source zcp !
评论
 Previous
NHK72h补全计划
都说互联网是有记忆的,每当我寻找以前看过的某集记录片却发现被全网下架了的时候就会开始质疑这句话。但后来一想,记忆本身就不是什么可靠的东西,会被遗忘、被美化、被篡改。ドキュメント72時間(NHK纪实72小时)是我一直唯一坚持看的纪录片。一方面
Next 
总结下最近看的几部生存题材的漫画
1 近况最近一直处在很咸鱼的状态,一方面是因为疫情的原因、处在一个几乎没有人督促的环境下,学习效率非常低;但说到底这也是个借口,有点迷茫、对今后的生活缺乏考量、逃避现实这类词语比较合适吧。当然并不是很闲没事做,毕业设计还有大块要做
  TOC