有个 ubuntu 服务器安装了 anaconda 平常用来跑跑数据,但是拿到的权限太小,没有 root 权限,只能跑代码用。蛋疼的是内网 IP 完全连不通,只能用公网 IP,时不时服务器就断一下。每次都要别人帮忙看公网 IP,太麻烦了。
自己写了 py 代码后 crontab 每隔 10 分钟获取一次 IP 用 sever 酱推送到微信,但是有可能几天才变一次 IP,推送总要置顶,太笨。
现在有两个更好解决方案:
1、写一个 py 脚本,ip 变化时通知 BUT:从 members.3322.org/dyndns/getip 拿到的数据格式有点问题(b'1.1.1.1\n'),处理不了
2、直接用 aliyunDDNS BUT:大部分需要装阿里云从 github.com/NewFuture/DDNS 拿到的 py 脚本都可以调试成功,但是定时任务 sudo ./task.sh 命令没权限
系统调用 python 只能用 py3 自带的库,pip 之类的是不行的。 除了 py 如果有 shell 脚本也可以,谢谢!
1
mouyase 2019-11-18 04:32:33 +08:00 via Android
试试 DDNS ?
|
2
sagaxu 2019-11-18 04:54:07 +08:00 via Android
我用 dnspod,不用写代码,curl 定时调用
|
8
eason1874 2019-11-18 06:28:09 +08:00
你这个 getip 网址返回内容只是多了个换行符,恐怕是最简单的接口了,这也处理不了吗?
你不说你用哪个 DNS 怎么给你例子啊。用 DNSPod 就简单,鉴权就一个参数,签名都不用,从新写个例子就几分钟的事,但 DNSPod 不支持子域名接入,你要从阿里云 DNS 换过来的话得整个迁入。 DNSPod 文档 : https://www.dnspod.cn/docs/records.html#dns |
9
jinqzzz 2019-11-18 06:29:00 +08:00
|
10
deepdark 2019-11-18 07:09:37 +08:00 via Android
我是 crontab 每隔 5 分钟调用一次脚本,脚本内容是,获取当前公网地址,然后用 dnspod 的 api 更新 ip 地址,比较简单
|
11
dangyuluo 2019-11-18 07:22:39 +08:00
直接写 shell+crontab,把 IP 保存到 /tmp/ip 文件里,然后每次对比是否变化,再用 PushBullet 推送,只需要 curl 就可以
|
12
ik 2019-11-18 07:30:46 +08:00 via iPhone
计划任务不需要 sudo 权限吧?
|
13
sutra 2019-11-18 07:49:41 +08:00
找一个能用 curl 命令上报的 DDNS 服务就可以了,没必要非得用 aliyunDDNS。
|
14
l4ever 2019-11-18 08:33:38 +08:00
dnspod aliyun 不都有 API 么.
shell 更新 ip 不是什么难事吧. |
15
lbp0200 2019-11-18 08:58:47 +08:00 via iPhone
上古时代,都是直接发邮件的
|
16
liuky 2019-11-18 09:29:10 +08:00
用 docker 部署你的 python 程序, 在你的 docker 容器里面你想怎么干就怎么干
|
17
imdong 2019-11-18 09:50:11 +08:00
继续用 server 酱,加入 IP 不变就不推送的逻辑。
推送成功后保存到 ip.txt 文件内。 推送前读取这个文件,如果内容一直直接退出即可。 三行代码搞定。 |
18
jon 2019-11-18 09:59:19 +08:00
lz 头像详细希望?
|
20
shuizhengqi 2019-11-18 10:05:35 +08:00
https://github.com/shuizhengqi1/aliddns 以前写过一个,只要用你的阿里云 ak 替换就行,然后里面写上你要修改的域名
|
21
xiri 2019-11-18 10:22:19 +08:00
为什么不修改推送逻辑,让它只在 ip 发生变动时才推送呢?
只需要每次推送完之后把 ip 保存下来,然后每次检测的时候对比一下,不一样才推消息就行了 |
22
opengps 2019-11-18 10:53:30 +08:00
花生壳动态解析需要实名了,不然我会直接推荐你在目标网络内部装个花生壳
|
23
doyel 2019-11-18 11:20:01 +08:00
我上古时代自己写过个 curl 获取类似 ip138 网页内容然后截取,如果 ip 变了发邮件的。。。自己循环自己。。。10 分钟完成用了好多年。。。然后公网 IP 没了。。。
|
24
szxczyc OP @shuizhengqi #20 pip 无权限
|
25
Lunatic1 2019-11-18 14:54:37 +08:00
|
26
oceanTu 2019-11-19 10:49:02 +08:00
用 freemyip.com 做 DDNS
1. 去 www.freemyip.com 申请一个二级域名 2. crontab 定时任务,10 分钟刷一遍 */10 * * * * curl "https://freemyip.com/update?token=#YOUR_TOKEN#&domain=#YOUR_DDNS_NAME#.freemyip.com&myip=$(/sbin/ifconfig eno1 |/bin/grep netmask |/usr/bin/awk '{print $2}')" >/dev/null 2>&1 |