freenom免费域名自动续期

发布时间: 2022-10-04

使用脚本来自动续期freenom免费域名还是很有必要的,很多童鞋都有几十个免费域名,手动续期真是个体力活。之前的教程因为作者提供的git actions方式导致仓库被封,所以这个方式已经不能使用,好在作者更新了docker,目前我们可以使用docker来部署这个脚本。

这篇文章就来说说如何用docker的方式来为freenom免费域名自动续期。

1、简介

项目:https://github.com/luolongfei/next-freenom

docker:https://hub.docker.com/r/luolongfei/freenom

2、准备

1)准备一台vps

2)安装好docker管理器

3)配置发信telegram bot,这里就不多讲解了,各位根据自己使用的邮箱服务器进行配置即可。

3、通过 Docker 部署

如果你有自己的服务器,这是最推荐的部署方式。

Docker 仓库地址为: https://hub.docker.com/r/luolongfei/freenom ,同样欢迎 star 。 此镜像支持的架构为linux/amd64linux/arm64linux/ppc64lelinux/s390xlinux/386linux/arm/v7linux/arm/v6, 理论上支持群晖 、威联通树莓派以及各种类型的VPS

1、安装 Docker

1.1 以 root 用户登录,执行一键脚本安装 Docker

升级源并安装软件(下面两行命令二选一,根据你自己的系统)

Debian / Ubuntu

apt-get update && apt-get install -y wget vim

CentOS

yum update && yum install -y wget vim

执行此命令等候自动安装 Docker

wget -qO- get.docker.com | bash

说明:请使用 KVM 架构的 VPS,OpenVZ 架构的 VPS 不支持安装 Docker,另外 CentOS 8 不支持用此脚本来安装 Docker。 更多关于 Docker 安装的内容参考 Docker 官方安装指南 。

1.2 针对 Docker 执行以下命令

启动 Docker 服务

systemctl start docker

查看 Docker 运行状态

systemctl status docker

将 Docker 服务加入开机自启动

systemctl enable docker

2、通过 Docker 部署域名续期脚本

1)使用ssh软件链接到你的服务器,在命令行使用如下命令:

docker run -d --name freenom --restart always -v $(pwd):/conf -v $(pwd)/logs:/app/logs luolongfei/freenom

2)或者,如果你想自定义脚本执行时间,则命令如下

docker run -d --name freenom --restart always -v $(pwd):/conf -v $(pwd)/logs:/app/logs -e RUN_AT="11:24" luolongfei/freenom

3)上面这条命令只比上上条命令多了个 -e RUN_AT="11:24",其中11:24表示在北京时间每天的 11:24 执行续期任务,你可以自定义这个时间。 这里的RUN_AT参数同时也支持 CRON 命令里的时间形式,比如, -e RUN_AT="9 11 * * *",表示每天北京时间 11:09 执行续期任务, 如果你不想每天执行任务,只想隔几天执行,只用修改RUN_AT的值即可。

注意:不推荐自定义脚本执行时间。因为你可能跟很多人定义的是同一个时间点,这样可能导致所有人都是同一时间向 Freenom 的服务器发起请求, 使得 Freenom 无法稳定提供服务。而如果你不自定义时间,程序会自动指定北京时间 06 ~ 23 点全时段随机的一个时间点作为执行时间, 每次重启容器都会自动重新指定。

4)至此,你的自动续期容器就跑起来了,执行ls -a后你就可以看到在你的当前目录下,有一个.env文件和一个logs目录,logs目录里面存放的是程序日志, 而.env则是配置文件,现在直接执行vim .env.env文件里的所有配置项改为你自己的并保存即可。然后重启容器,如果配置正确的话,便很快可以收到相关邮件。

5)如何验证你的配置是否正确呢?

修改并保存.env文件后,执行docker restart freenom重启容器,等待 5 秒钟左右,然后执行docker logs freenom查看输出内容, 观察输出内容中有执行成功字样,则表示配置无误。如果你还来不及配置送信邮箱等内容,可先停用邮件功能。

