前言
家用的那臺(tái)服務(wù)器,一直使用的是ipv6
進(jìn)行訪問,動(dòng)態(tài)解析使用的是dynv6
提供的免費(fèi)ddsn服務(wù),最近退下來一部紅米note7 6+64手機(jī),性能放在現(xiàn)在也還是OK的,就拿來折騰一下Termux
,于是想把dynv6
服務(wù)也搬到Termux上來,但使用官方推薦的小腳本死活跑不起來,毛病一大堆,于是還是老老實(shí)實(shí)自己寫個(gè)API
調(diào)用腳本和定時(shí)任務(wù)吧,于是有了這篇文章。
下面從零開始教你一步步實(shí)現(xiàn)Termux的公網(wǎng)訪問。
Termux的安裝配置就不再說了,實(shí)在不知道的可以去翻翻專欄前幾篇文章。
一些準(zhǔn)備工作
首先確保你的寬帶
及撥號(hào)路由器
支持ipv6,確認(rèn)方法:
安裝一下依賴包:
pkg install iproute2
獲取Termux的IP6地址:
ip -6 addr list scope global |grep "inet6" | sed -n 's/.*inet6 \([0-9a-f:]\+\).*/\1/p' | head -n 1
再ping
一下看看能不能通:
ping6 $(ip -6 addr list scope global |grep "inet6" | sed -n 's/.*inet6 \([0-9a-f:]\+\).*/\1/p' | head -n 1)
如果這兩步都能成功,那么恭喜你的寬帶和路由都完美至此ipv6,可以接著往下看了,如果不支持的話,(就不需要往下看了),可以考慮換個(gè)寬帶或者路由器再來。
這里需要注意,二級(jí)路由是無法分配公網(wǎng)
ipv6
的,如果你是光貓撥號(hào),然后lan-wan
連接其他路由,那么這個(gè)路由器就無法為下屬設(shè)備提供公網(wǎng)ipv6,建議光貓改為橋接
或者lan-lan
連接其他路由,或者使用光貓本身的WiFi功能
。
下面進(jìn)入正題。
1. 登錄dynv6獲取域名
登錄dynv6官網(wǎng):https://dynv6.com/ ,點(diǎn)擊Sign up
使用郵箱注冊(cè)賬號(hào):
之后你的注冊(cè)郵箱會(huì)收到一條驗(yàn)證郵件,點(diǎn)開它:
使用的是谷歌的人機(jī)驗(yàn)證服務(wù),確保你能訪問谷歌服務(wù),如果你沒有出現(xiàn)這個(gè)按鈕,就是無法訪問谷歌,網(wǎng)絡(luò)問題自行解決:
通過驗(yàn)證后登錄賬號(hào),點(diǎn)擊My Zones
免費(fèi)申請(qǐng)一個(gè)域名:
按上圖填寫完成后點(diǎn)擊Create Zene
,申請(qǐng)成功,會(huì)自動(dòng)跳轉(zhuǎn)以下界面,頁面拉到最下面,記下這兩樣?xùn)|西:
2.在Tremux上配置域名解析
先安裝依賴包:
pkg install curl -y
curl
用來調(diào)用API向dnyv6
傳遞ipv6地址。
① 手動(dòng)向dnyv6傳遞IP地址
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)
其中域名和令牌是剛剛第一步最后讓你記下的。如果一切正常的話應(yīng)該能看見addresses updated
的執(zhí)行結(jié)果了:
如果沒有結(jié)果輸出,檢查一下命令有沒有復(fù)制錯(cuò),令牌和域名有沒有填寫正確。
然后再次登錄:https://dynv6.com/ ,依次點(diǎn)擊My Zones
-> 你的域名
-> Records
,就能在下方看見剛剛傳遞的ipv6地址了。
此時(shí)ipv6的域名解析已經(jīng)完成,試試用域名訪問你的Termux服務(wù)試試:
噢噢噢!完美!
關(guān)于Nginx配置ipv6訪問,教程在這:《Termux開發(fā)環(huán)境搭建——Nginx》
②設(shè)置開機(jī)自啟及定時(shí)任務(wù)
安裝基礎(chǔ)組件:
pkg install termux-services
關(guān)于termux-services
的使用方法,我在這里講過了:Termux設(shè)置——服務(wù)自啟動(dòng),有興趣的可以自己去看看,這里就直接使用它了。
首先配置自動(dòng)解析腳本:
mkdir -p $PREFIX/var/service/dynv6_ato
cd $PREFIX/var/service/dynv6_ato
vim $PREFIX/var/service/dynv6_ato/dynv6.sh
添加以下內(nèi)容:
#!/data/data/com.termux/files/usr/bin/sh
time=$3
token=$2
name=$1
while true
do
curl --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)
echo -n "!\t"
ip -6 addr list scope global |grep "inet6" | sed -n 's/.*inet6 \([0-9a-f:]\+\).*/\1/p' | head -n 1
sleep $time
done
然后配置自啟動(dòng)腳本run
:
vim $PREFIX/var/service/dynv6_ato/run
添加內(nèi)容:
#!/data/data/com.termux/files/usr/bin/sh
exec 2>&1
exec $PREFIX/var/service/dynv6_ato/dynv6.sh 域名 令牌 同步間隔時(shí)間 2>&1
注意替換里面的域名
令牌
和同步間隔時(shí)間
三個(gè)參數(shù),間隔時(shí)間
單位為秒,建議60~300
。
最后配置日志腳本:
mkdir -p $PREFIX/var/service/dynv6_ato/log
vim $PREFIX/var/service/dynv6_ato/log/run
添加以下內(nèi)容:
#!/data/data/com.termux/files/usr/bin/sh
svlogger="/data/data/com.termux/files/usr/share/termux-services/svlogger"
exec "${svlogger}" "$@"
編寫完三個(gè)腳本以后記得要給他們賦予其執(zhí)行權(quán)限:
chmod +x $PREFIX/var/service/dynv6_ato/dynv6.sh
chmod +x $PREFIX/var/service/dynv6_ato/run
chmod +x $PREFIX/var/service/dynv6_ato/log/run
使自啟動(dòng)服務(wù)生效:
sv-enable dynv6_ato
重啟Termux,過一段時(shí)間查看日志文件
cat $PREFIX/var/log/sv/dynv6_ato/current
在使用中發(fā)現(xiàn),更新頻率太高,時(shí)間久了日志文件就會(huì)變得十分臃腫,可以考慮添加一個(gè)清理日志的定時(shí)任務(wù),這里我就不在說了。文章來源:http://www.zghlxwxcb.cn/news/detail-424721.html
?文章來源地址http://www.zghlxwxcb.cn/news/detail-424721.html
快速導(dǎo)航 | |||
???????? ?? Termux開發(fā)環(huán)境搭建 | Termux外置硬盤掛載——rclone & WebDav 掛載網(wǎng)盤 ?????????? |
到了這里,關(guān)于Termux解析公網(wǎng)ipv6——從全世界各地連接你的Termux的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!