前言
众所周知,freenom是全球唯一一个提供免费顶级域名服务的域名商,注册使用期限为3个月-12个月之间,当然,我们大多数都会选择12个月为期限的,到期急需要到官网上续期!虽然可以永久免费,但是操作起来有点麻烦了!
当然,github上有一位大佬,写了一个定时检测freenom域名到期续签的项目,这样个项目主要目的就是检测你账号下的域名是否到期,或到期续签,也许大家这个脚本有点鸡肋,但对于一个或多个账号下的多个域名来说,这个自动续签脚本简直就是神器,当你有10个或20个域名的时候,到期你要去续签这么多的域名先不说累死,烦估计都要烦死!还是要你都记得这些域名到期的前提下!那有了这个脚本后,一切都将变的简单起来!
这里我们还是要感谢一下github上luolongfei大神的这个项目,为我们提供了便捷节约了大量的时间!再次表示感谢!好了,废话不多说,下面开始教程
教程开始
开始之前,还是要先啰嗦一句,之前luolongfei大佬的这个项目是基于GitHub的action来做自动续签任务的,但GitHub 官方不允许使用 github action 做签到或者续期类应用,否则会封禁项目甚至封号,所以,之前接触过这个项目的小伙伴尽量删除GitHub action里的项目,以免账号被封或禁止!因为这个原因,作者也删除了action的运行方式,改用vps部署运行!下面的教程就是基于vps部署方式进行
准备工作
vps一台
系统centos7 php7.1以上
部署项目到vps
获取源码
mkdir -p /data/wwwroot/freenom
cd /data/wwwroot/freenom
#clone本仓库源码
git clone https://github.com/luolongfei/freenom.git ./
#提示-bash: git: 未找到命令
yum -y install git
配置发信邮箱,这里推荐gmail,配置相对简单一些(通过测试发现GMAIL因安全问题不成功,建议使用163邮箱,密码要填动态密钥,不是登陆密码)
1、在
设置>转发和POP/IMAP
中,勾选
- 对所有邮件启用 POP
- 启用 IMAP
然后保存更改!
2.允许不安全的应用
登录谷歌邮箱后,访问谷歌权限设置界面,启用允许不完全的应用!
进行配置
# 复制配置文件模板
$ cp .env.example .env
# 编辑配置文件
$ vim .env
#若提示-bash: vim: 未找到命令
yum -y install vim
##也可用vi编辑,或宝塔后台直接进行编辑!
添加计划任务
宝塔用户配置方法
如图设置点击宝塔面板左边的计划任务
脚本内容输入:
cd /data/wwwroot/freenom/ && /usr/bin/php run
然后把php禁用函数中的
putenv
删除掉
做好后可直接手动运行php验证命令即可!
cd /data/wwwroot/freenom/ && /usr/bin/php run
无宝塔配置方法
安装PHP
yum install epel-release -y #安装 WEBTATIC 源 rpm -ivh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm #查看yum软件仓库里面有没有 PHP yum search php71w #安装php及扩展 yum install php71w php71w-fpm \ php71w-cli php71w-common php71w-devel php71w-gd \ php71w-pdo php71w-mysql php71w-mbstring php71w-bcmath \ php71w-pecl-redis #启动php systemctl start php-fpm #启动 systemctl stop php-fpm #关闭 systemctl restart php-fpm #重启
安装crontabs以及cronie
yum -y install cronie crontabs
# 验证crond是否安装及启动
yum list cronie && systemctl status crond
# 验证crontab是否安装
yum list crontabs $$ which crontab && crontab -l
打开任务表单并编辑
crontab -e
# 任务内容如下
#确定php位置
whereis php
# 此任务的含义是在每天早上9点执行/data/wwwroot/freenom/路径下的run文件
# 注意:某些情况下,crontab可能找不到你的php路径,下面的命令执行后会在freenom_crontab.log文件输出错误信息,你应该指定php路径:把下面的php替换为/usr/local/php/bin/php(根据实际情况)
10 09 * * * cd /data/wwwroot/freenom/ && /usr/bin/php run > freenom_crontab.log 2>&1
重启crond守护进程(每次编辑任务表单后都需此步,以使任务生效)
systemctl restart crond
执行验证命令
cd /data/wwwroot/freenom/ && /usr/bin/php run
看到上图所示,就说明已经部署成功了!
openwrt软路由安装–docker部署
前提是你的openwrt软路由中必须按照docker容器才可以继续下去,部落阁编译的固件都自带docker~后面提供下载连接 N1openwrt固件 X86openwrt固件
docker部署相对比较简单,同理也可以部署在你的vps上,如果部署在本地软路由中的话,那么你的邮箱推送等就必须用国内的,否则网络不通~会报错
163邮箱设置,腾讯设置大同小异,都恶心到需要发送短信开可以拿到授权码~下面以163为例
拿到授权码后开始正式安装脚本程序
SHH连接本地openwrt软路由,输入以下代码
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
上面这条命令只比上上条命令多了个
-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 点全时段随机的一个时间点作为执行时间, 每次重启容器都会自动重新指定。
执行完上面命令后,没有报错,说明程序已经运行起来了~
如果报错,先查看是否docker容器空间不足,给openwrt下docker扩容方法 点击这里查看
可以输入命令查看容器在线状态
docker ps -as
看到上面信息说明已经部署成功~
下面修改配置文件 .env 文件。在root文件夹下有个.env双击打开或者输入命令
#进入root文件夹
cd /root
#编辑.env文件
vi .env
#修改完成后保存
:wq
重载docker容器
docker restart freenom
启容器后,正常的话很快会收到续期报告邮件
如果报错不能正常运行,说明openwrt防火墙转发是处于关闭状态,进入网络防火墙中选择接受即可!
至此全部部署成功~
后期容器处理常用命令
查看容器的运行输出日志
docker logs freenom
停止容器的运行
docker stop freenom
移除容器
docker rm $name
教程结束~