6)修改.env文件,具体如下:修改后,参考:【5)如何验证你的配置是否正确呢?】部署

##################################################################### 
# 注意事项 
# 
# - 环境变量的格式为“键=值”,顶格写,注意等号两边不能有空格,值可以用单引号或者双引号引起来,不引也行(下面的特殊情况必须引起来) 
# - 因为环境变量中“#”代表注释,若密码中存在“#”字符的,一定要使用单引号将整个密码引起来,否则解析会在“#”字符前截止,如果密码中存在单双引号的, 
# 需要在单双引号前加“\”转义 
# - 配置多账户不可省略单引号,且多个账户和密码的格式必须是“<账户1>@<密码1>|<账户2>@<密码2>|<账户3>@<密码3>”,不要有空格,就算有程序也会给你干掉 
# e.g. MULTIPLE_ACCOUNTS='<账户1>@<密码1>|<账户2>@<密码2>|<账户3>@<密码3>' 
# 注意不要省略“<>”符号,否则无法正确匹配 
# - 若你只有单个账户,只配置FREENOM_USERNAME和FREENOM_PASSWORD就够了 
# - 单账户和多账户的配置会被合并在一起读取并去重 
##################################################################### 
  
###################### 账户配置 Account config ######################### 
# Freenom账户 Freenom Account 
FREENOM_USERNAME=admin@qq.com 

# Freenom密码 Freenom password 
FREENOM_PASSWORD='cnboyorg' 

# 多账户支持 Support for multiple accounts 
MULTIPLE_ACCOUNTS='' 
###################### end 账户配置 ######################### 

###################### 通知邮件配置 Email config ######################### 
# 机器人邮箱账户 Email of robot 
MAIL_USERNAME=llf.push@gmail.com 

# 机器人邮箱密码(Gmail填密码,QQ邮箱或163邮箱填授权码) Password of the robot email 
MAIL_PASSWORD='ljflasjflsfsfsfsfsaf' 
  
# 用于接收通知的邮箱 Email address used to receive notifications 
TO='88888@qq.com' 

# 是否启用邮件推送功能 true:启用 false:不启用 Whether to enable email push features true: enabled false: not enabled 
MAIL_ENABLE=true 
###################### end 通知邮件配置 ######################### 
  
###################### Telegram bot ######################### 
# 可选配置,通过 Telegram bot 发送通知消息 This is an optional configuration to send notification messages via Telegram bot 
# 你的chat_id,通过发送“/start”给@userinfobot可以获取自己的id Your chat_id, you can get your own id by sending "/start" to @userinfobot 
TELEGRAM_CHAT_ID='123456789' 

# 你的Telegram bot的token Token for your Telegram bot 
TELEGRAM_BOT_TOKEN='9190:AAHggsghdgdgsdg' 

# 是否启用 Telegram Bot 功能 true:启用 false:不启用 Whether to enable Telegram Bot features true: enabled false: not enabled 
TELEGRAM_BOT_ENABLE=false 
###################### end Telegram bot ######################### 

# 通知频率 0:仅当有续期操作的时候 1:每次执行 Notification frequency 0: Only when there is a renewal operation 1: Each execution 
NOTICE_FREQ=1 

# 在 Github Actions 上运行 Run on github actions 
ON_GITHUB_ACTIONS=false 

# 是否验证服务器证书 Whether to verify server certificate 
VERIFY_SSL=false 

# 是否开启 Debug 模式 Whether to enable debug mode 
DEBUG=false

4、效果

当然你也可以使用tg来推送消息,在env都有详细介绍!

5、最后

如果你不想每次执行都收到推送,请将 .env 中 NOTICE_FREQ 的值设为0,使程序只在有续期操作时才推送,其他的也没啥好说的,有需要的童鞋可以折腾起来啦。

请在下方留下您的评论.加入TG吹水群