什么是DDNS-GO
DDNS-GO是由jeessy2大佬开发的DDNS软件(项目地址及详细介绍:https://github.com/jeessy2/ddns-go),是笔者用过的最好用的DDNS软件,具有如下特性:

支持的系统 Mac、Windows、Linux系统(ARM、x86架构)
支持的域名服务商 阿里云、腾讯云(DNSPod)、Cloudflare、华为云
获取IP的方式 接口、网卡
域名个数 支持多个、多级域名同时解析
其他特性 支持Docker部署,支持以服务的方式运行,可以设置登录密码,Web管理界面
功能非常丰富,同时也非常简单易用。

部署并配置DDNS-GO
①下载并解压DDNS-GO
首先到github下载DDNS-GO,下载地址:https://github.com/jeessy2/ddns-go/releases
如果你的Armbian设备是64位的,如N1、R3300-L、我家云等就选arm64,如果是玩客云这样的32位设备就选armv6。
②部署DDNS-GO
打开终端,输入下面的命令,赋予ddns-go执行权:

chmod +x ddns-go

然后输入下面的命令安装ddns-go:

./ddns-go -s install
如果不是root用户要在前面加sudo即
sudo ./ddns-go -s install

这样安装会把ddns-go安装成一个开机自启的系统服务,可以很方便的用service或systemctl进行管理:

开启ddns-go:
service ddns-go start

关闭ddns-go:
service ddns-go stop

查看ddns-go状态:
service ddns-go status

或者用systemctl

开启ddns-go:
systemctl start ddns-go

关闭ddns-go:
systemctl stop ddns-go

查看ddns-go状态:
systemctl status ddns-go

设置ddns-go开机自启:
systemctl enable ddns-go

关闭ddns-go开机自启:
systemctl disable ddns-go

本文将指导如何在 Debian 11 和 Ubuntu 22.04 下安装 Docker 以及 Docker Compose。

PS:本文同时适用于 Debian 10 Buster 以及 Ubuntu 20.04 Focal

什么是 Docker?
Docker 是一种容器化技术,可以在服务器上快速搭建容器并在不污染宿主机的情况下运行软件,而不再需要安装配置各种环境。开源 Docker 社区致力于改进这类技术,并免费提供给所有用户,使之获益。

什么是 Docker Compose?
传统模式下运维人员需要运行 docker run 来启动各种容器,一旦容器过多,就无法一次性记住所有的运行参数和命令,这时候我们可以使用 Docker Compose 来解决这个问题。

Docker Compose 是一种工具,用于帮助定义和共享多容器应用程序。 通过 Compose,你可以创建 YAML 文件来定义服务,并且只需一个命令,就可以启动或清理所有内容。使用 Compose 的巨大优点是,你可以在文件中定义应用程序堆栈,使其位于项目存储库的根目录下(它现在受版本控制),并方便其他人参与你的项目。 其他人只需克隆你的存储库即可开始撰写应用。 事实上,你可能会看到 GitHub/GitLab 上的很多项目现在都是这样做的。(via 使用 Docker Compose)

使用官方源安装 Docker
以下操作需要在 root 用户下完成,请使用 sudo -i 或 su root 切换到 root 用户进行操作。

首先,安装一些必要的软件包:

apt update
apt upgrade -y
apt install curl vim wget gnupg dpkg apt-transport-https lsb-release ca-certificates
然后加入 Docker 的 GPG 公钥和 apt 源:

Debian
Ubuntu

curl -sSL https://download.docker.com/linux/debian/gpg | gpg --dearmor > /usr/share/keyrings/docker-ce.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-ce.gpg] https://download.docker.com/linux/debian $(lsb_release -sc) stable" > /etc/apt/sources.list.d/docker.list
国内机器可以用清华 TUNA的国内源:

Debian
Ubuntu

curl -sS https://download.docker.com/linux/debian/gpg | gpg --dearmor > /usr/share/keyrings/docker-ce.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-ce.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian $(lsb_release -sc) stable" > /etc/apt/sources.list.d/docker.list
然后更新系统后即可安装 Docker CE:

apt update
apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
此时可以使用 docker version 命令检查是否安装成功:

root@debian ~ # docker version
Client: Docker Engine - Community
Version: 20.10.22
API version: 1.41
Go version: go1.18.9
Git commit: 3a2c30b
Built: Thu Dec 15 22:28:22 2022
OS/Arch: linux/amd64
Context: default
Experimental: true

Server: Docker Engine - Community
Engine:
Version: 20.10.22
API version: 1.41 (minimum version 1.12)
Go version: go1.18.9
Git commit: 42c8b31
Built: Thu Dec 15 22:26:14 2022
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.14
GitCommit: 9ba4b250366a5ddde94bb7c9d1def331423aa323
runc:
Version: 1.1.4
GitCommit: v1.1.4-0-g5fd4c4d
docker-init:
Version: 0.19.0
GitCommit: de40ad0
如果需要某个特定用户可以用 Docker rootless 模式运行 Docker,那么可以把这个用户也加入 docker 组,比如我们把 www-data 用户加进去:

apt install docker-ce-rootless-extras
sudo usermod -aG docker www-data
安装 Docker Compose
因为我们已经安装了 docker-compose-plugin,所以 Docker 目前已经自带 docker compose 命令,基本上可以替代 docker-compose:

root@debian ~ # docker compose version
Docker Compose version v2.14.1
如果某些镜像或命令不兼容,则我们还可以单独安装 Docker Compose:

我们可以使用 Docker 官方发布的 Github 直接安装最新版本:

curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-Linux-x86_64 > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
此时可以使用 docker-compose version 命令检查是否安装成功:

root@debian ~ # docker-compose version
Docker Compose version v2.14.2
修改 Docker 配置
以下配置会增加一段自定义内网 IPv6 地址,开启容器的 IPv6 功能,以及限制日志文件大小,防止 Docker 日志塞满硬盘(泪的教训):

cat > /etc/docker/daemon.json << EOF
{

"log-driver": "json-file",
"log-opts": {
    "max-size": "20m",
    "max-file": "3"
},
"ipv6": true,
"fixed-cidr-v6": "fd00:dead:beef:c0::/80",
"experimental":true,
"ip6tables":true

}
EOF
然后重启 Docker 服务:

systemctl restart docker
好了,我们已经安装好了 Docker 和 Docker Compose,然后就可以开始愉快的安装各种软件,限于篇幅,我们不再赘述,今后慢慢介绍安装各种 Docker 软件的方法。

如果出现无法打开GitHub网页/网站的情况,以采用以下方法解决。不管是使用Linux还是Windows操作系统,都得修改hosts文件(不同的操作系统其文件位置不一样),然后增加GitHub的IP地址和网址。

问题

访问GitHub网站出现的错误

注:其实访问Google、Twitter、Youtube也是超时错误的,通常超时情况一般都是网络原因。

通常的解决方法

第一步:打开ip138或IP/Dns查询工具,查询github.com和raw.githubusercontent.com的IP地址。请记录下检测列表里的TTL值最小的IP。

第二步:在Linux系统下用超级用户的身份打开/etc/hosts文件,将IP地址和网址按格式写入文件内。

第三步:保存文件,重启浏览器或电脑。

附1:hosts文件的路径

如果是Windows系统,多数在C:\Windows\System32\drivers\etc\目录中。

如果是Linux系统,包括Android、Mac、iPhone和大多数UNIX,则都在/etc/目录中,如Deepin 20系统的在/etc/hosts(参考:Deepin V20系统的初始默认/etc/hosts文件内容)。

附2:改hosts文件,在最下方增加以下代码

注意说明:已经亲测可用,能正常访问GitHub网页,但仅做参考,不保证长期有效。

GitHub Start

140.82.114.4 github.com

140.82.113.4 gist.github.com

185.199.108.153 assets-cdn.github.com

199.232.96.133 raw.githubusercontent.com

199.232.96.133 gist.githubusercontent.com

199.232.96.133 cloud.githubusercontent.com

199.232.96.133 camo.githubusercontent.com

199.232.96.133 avatars.githubusercontent.com

199.232.96.133 avatars0.githubusercontent.com

199.232.96.133 avatars1.githubusercontent.com

199.232.96.133 avatars2.githubusercontent.com

199.232.96.133 avatars3.githubusercontent.com

199.232.96.133 avatars4.githubusercontent.com

199.232.96.133 avatars5.githubusercontent.com

199.232.96.133 avatars6.githubusercontent.com

199.232.96.133 avatars7.githubusercontent.com

199.232.96.133 avatars8.githubusercontent.com

GitHub End

结语

通常访问不了GitHub网页跟Windows或Linux操作系统和浏览器无关,而是网络问题,一般GitHub是大的网站,服务器通常是没有问题的,我们只需要修改hosts文件并增加相应的IP和网址即可。

修改配置
1.先选择从浏览器打开ssh连接服务器
连接登录成功后,输入以下命令

sudo -i #切换到root
passwd #修改密码
然后会要求输入新密码,然后再重复一次密码,输入密码的时候不会显示出来,所以直接输入密码,然后回车,再然后重复输入密码回车。

修改root密码完成

2.接着修改SSH配置文件/etc/ssh/sshd_config

vi /etc/ssh/sshd_config #编辑文件
找到以下内容并修改

PermitRootLogin yes //默认为no,需要开启root用户访问改为yes
PasswordAuthentication yes //默认为no,改为yes开启密码登陆
修改完成后,再下按 esc 键,然后再输入

:wq #保存并退出
3.最后重启下服务器即可

reboot #重启服务器

更新说明:更新v5.1.13版本主控

cdnfly自建云端搭建方法:

用以下源码搭建一个站点,绑定域名auth.cdnfly.cn、monitor.cdnfly.cn,注意需要配置伪静态:
https://vkceyugu.cdn.bspapp.com/VKCEYUGU-10b3891b-be67-4103-a60f-9da1d057470c/b46c7891-1c1a-486e-96f5-a47daa1f8535.zip

cdnfly主控安装方法:

修改hosts,将 auth.cdnfly.cn、monitor.cdnfly.cn 这2个域名指向刚才的自建云端服务器IP

执行以下命令安装主控:
curl http://auth.cdnfly.cn/master.sh -o master.sh && chmod +x master.sh && ./master.sh --es-dir /home/es
复制代码

已安装过官方版的破解方法:

修改hosts,将 auth.cdnfly.cn、monitor.cdnfly.cn 这2个域名指向刚才的自建云端服务器IP

执行以下命令完成破解:
wget http://auth.cdnfly.cn/cdnfly/api.py -O /opt/venv/lib/python2.7/site-packages/requests/api.py
supervisorctl -c /opt/cdnfly/master/conf/supervisord.conf reload
复制代码

云端节点监控功能说明:

监控默认是使用云端服务器去请求CDN节点,因此要保持云端和CDN节点之间的网络畅通。另外如果是用宝塔面板,php不要安装bt_safe扩展,否则无法使用tcp类型监控;如果要用ping类型监控,还需要允许exec函数。
支持多节点监控(和官方一样),要添加其它监控节点,可以编辑config.php配置文件,根据里面的注释说明添加。