Closed ATFieldBeast closed 1 month ago
交替变化说明dig获取的IPv6也交替变化了,需要你自己验证。
如果要获取其它设备的IPv6:
交替变化说明dig获取的IPv6也交替变化了,需要你自己验证。
如果要获取其它设备的IPv6:
- 可以参考 https://github.com/jeessy2/ddns-go/wiki/%E9%80%9A%E8%BF%87%E5%91%BD%E4%BB%A4%E8%8E%B7%E5%8F%96IP%E5%8F%82%E8%80%83
- 如果能在主路由上安装ddns-go,可尝试直接在主路由安装ddns-go
这些方法好像都从局域网内拿不到主路由的wan口ip的,
我下午试了下把主路由的ssh开了,从容器里ssh进主路由,然后再ip addr那些是可以得到了,
但是在容器里执行有结果,在gui的脚本里放ssh -p xxx xxxx@ip xxx
什么的会返回ssh:not found……
;把命令写进sh脚本里再在gui的脚本里写/opt/xxxx.sh
会返回xxxx.sh not found ……
现在就不知道这最后一步在gui里怎么从ssh获得ip了
docker中不能使用ssh,没那个ssh包 可以尝试直接安装ddns-go到路由器
docker中不能使用ssh,没那个ssh包 可以尝试直接安装ddns-go到路由器
啊?我用命令行登陆,进到容器里面都跑通了啊,有ssh来着,就是gui执行不了
好像是安全机制,不能用脚本执行ssh。换个支持的?
好像是安全机制,不能用脚本执行ssh。换个支持的?
我是傻逼,我这个虚拟机的docker里装了ddnsgo和npm两个容器,结果下午一直在npm里面操作的,我也不知道为什么居然一直没发现,刚才吃了饭一看怎么好像不太对,真的是,怪不得gui里一直没用
我还说你怎么说镜像里没ssh呢,原来是npm那边有ssh
现在在ddnsgo里自己装了ssh之后一切正常了,gui也能正确获得主路由的wan口ip了
首先要生成秘钥和主路由免密登录
gui里用的命令是
ssh -T -p XXX YYY@ZZZ < ~/sshgetip/getip.sh
XXX是ssh端口,YYY是主路由登录名,ZZZ是路由器ip
getip.sh
是容器里的脚本,随便放哪,里面是ssh到路由器后执行的命令,如下
#!/bin/bash
ip -6 addr show ppp0 | grep 'inet6 240[a-f:A-F 0-9]*/64' | grep -v 'deprecated' | awk -F '[ \t]+|/' '$3 == "::1" { next;} $3 ~ /^fe80::/ { next;} /inet6/ {print $3}' | tail -1
用的就是之前大家总结的正常在本机查找的命令,ppp0要换成你的获取ipv6的网口
(终于把dig
要用到华硕的服务这个故障点干掉了,能ssh到主路由的都能这样干了
好像是安全机制,不能用脚本执行ssh。换个支持的?
我是傻逼,我这个虚拟机的docker里装了ddnsgo和npm两个容器,结果下午一直在npm里面操作的,我也不知道为什么居然一直没发现,刚才吃了饭一看怎么好像不太对,真的是,怪不得gui里一直没用
我还说你怎么说镜像里没ssh呢,原来是npm那边有ssh
现在在ddnsgo里自己装了ssh之后一切正常了,gui也能正确获得主路由的wan口ip了
首先要生成秘钥和主路由免密登录
gui里用的命令是
ssh -T -p XXX YYY@ZZZ < ~/sshgetip/getip.sh
XXX是ssh端口,YYY是主路由登录名,ZZZ是路由器ip
getip.sh
是容器里的脚本,随便放哪,里面是ssh到路由器后执行的命令,如下#!/bin/bash ip -6 addr show ppp0 | grep 'inet6 240[a-f:A-F 0-9]*/64' | grep -v 'deprecated' | awk -F '[ \t]+|/' '$3 == "::1" { next;} $3 ~ /^fe80::/ { next;} /inet6/ {print $3}' | tail -1
用的就是之前大家总结的正常在本机查找的命令,ppp0要换成你的获取ipv6的网口
(终于把
dig
要用到华硕的服务这个故障点干掉了,能ssh到主路由的都能这样干了
简化版:
echo $(ssh root@192.168.1.1 'ip -6 route get 240c::6666') | grep -oE 'src.*$' | awk {'print $2'}
好像是安全机制,不能用脚本执行ssh。换个支持的?
我是傻逼,我这个虚拟机的docker里装了ddnsgo和npm两个容器,结果下午一直在npm里面操作的,我也不知道为什么居然一直没发现,刚才吃了饭一看怎么好像不太对,真的是,怪不得gui里一直没用 我还说你怎么说镜像里没ssh呢,原来是npm那边有ssh 现在在ddnsgo里自己装了ssh之后一切正常了,gui也能正确获得主路由的wan口ip了 首先要生成秘钥和主路由免密登录 gui里用的命令是
ssh -T -p XXX YYY@ZZZ < ~/sshgetip/getip.sh
XXX是ssh端口,YYY是主路由登录名,ZZZ是路由器ipgetip.sh
是容器里的脚本,随便放哪,里面是ssh到路由器后执行的命令,如下#!/bin/bash ip -6 addr show ppp0 | grep 'inet6 240[a-f:A-F 0-9]*/64' | grep -v 'deprecated' | awk -F '[ \t]+|/' '$3 == "::1" { next;} $3 ~ /^fe80::/ { next;} /inet6/ {print $3}' | tail -1
用的就是之前大家总结的正常在本机查找的命令,ppp0要换成你的获取ipv6的网口 (终于把
dig
要用到华硕的服务这个故障点干掉了,能ssh到主路由的都能这样干了简化版:
echo $(ssh root@192.168.1.1 'ip -6 route get 240c::6666') | grep -oE 'src.*$' | awk {'print $2'}
我就是没整清楚ssh执行命令的时候“”里面还有“”怎么写,转义什么的试了还是报错,才把获取ipv6的命令放脚本里了的,没转过弯可以先不grep,得到完整的返回结果,再在本地grep这样也行(不过放脚本里在gui里看着也挺整洁就是
我目前的情况与你一样,也是华硕路由器,想在群晖NAS上 Docker 中跑 ddns-go,我准备用你之前 dig 方案,但是镜像中没有 dig 命令,所以想问一下您是改了 Dockerfile 重新构建了镜像不,可以分享一下 Dockerfile 不,我有 Mac 电脑,可能还涉及到交叉编译,如果不在 Mac 上编译镜像也还可以选择在NAS上编译,但是NAS还没装 make 命令,所以想问一下您的方案
我目前的情况与你一样,也是华硕路由器,想在群晖NAS上 Docker 中跑 ddns-go,我准备用你之前 dig 方案,但是镜像中没有 dig 命令,所以想问一下您是改了 Dockerfile 重新构建了镜像不,可以分享一下 Dockerfile 不,我有 Mac 电脑,可能还涉及到交叉编译,如果不在 Mac 上编译镜像也还可以选择在NAS上编译,但是NAS还没装 make 命令,所以想问一下您的方案
啊,我是用的docker compose,pull镜像的时候就会自动调用dockerfile来build(不过dockerfile不是用的docker build命令么,也没用make啊) docker-compose.yml:
# version: '3.9'
services:
ddnsGo:
image: ddns-go:mod
build:
context: ../dockerfile
dockerfile: ddnsGoMod
container_name: ddnsGo
restart: always
network_mode: host
environment:
- TZ=Asia/Shanghai
volumes:
- ./ddnsGo:/root
对应调用的dockerfile:
FROM jeessy/ddns-go:latest
RUN apk update && \
apk add --no-cache openssh
我这里是装了后面改进的ssh,要用dig换成dig就是
我用你这个 Dockerfile 在NAS上构建了一个镜像,已经可以用了,我选择的是你之前 dig 方案,多谢~
问题描述
我的主路由ip是#531这里说所用dig获取的
dig +short aaaa *******.asuscomm.com
发现在主路由ip发生变更后会在两小时内反复的获取到新ip和旧ip,交替解析到dnspod是不是ip变化后dig会有两条记录呢(当时在睡觉没有马上手动dig一下),但是为什么顺序一直在规律变化
另外有没有什么办法能在虚拟机的docker中直接获得主路由的ipv6呢,用ip neigh只有ipv4的网关地址和内网ipv6地址(而且主路由自己得到的ipv6前缀和分配下去的前缀并不一样
DNS服务商
DnsPod
是否已搜索同类问题
已搜索,但未能解决
操作系统
Linux
架构
x86_64
版本
v6.5.0
安装方式
Docker
额外信息
No response