Custom DDNS - XIYO/asuswrt-merlin.ng-kr GitHub Wiki
μ°Έκ³ : λ²μ 384.7λ‘ In-a-DynμΌλ‘ μ νν νμλ μ΄ λ΄μ©μ΄ μμ λμ΄μΌ ν μ μμΌλ©°, μ΄ νμ΄μ§λ DDNS-servicesμ λ³ν©λ μ μμ΅λλ€.
μκ°
DDNS (λμ DNS) μλΉμ€λ₯Ό "μ¬μ©μ μ μ"λ‘ μ€μ νλ©΄, ddns-start
μ¬μ©μ μ€ν¬λ¦½νΈλ₯Ό ν΅ν΄ μ
λ°μ΄νΈ νλ‘μΈμ€λ₯Ό μμ ν μ μ΄ν μ μμ΅λλ€(μ¬μ©μ μ μ μ
λ°μ΄νΈ ν΄λΌμ΄μΈνΈλ₯Ό μ€ννκ±°λ, μ 곡μ
체μ μ
λ°μ΄νΈ URLμ λν κ°λ¨ν "wget" μ€ν). ddns-start μ€ν¬λ¦½νΈλ μΈμλ‘ WAN IPλ₯Ό μ λ¬λ°μ΅λλ€.
μ¬μ©μ μ μ μ€ν¬λ¦½νΈλ νλ‘μΈμ€μ μ±κ³΅ λλ μ€ν¨λ₯Ό νμ¨μ΄μ μλ €μΌ ν©λλ€. μ΄λ₯Ό μν΄ μ€ν¬λ¦½νΈλ λ€μμ μ€νν΄μΌ ν©λλ€:
/sbin/ddns_custom_updated 0 λλ 1
(μ¬κΈ°μ 0 = μ€ν¨, 1 = μ±κ³΅μ μΈ μ λ°μ΄νΈ)
μ±κ³΅ λλ μ€ν¨λ₯Ό νλ¨ν μ μλ€λ©΄, νμ¨μ΄κ° μ§μμ μΌλ‘ μ λ°μ΄νΈλ₯Ό μλνμ§ μλλ‘ μ±κ³΅μΌλ‘ λ³΄κ³ νμΈμ.
λ§μ§λ§μΌλ‘, λͺ¨λ μ¬μ©μ μ€ν¬λ¦½νΈμ²λΌ, κ΄λ¦¬ -> μμ€ν μμ μ¬μ©μ μ μ μ€ν¬λ¦½νΈ λ° μ€μ νμΌ μ§μ μ΅μ μ΄ νμ±νλμ΄ μμ΄μΌ ν©λλ€.
μ¬μ©μ μ μ μ€ν¬λ¦½νΈλ₯Ό νμ±νν ν, μ
λ°μ΄νΈ μ€ν¬λ¦½νΈμ λ΄μ©μ /jffs/scripts/ddns-start
μ λ£κ³ WAN -> DDNSμμ DDNS ν΄λΌμ΄μΈνΈλ₯Ό νμ±ννκ³ μλ²λ‘ μ¬μ©μ μ μ
λ₯Ό μ¬μ©νμΈμ.
Double NAT μν©μμ DDNS μ¬μ©
ISPμ λΌμ°ν° λ€μ ASUS λΌμ°ν°κ° Double NAT μνμ μλ€λ©΄, μ¬μ©μ μ μ DDNS μ€μ μμ μ λ¬λ IP λμ μΈλΆ IPλ₯Ό κ²μν΄μΌ ν μ μμ΅λλ€. μ λ°μ΄νΈ μ€ν¬λ¦½νΈμμ IPκ° μ¬μ©λλ μ€μ μ°Ύμ
IP=${1}
μΈλΆ μμ€μμ IPλ₯Ό κ°μ Έμ€λλ‘ λ³κ²½νμΈμ.
IP="$(curl -fs4 https://myip.dnsomatic.com/)"
μ μμ λ dnsomaticμ μ¬μ©νμ§λ§, νμμ λ°λΌ λ€λ₯Έ μμ€λ‘ μμ ν μ μμ΅λλ€. OpenWrt μν€μμ μ¬κΈ°μ λͺ©λ‘μ μ 곡ν©λλ€.
VPNκ³Ό ν¨κ» DDNS μ¬μ©
VPN IPλ‘ DDNSλ₯Ό 리λλ μ
νλ μ€ν¬λ¦½νΈ μμ λ λ€μκ³Ό κ°μ΅λλ€. /jffs/scripts/openvpn-event
μ λ€μμ μΆκ°νμΈμ:
#!/bin/sh
if [ "$script_type" = "up" ] && [ "$vpn_interface" = "tun11" ]; then
# OpenVPN ν°λμ openvpn-event μ€ν¬λ¦½νΈκ° μλ£λ λκΉμ§ μ΄λ¦¬μ§ μμΌλ―λ‘, λλ¨Έμ§λ₯Ό λ°±κ·ΈλΌμ΄λ μμμ μ€ν
(
# VPN ν°λμ΄ μ€μ λκ±°λ νμμμ μ νμ λλ¬ν λκΉμ§ λ°λ³΅
COUNTER=0
LIMIT=10
while [ "$COUNTER" -le "$LIMIT" ] && ! ifconfig | grep -Fq "tun11"; do
sleep 1
COUNTER=$((COUNTER + 1))
done
# μ¬κΈ°μμ DDNSλ₯Ό μ
λ°μ΄νΈνμΈμ, μλλ λͺ κ°μ§ μμ
# VPN IPλ‘ dyndns μ
λ°μ΄νΈ (384.7 μ΄μ )
VPNIP="$(curl -fs4 http://myip.dnsomatic.com/)"
ez-ipupdate -
S "dyndns" -u "user:password" -h "host.dyndns.org" -a "$VPNIP"
# inadyn μ¬μ© (384.7+)
inadyn --once -f "/jffs/inadyn.conf"
# curl μ¬μ©
API="xxxxxxxxxxxxxxxx" # afraid.org API ν€
curl -fs -o /dev/null "https://freedns.afraid.org/dynamic/update.php?${API}"
) &
fi
κ·Έλ¦¬κ³ μ€ν κ°λ₯νλλ‘ μ€μ νμΈμ.
chmod +x /jffs/scripts/openvpn-event
νΉμ μ 곡μ 체λ₯Ό μν μ€ν¬λ¦½νΈ
λ§μ DDNS μ 곡μ 체 λ° DNS μλΉμ€λ₯Ό μν μν μ€ν¬λ¦½νΈλ μ¬κΈ°μμ μ¬μ©ν μ μμ΅λλ€.