Termux 手动编译使用 ddclient 自动更新 ip 地址,从外网访问手机内部服务奶妈级教程
Termux 默认源中是没有 ddclient 二进制软件包的,需自助编译
1.准备环境
pkg install git autoconf automake libtool
mkdir ~/git && cd ~/git
2.克隆源码并编译安装
git clone https://bgithub.xyz/ddclient/ddclient.git
cd ddclient
#配置编译环境,此步骤不能省略,参数不要写错了!
./autogen
./configure --prefix=$PREFIX --sysconfdir=$PREFIX/etc --localstatedir=$PREFIX/var
make
make install
3.编辑 ddclient.conf
以 dynv6
为例:
官网:https://dynv6.com/
注意!注册时需要科学上网,有谷歌人机验证!
注册后在My Zone
区域可以看到域名,点击进入域名,在Instructions
可以看到 ddclient 的配置代码。
ddclient.conf 里面包含了各种服务商的配置代码,但没有 dynv6 的,手动配置一下。
daemon=1h
ssl=yes
protocol=dyndns2
usev6=if,if=wlan0
server=dynv6.com
login=none
password='你的 token'
example.dynv6.net
(红框中自动给出配置项)
4.设置自启动
mkdir -pv $PREFIX/var/service/ddclient
nano $PREFIX/var/service/ddclient/run
添加以下内容:
#!/data/data/com.termux/files/usr/bin/shexec ddclient 2>&1
保存关闭后,给文件添加可执行权限
chmod +x $PREFIX/var/service/ddclient/run
设置自启动
sv-enable ddclient
手动更新地址:
ddclient -daemon=0 -debug -verbose -noquiet --force
登陆 dynv6 Records
查看是否更新成功,有记录表示更新成功。
5.手动编辑脚本更新
单条命令更新
curl --silent 'http://dynv6.com/api/update?hostname=域名&token=令牌&ipv6='$(ip -6 addr list scope global |grep "inet6" | sed -n 's/.*inet6 \([0-9a-f:]\+\).*/\1/p' | head -n 1)
使用脚本
mkdir -p $PREFIX/var/service/ipv6
nano $PREFIX/var/service/run
复制以下内容到run中
#!/data/data/com.termux/files/usr/bin/shtime=''
token='your token'
name='your name'while true
docurl --silent 'https://dynv6.com/api/update?hostname='$name'&token='$token'&ipv6='$(ip -6 addr list scope global |grep "inet6" | sed -n 's/.*inet6 \([0-9a-f:]\+\).*/\1/p' | head -n 1) 2>&1echo -n "!\t"ip -6 addr list scope global |grep "inet6" | sed -n 's/.*inet6 \([0-9a-f:]\+\).*/\1/p' | head -n 1sleep $time
done
添加文件可执行
chmod +x $PREFIX/var/service/ipv6/run
sv up ipv6
查看 dynv6 后台,已经更新成功!
设置随会话启动
sv-enable ipv6
更多 Termux 玩机教程,关注订阅主题,长期更新!
参考:Termux解析公网ipv6——从全世界各地连接你的Termux_termux ipv6-CSDN博客