这篇文章记录了我2022年暑假期间调研、尝试云服务器的一些情况。
域名
域名提供:
- A:从语义名(如yiyuiii.top)到IPv4的映射
- CNAME:从语义名(如mc.yiyuiii.top)到另一域名的映射
- SRV:从语义名(如mc.yiyuiii.top)到另一域名:端口的服务映射
- 和一些其它映射
好处是提供统一的寻址方式,能够
- 避免记忆ip
- 让App自适应服务器迁移
目前最低价格在15元/年(.top域名),非常划算,预计将来会迅速涨价,建议趁早入手。
域名供应商
国外域名供应商性价比更高,有两大供应商:GoDaddy、Namesilo,价格差不多
- GoDaddy首月优惠更便宜,但续费很贵
- Namesilo始终如一,提供免费DNS,支持支付宝;控制面板略不友好
DNS解析托管商
Namesilo提供免费的DNS解析托管, 记录上传<15min,缓存更新<48h,实测30min更新完毕
- 如果不涉及频繁dns规则更改,自带的已经够用了
国内常用的DNSPod被腾讯收购后不再免费
国外的cloudflare可以提供免费的优质DNS解析托管,以及全套人性化的配置,还包含免费的SSL证书(快占坑)
云服务器
云服务器供应商有很多,国内知名的包括腾讯云、阿里云、百度云等等,但2022年的云服务器普遍很贵。
狗云
狗云专注于香港地区的云VPS,最低配置1vCPU、0.5GiB内存、10GiB SSD、50M带宽 -> 200/年,是2022-08性价比最高的云VPS。
传输速度符合带宽,可以科学上网,但网络波动较大,而且目前大陆无法通过ipv6连接香港地区。
在该云VPS上挂载Minecraft的frps时,南京frpc平均每10~30分钟会断线重连,且延迟较高,评价香港地区不适合低延时需求的Frp。
大陆外地区适合搭建V2Ray服务端。
云服务
V2Ray
V2Ray服务端搭建
该脚本可以方便地搭建服务端,推荐使用VLess协议: https://raw.githubusercontent.com/hijkpw/scripts/master/v2ray.sh
- 可以挂网站做流量混淆保护,需要域名和占用HTTPS的443端口,该功能可以顺带转发自己的github.io博客实现一举两得(
- 可选使用自己的SSL证书,该证书与域名绑定,一般需要购买,不过Cloudflare目前提供免费的SSL证书。注意WS可以穿过Cloudflare的CDN服务,但TCP不行。
一个比较好的介绍: https://ssrvps.org/archives/10138
V2Ray客户端
注意:部分官方版本有bug,可尝试回退
FRP
樱花frp
樱花frp的免费线路负载很高,实际带宽~1M,购买VIP线路后带宽有明显改善
该网站有详细的frpc配置教程
QQ机器人
概览
现有聊天机器人主要分为三部分,
- 机器人运行主体框架,包括Mirai、ZeroBot、NoneBot2等;
- 以OneBot为代表的通用聊天机器人连接规范和接口定义,其实现一般为基于聊天工具(如QQ)的特性开发的特定聊天工具-通用协议接口,包括go-cqhttp、teyda_preview等,参见 https://onebot.dev/ecosystem.html#onebot-11-10-cqhttp
- 从通用协议接口到机器人运行框架的对接,其实现一般为插件形式,包括nonebot_plugin_gocqhttp,MiraiCQ等
以NoneBot2为例,其实现层次可分为go-cqhttp -> nonebot_plugin_gocqhttp -> NoneBot2
NoneBot2
我的NoneBot2实现层次为 go-cqhttp -> nonebot_plugin_gocqhttp -> NoneBot2
go-cqhttp是目前最流行的QQ-OneBot实现;NoneBot2的插件由Python语言编程,相比于传统的Go语言编程,其二次开发门槛大大降低。
推荐在安装NoneBot2后安装nonebot_plugin_gocqhttp插件和go-cqhttp。
官方安装教程: https://v2.nonebot.dev/docs/start/installation
我推荐使用nb-cli自动化配置Bot,其部署效率大大提高
由于nb-cli安装的包默认进入python的site-packages,为方便管理python包,强烈建议使用conda或venv为NoneBot建立独立的python环境。
在部署完毕后,你可能需要一个比较细节的开发教程: https://github.com/Well2333/NoneBot2_NoobGuide
jekyll静态网站
所谓静态网站,是服务器端不会为用户自动生成新的页面,用户一般只能请求已有页面。
这样做的好处是服务器端只需存储静态页面文件,没有计算力要求,且服务器端易于集成部署和管理。
安装流程
- 安装Ruby: https://www.runoob.com/ruby/ruby-installation-unix.html
For ubuntu: sudo apt-get install ruby-full
检查安装是否成功:使用命令ruby -v
和gem -v
。
- 安装jekyll的编译前置
sudo apt-get install build-essential zlib1g-dev
- 安装jekyll: https://jekyllrb.com/docs/
gem install bundler jekyll
页面布置
参考我的布置: https://yiyuiii.github.io/posts/build-a-personal-github-page/