freenom免费域名自动续期教程

更新

2022/4/20,今天才发现作者把项目地址迁移回去了,到这里的:https://github.com/luolongfei/freenom,下方的教程依旧适用

前言

今天有几个freenom 的免费域名突然不能用了,我挂了自动续期脚本的啊,好家伙不看不知道,一看,项目作者luolongfei 原来的自动续期freenom 项目不明原因被封,估计是与早前的 GitHub Action 事件有关。今天bujj使用docker 方式部署

简介

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

准备

  • VPS:随便一台服务器都行,系统bujj喜欢Ubuntu。如果你没有 VPS,那我打个广告 ?我正在用的 Vultr ,注册就送100$
  • 宝塔里安装好docker管理器 ,或者docker一键脚本也行:curl -sSL https://get.docker.com/ | sh 

部署

1. 命令如下:

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

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

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

2. 上面这条命令只比上上条命令多了个 -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 点全时段随机的一个时间点作为执行时间, 每次重启容器都会自动重新指定。

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

修改配置文件

1.主要是修改两处,一个填写freenom 账号和密码,一处配置通知,bujj习惯用tg机器人,那就启用一下tg bot

2.在.env文件中, 将TELEGRAM_BOT_ENABLE的值改为true,即可启用 Telegram bot,同样的,将MAIL_ENABLE的值改为false即可关闭邮件推送方式。 Telegram bot 有两个配置项,一个是chatID(对应.env文件中的TELEGRAM_CHAT_ID), 通过使用你的 Telegram 账户发送/start@userinfobot即可以获取自己的id, 另一个是token(对应.env文件中的TELEGRAM_BOT_TOKEN),你的 Telegram bot 令牌,你会创建 Telegram bot 就知道怎么获取, 不多赘述。如何创建一个 Telegram bot 请参考:官方文档

3.下面我把配置文件贴出来,要修改的地方一共四处,都填入了 www.bujj.org 字样,请配置为自己的。如果你要配置多账户,请找到bujj配置多账户 字眼,并阅读前2行的注释信息,按要求填写就是了。

点开查看配置文件

#####################################################################
# 注意事项
#
# - 环境变量的格式为“键=值”,顶格写,注意等号两边不能有空格,值可以用单引号或者双引号引起来,不引也行(下面的特殊情况必须引起来)
# - 因为环境变量中“#”代表注释,若密码中存在“#”字符的,一定要使用单引号将整个密码引起来,否则解析会在“#”字符前截止,如果密码中存在单双引号的,
#    需要在单双引号前加“\”转义
# - 配置多账户不可省略单引号,且多个账户和密码的格式必须是“<账户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=www.bujj.org

# Freenom密码 Freenom password
FREENOM_PASSWORD='www.bujj.org'

# 多账户支持 Support for multiple accounts
# 多个账户和密码的格式必须是“<账户1>@<密码1>|<账户2>@<密码2>|<账户3>@<密码3>”,
# 注意不要省略“<>”符号,否则无法正确匹配。如果设置了多账户,上面的FREENOM_USERNAME 和 FREENOM_PASSWORD可不设置
MULTIPLE_ACCOUNTS='bujj配置多账户'
######################  end 账户配置  #########################

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

# 机器人邮箱密码(Gmail填密码,QQ邮箱或163邮箱填授权码) Password of the robot email
MAIL_PASSWORD=''

# 用于接收通知的邮箱 Email address used to receive notifications
TO=''

# 是否启用邮件推送功能 true:启用 false:不启用 Whether to enable email push features true: enabled false: not enabled
MAIL_ENABLE=false
######################  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='www.bujj.org'

# 你的Telegram bot的token Token for your Telegram bot
TELEGRAM_BOT_TOKEN='www.bujj.org'

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

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

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

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

4.重启docker容器

docker restart freenom

重启后消息很快就来了,有几个账号就会来几条通知消息

补充后期容器处理常用命令

查看容器在线状态及大小

docker ps -as

查看容器的运行输出日志

docker logs freenom

重新启动容器

docker restart freenom

停止容器的运行

docker stop freenom

移除容器

docker rm $name

查看 docker 容器占用 CPU,内存等信息

docker stats --no-stream
声 明 1 bujj博客:www.bujj.org
2 原创文章,转载请注明转自bujj博客:www.bujj.org
3 当前页网址:https://www.bujj.org/index.php/2021/10/04/83/
THE END
分享
二维码
< <上一篇
下一篇>>