Freenom免费顶级域名自动续期,不用烦恼手动续期的麻烦或不会续期而导致免费域名失效的问题!
前言
众所周知,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
获取源码
1 2 3 4 5 6 |
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,配置相对简单一些
1、在设置>转发和POP/IMAP
中,勾选
- 对所有邮件启用 POP
- 启用 IMAP
然后保存更改!
2.允许不安全的应用
登录谷歌邮箱后,访问谷歌权限设置界面,启用允许不完全的应用!
进行配置
1 2 3 4 5 6 7 8 |
# 复制配置文件模板 $ cp .env.example .env # 编辑配置文件 $ vim .env #若提示-bash: vim: 未找到命令 yum -y install vim ##也可用vi编辑,或宝塔后台直接进行编辑! |
添加计划任务
宝塔用户配置方法
如图设置点击宝塔面板左边的计划任务
脚本内容输入:cd /data/wwwroot/freenom/ && /usr/bin/php run
然后把php禁用函数中的putenv
删除掉
做好后可直接手动运行php验证命令即可!
1 |
cd /data/wwwroot/freenom/ && /usr/bin/php run |
无宝塔配置方法
安装PHP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
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
1 2 3 4 5 6 7 |
yum -y install cronie crontabs # 验证crond是否安装及启动 yum list cronie && systemctl status crond # 验证crontab是否安装 yum list crontabs $$ which crontab && crontab -l |
打开任务表单并编辑
1 2 3 4 5 6 7 8 |
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守护进程(每次编辑任务表单后都需此步,以使任务生效)
1 |
systemctl restart crond |
执行验证命令
1 |
cd /data/wwwroot/freenom/ && /usr/bin/php run |
看到上图所示,就说明已经部署成功了!
openwrt软路由安装–docker部署
前提是你的openwrt软路由中必须按照docker容器才可以继续下去,部落阁编译的固件都自带docker~后面提供下载连接 N1openwrt固件 X86openwrt固件
docker部署相对比较简单,同理也可以部署在你的vps上,如果部署在本地软路由中的话,那么你的邮箱推送等就必须用国内的,否则网络不通~会报错
163邮箱设置,腾讯设置大同小异,都恶心到需要发送短信开可以拿到授权码~下面以163为例
拿到授权码后开始正式安装脚本程序
SHH连接本地openwrt软路由,输入以下代码
1 |
docker run -d --name freenom --restart always -v $(pwd):/conf -v $(pwd)/logs:/app/logs luolongfei/freenom |
或者,如果你想自定义脚本执行时间,则命令如下
1 |
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扩容方法 点击这里查看
可以输入命令查看容器在线状态
1 |
docker ps -as |
看到上面信息说明已经部署成功~
下面修改配置文件 .env 文件。在root文件夹下有个.env双击打开或者输入命令
1 2 3 4 5 6 |
#进入root文件夹 cd /root #编辑.env文件 vi .env #修改完成后保存 :wq |
重载docker容器
1 |
docker restart freenom |
重启容器后,正常的话很快会收到续期报告邮件
如果报错不能正常运行,说明openwrt防火墙转发是处于关闭状态,进入网络防火墙中选择接受即可!
至此全部部署成功~
后期容器处理常用命令
查看容器的运行输出日志
1 |
docker logs freenom |
停止容器的运行
1 |
docker stop freenom |
移除容器
1 |
docker rm $name |
教程结束~
阁主,宝塔部署成功了,问题找到了,我php版本是7.0的换成7.1的,成功执行
我在vps上centos7用宝塔按照阁主的教程,提示
PHP Fatal error: Uncaught Error: Class ‘Luolongfei\Libs\Log’ not found in /data/wwwroot/freenom/run:54
Stack trace:
#0 [internal function]: customize_error_handler()
#1 {main}
thrown in /data/wwwroot/freenom/run on line 54
Fatal error: Uncaught Error: Class ‘Luolongfei\Libs\Log’ not found in /data/wwwroot/freenom/run:54
Stack trace:
#0 [internal function]: customize_error_handler()
#1 {main}
thrown in /data/wwwroot/freenom/run on line 54
这个错误是怎么回事
在本地自己虚拟1台centos主机行不?谢谢!
肯定可以啊,但为什么不在openwrt下使用呢?要比虚拟机还要简单