众所周知,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
|
教程结束~