原委

今天下班回家一开mumble发现有延迟数值正常显示但是连不上服务器:连接服务器失败:远端主机关闭了这个连接。

排查问题

ssh home.xfox.fun 有EN经典报错:网络不可达
我还以为又宕机了,但是经过检查我的J3160活得好好的 ssh -4 -p 22022 home.xfox.fun一连就上了。
这时候再对比JiaoLoong5 nslookup回报的IPv6地址和J3160上执行ip addr返回的地址确定是DDNS出问题了,没有更新最新的ipv6地址。
看过我之前文章的同学应该知道我在使用Podman替代Docker部署NewFuture/DDNS实现ipv6 DDNS,但是在不久前更新过容器镜像后我发现服务不稳定,因为容器会自动停止运行。
自从我使用这个容器,日志里一直存在警告:
WARNING:root:Cache file is out of dated.
我不确定这是否对容器稳定性造成了影响,但是在我设定了restart=always的情况下容器还是停止了那可太玄学了。
所以我这次放弃了容器部署,直接本地从官方源码仓库部署。

开始部署

git clone https://github.com/NewFuture/DDNS

仓库文件会存储在当前目录下的DDNS文件夹里。

cd DDNS 
pyhton run.py

然后你可能得到提示:-bash: python: 未找到命令
这是因为Debain12默认安装了Python3但是默认没有将python命令软链接到pyhon3

为了解决这个问题你可以使用apt安装一个软件包:python-is-python3 (这是很久之前闲来无事apt search 发现的,没想到今天就又用上了。)如果你不想优雅的解决问题那就自己手动创建链接吧=-=。
这一步是必须的,因为NewFuture/DDNS/blob/v3.0.2/systemd.sh里写死了命令行:
ExecStart=/usr/bin/env python /usr/share/DDNS/run.py -c /etc/DDNS/config.json
所以你要么去修改源码加个3,要么....就像我现在教你的一样。
接下来执行:

sudo ./systemd.sh install

即可利用systemd注册一个名为ddns的服务。
但是需要注意一个小坑,git clone 拉下仓库文件后默认没有config.json
所以直接执行install的时候systemd.sh里的cp config.json /etc/DDNS/config.json这行压根就不会生效。
你的/etc/DDNS/里就不会有config.json
为了避免这个问题,你最好下拉仓库后先执行python run.py 让ddns脚本先在DDNS仓库文件里生成一个config.json

修改配置文件

先参考配置参数表再修改官方生成的示例配置文件。

启用服务

sudo systemctl enable ddns
sudo systemctl restart ddns

检查状态

sudo systemctl status ddns

标签: none

添加新评论