通常对于新刷了 Armbian 系统的开发板,初次使用需要准备一条网线或者 USB 串口线才能进入系统连接 Wifi。
而实际上,Orange Pi 开发板的 USB OTG 供电口本身就已经集成了 USB-TTL 芯片。插上电脑给开发板供电就可以识别到新的串口,Win10 和 Mac 都自带驱动,Linux 下更不用说。
在 Armbian 系统里也可以找到这个串口,就是 /dev/ttyGS0
设备。不过,ttyGS0
虽然和 ttyS0
一样开启了控制台,但没有 ttyS0
调试口的开机关机输出信息。当然,对于初次登录系统就足够用了。
在 github 搜了很多 golang gpio 库,结果还是用了很久没更新的 github.com/davecheney/gpio
上个周末入手了一台斐讯 K2,然后刷机了 Padavan 固件。
开启了 SS 和 Adbyby 之后,发现路由器 CPU 负载和空闲内存都还很理想,所以就申请了 6Plat 个人用企业账号(需填写《6Plat企业模块申请单》,申请方为个人,附上姓名、身份证号码和手机,另外还需要公网 IP,动态 IP 需要设置 DDNS)。
发送申请邮件后,很快就收到配置信息,有五项配置,分别是:
- 6plat 端公网 IPv4 地址:
118.145.*.*
- 6plat 端 6in4 隧道 IPv6 地址:
*:*:*::1/64
- 您的设备 6in4 隧道 IPv6 地址:
*:*:*::2/64
- 您可用 IPv6 网段:
*:*:*::/48
- IPv6 防污染 DNS:
240c::6666
但 Padavan 是 WAN 中配置 IPv6,相关配置项目名称并不是一一对应,特别是 IPv6 内网地址的配置。
- IPv6 连接类型:
Tunnle 6in4
- IPv6 硬件加速:
否
- 6in4 远程端点 (IPv4):
118.145.*.*
对应 6plat 端公网 IPv4 地址
- 隧道 MTU:
1480
- 隧道 TTL:
64
- IPv6 外网地址:
*:*:*::2
对应 您的设备 6in4 隧道 IPv6 地址,不需要 /64
见下
- IPv6 外网前缀长度:
64
- IPv6 外网默认网关:
*:*:*::1
对应 6plat 端 6in4 隧道 IPv6 地址,不需要 /64
见上
- DNSv6 服务器 1:
240c::6666
对应 IPv6 防污染 DNS
- DNSv6 服务器 2:
2001:4860:4860::8888
备用的 Google IPv6 DNS
- DNSv6 服务器 3:
2001:4860:4860::8844
备用的 Google IPv6 DNS
- IPv6 内网地址:
*:*:*:1::1
对应 您可用 IPv6 网段,只需要选用一个子网段,所以在原有配置中间加了一个 :1
- IPv6 内网前缀长度:
64
只使用了 /64
- 启用 LAN 路由器通告:
是
- 启用 LAN DHCPv6 服务器:
Stateless (*)
HSTS 是 HTTP Strict Transport Security,即 HTTP 严格传输安全。也就是强制使用 https 访问网站。之前有过配置,但现在 Chrome 有内置离线数据库支持 HSTS,直接在 Chrome 安装时就知道指定的域名开启了 HSTS。
HPKP 是 HTTP Public Key Pinning,即 HTTP 公钥固定。让浏览器可以缓存服务器证书指纹,因为服务器证书会经常性更新,所以一般提供的指纹是上级颁发者的中级证书指纹。
加上前段时间配置了 IPv6 访问,现在剩下的就只有 DNSCrypt 没有配置了。
Let’s Encrypt 申请证书的 ACME 协议支持三种认证,分别是:
- 基于 80 端口的 http-01
- 基于 443 端口的 tls-sni-02
- 无需端口的 dns-01
dns-01
需要在 DNS 服务器增加对应的 TXT 记录来完成验证。
Caddy 现在有官方的 tls.dns.dnspod 插件支持托管在 Dnspod 的域名使用 dns-01
来申请 Let’s Encrypt 证书。
首先,需要在 Dnspod 用户中心的安全设置中申请 API Token,复制其 ID 和 TOKEN。
然后,修改 Caddy 服务配置脚本,比如 sysvinit 系统的 /etc/init.d/caddy
在 export CADDYPATH=/etc/ssl/caddy
后面增加一行:
export DNSPOD_API_KEY="$ID,$TOKEN"
就是用 ID 和 TOKEN 以英文逗号分割的字符串。
最后,就是在对应的 Caddyfile 文件配置中启用:
tls {
dns dnspod
}
如果有配置多个域名,第一次启动会比较缓慢。因为需要每个域名依次申请证书。
题外话:
- 树莓派 1 代在下载 Caddy 时需要在 PLATFORM 选择 Linux ARMv6,然后在 PLUGINS 中选择 tls.dns.dnspod 即可。
- 如果 Dnspod 自己支持 DDNS 接口,不过一般路由器比如 TP-LINK 系都会支持花生壳 DDNS,自动在路由连接时登记,比定时脚本要靠谱很多。自己的域名只需要在 Dnspod 中 CNAME 到花生壳的免费域名。
- 一般情况,运营商不会开放 80 端口,但 443 端口是开放的。只需要在路由器将 443 端口转发给内网设备。
- Caddy 可以作为前端反向代理系统的其他的 http 服务,只需要每个服务多建一个域名即可。
因为众所周知的原因,StartSSL 已经不合适再继续使用了。而且 Let’s Encrypt 也足够好用。
Ubuntu 下直接使用 ppa:certbot/certbot 即可。只是因为脚本各种更新导致配置凌乱,现在应该稳定了。
并且,出于安全原因,90 天有效的证书似乎更好~
上半年就计划升级了,但是正好遇上换工作,连 GitLab 的事情都耽搁下来,也就一直拖着。
工作的事情算是稍微告一段落,至少可以把自己用编码上摘出来。再加上前段时间把开发环境也试着转移到 xenial 的 7.0 下。所以,最终决定把服务器转移,并升级到新系统、新环境。
看了一下博客,已经是半年时间没有写过任何东西。长期以来,这里只是偶尔间随笔一样的东西。但这段时间都没坚持。
毕竟,最近越来越感觉到生活的压力。
只有 1G 内存的 openvz VPS 又不能自由配置 swap 实在是跑不起 GitLab。
常年 90% 以上的内存占有率导致 php5-fpm 总是新进程申请不到足够的内存可用,导致 nginx 502。
考虑到私人 git 所需功能不多,就将原本跑在树莓派上的 gogs 迁移到 vps。然后直接在服务器上找到原来 gitlab 的 bare 目录,一个一个 git push –mirror 到 gogs 地址。
难道是上周手贱把网站主域名提交到百度站长的原因?
因为后端的 php5-fpm 新进程没有足够的内存可以申请,所以 nginx 就直接秒返回 502。
因为 vps 是 openvz 系统,也无法自行设置 swap 分区,无解了。郁闷。