個人動態功能變數名稱管理系統。Personal DDNS. 來源: "https://www.cnblogs.com/osnosn/p/10591431.html" 來自 "osnosn的博客" 簡單又實用的動態功能變數名稱管理系統, 自建動態功能變數名稱管理系統 使用 bind9 + php + mysql , 創建個人 ...
個人動態功能變數名稱管理系統. Personal-DDNS.
來源: https://www.cnblogs.com/osnosn/p/10591431.html 來自osnosn博客
寫於: 2019-03-24.
簡單又實用的動態功能變數名稱管理系統, 自建動態功能變數名稱管理系統
使用 bind9 + php + mysql , 創建個人的動態功能變數名稱系統。
Use bind9 + php + mysql , create a personal ddns server, update by an URL. Only support "A","AAAA","TXT" recorder.
項目地址 https://github.com/osnosn/personal-ddns/
條件
- 首先,需要一個有管理權的功能變數名稱。
- 其次,需要一個有固定IP的伺服器。
設置功能變數名稱 (需功能變數名稱管理權)
- 在功能變數名稱商系統中增加一個二級功能變數名稱,和對應的IP。IP指向你的伺服器。
- 比如你擁有的功能變數名稱是 "mydomain.net"
- 設二級功能變數名稱
dns.mydomain.net
- 你可以用類似
abc.ddns.mydoman.net
,xxx.ddns.mydoman.net
作為你的動態功能變數名稱。
- 設二級功能變數名稱
- 比如你的伺服器IP是"1.1.1.1"
在功能變數名稱商的解析系統中增加這兩條記錄。
ddns.mydomain.net A 1.1.1.1 ddns.mydomain.net NS ddns.mydomain.net.
- 比如你擁有的功能變數名稱是 "mydomain.net"
設置bind9 (需伺服器root許可權)
- 我用的是centos7
裝 bind-chroot-9.4.4
yum install bind-chroot bind-utils
bind老是出漏洞,裝個chroot版感覺安全點。 修改配置文件 /etc/named.conf
options { listen-on port 53 { 127.0.0.1; any; }; listen-on-v6 port 53 { ::1; any; }; allow-query { localhost; any; }; recursion no; allow-recursion { localhost; }; allow-transfer { localhost; }; }; include "/etc/named.rfc1912.zones";
以上條目,原來有的保留。不相同的就修改。原來沒有的就添加。
修改/etc/named.rfc1912.zones , 在最後加上:
zone "ddns.mydomain.net" IN { type master; file "dynamic/named.ddns.mydomain.net"; allow-update { localhost; }; };
創建文件 /var/named/dynamic/named.ddns.mydomain.net
要求 named 對 dynamic/ 目錄有寫許可權
nsupdate 時會生成 named.ddns.mydomain.net.jnl
named.service stop 時會改寫 named.ddns.mydomain.net 文件
如果 /var/named/dynamic目錄不存在,就先啟動一下 service named-chroot start$TTL 600 ; 10 minutes @ IN SOA ddns.mydomain.net. email.invalid. ( 1096 ; serial 86400 ; refresh (1 day) 3600 ; retry (1 hour) 604800 ; expire (1 week) 10800 ; minimum (3 hours) ) @ NS ddns.mydomain.net.
service named-chroot stop;
service named-chroot start;
systemctl enable named-chroot;
檢查防火牆開放了 udp/53 的訪問。
iptables -A INPUT -p udp –dport 53 -j ACCEPT #一般查詢用
iptables -A INPUT -p tcp –dport 53 -j ACCEPT # axfr 用
其他設置 (無需root許可權。但需要用戶許可權,設置crontab)
- 看文件 ddns/readme.php
- 大致步驟是,
- 把
ddns/
目錄中的東西放到你的網站中。 - 在MySQL中創建資料庫,創建一張表,
- 修改配置文件 pdo_new.php, config.php
- 創建一條 crontab 定時任務。2分鐘執行一次。
- 測試一下,就能用了。
- 把
安裝好之後,創建了對應的動態功能變數名稱後,客戶端的使用
- 如果是 A 記錄 或 AAAA 記錄
- 自動獲取客戶端IP(根據來源IP. A需通過ipv4,AAAA需通過ipv6訪問)
wget http://www.mydomain.net/ddns/ddns.php?key=xxxxxxxxx&domain=dddd
強制指定IP(無所謂ipv4,ipv6網路)
wget http://www.mydomain.net/ddns/ddns.php?key=xxxxxxxxx&domain=dddd&ip=1.1.1.1
wget http://www.mydomain.net/ddns/ddns.php?key=xxxxxxxxx&domain=dddd&ip=FC00:0:130F::9C0:876A:130B
建議每10-15分鐘訪問一次更新鏈接。超過60分鐘未更新,對應功能變數名稱重置為"127.0.0.1" 或 "::1"比如動態功能變數名稱為
abc.ddns.mydomain.net
其中domain=dddd
可以寫為:domain=abc
ordomain=abc.ddns.mydomain.net
其中
key=xxxxxxxxx
是創建動態功能變數名稱時,生成的對應key。 - 自動獲取客戶端IP(根據來源IP. A需通過ipv4,AAAA需通過ipv6訪問)
- 如果是 TXT 記錄
- 強制指定TXT內容
wget http://www.mydomain.net/ddns/ddns.php?key=xxxxxxxxx&domain=dddd&ip=20181015abcdefg
- 強制指定TXT內容
轉載請註明來源。
來源: https://www.cnblogs.com/osnosn/p/10591431.html 來自osnosn博客
---------------end---------------