최신 릴리스는 항상 Github at에서 구입할 수 있습니다
https://github.com/troglobit/inadyn/releases
팁 : HTML UNIX 매뉴얼은 https://man.troglobit.com, 예 : inadyn.conf (5)에 있습니다.
Inadyn 또는 In-A-Dyn은 작고 간단한 동적 DNS, DDNS, HTTPS 지원을받는 클라이언트입니다. 인터넷 이름을 공개 IP 주소와 동기화하는 작업을 자동화하기 위해 Shelf Routers 및 Internet Gateway에 사용되는 많은 GNU/Linux 배포판에서 일반적으로 사용할 수 있습니다. 인터넷에 중복 (백업) 연결이있는 설치에도 사용할 수 있습니다.
대부분의 사람들은 동일한 인터넷 서비스 제공 업체 (ISP)의 다른 사용자와 인터넷 주소 풀을 공유한다는 것을 알지 못합니다. DHCP, PPPOE 또는 PPPOA와 같은 프로토콜은 주소와 인터넷에 연결하는 방법을 제공하는 데 사용되지만 일반적으로 다른 사람들이 연결하는 방법은 아닙니다. 이러한 연결에서 인터넷 서버를 실행하려면 다시 연결할 때마다 또는 임대가 재협상 된 경우에도 DHCP의 경우와 같이 IP 주소를 잃을 위험이 있습니다.
inadyn 과 같은 DDNS 클라이언트를 사용하면 Freedns와 같은 DDNS 제공 업체와 인터넷 이름을 등록 할 수 있습니다. DDNS 클라이언트는 IP 주소가 변경 될 때 DNS 레코드를 정기적으로 및/또는 주문형으로 업데이트합니다. Inadyn은 동일한 IP 주소로 여러 호스트 레코드를 유지하거나 스크립트의 조합, 인터넷을 진행하는 인터페이스의 주소 또는 DDNS 제공 업체의 IP 주소 변경 탐지기 사용에 대한 기본값을 사용 할 수 있습니다.
__
¹ 공개 IP 주소는 기본값이며 개인 주소도 사용할 수 있습니다.
이러한 서비스 중 일부는 비상업적 용도로 무료로 무료이며 일부는 적은 비용을 지불하지만 더 많은 도메인을 선택할 수 있습니다.
많은 Tier-One 제공 업체는 오리지널 Dyndns 플러그인을 공유하더라도 전용 "플러그인"을 가지고 있습니다. 아래는 플러그인에서 주문한 알려진 DDNS 제공 업체 목록입니다.
전체 목록은 inadyn -L inadyn -L -j 하십시오.
기본적으로 지원되지 않는 DDNS 제공 업체는 사용자 정의 또는 일반 DDNS 플러그인을 사용하여 활성화 할 수 있습니다. 구성 예는 아래를 참조하십시오.
in-dyn 기본값은 HTTPS에 대한 기본값이지만 모든 공급자가이를 지원할 수있는 것은 아니므로 문제가 발생할 경우 provider 섹션에서 업데이트 ( ssl = false ) 또는 checkip phase ( checkip-ssl = false )에 대한 SSL을 비활성화하십시오.
HTTPS는 자격 증명이 스누핑되는 것을 막고 계정을 가로 채는 위험을 줄이기 때문에 기본적으로 활성화됩니다 .
In-A-Dyn은 여러 DDNS 서버 업데이트를 지원합니다. 여러 DDNS 제공 업체에서도 여러 계정이 있습니다. 다음 /etc/inadyn.conf 예제는 어떻게이를 수행 할 수 있는지 보여줍니다. 데몬을 시작하지 않고 구성을 확인하려면 다음을 사용하십시오.
inadyn --check-config
이렇게하면 기본적으로 .conf 파일을 찾아서 파일을 확인하고 사용합니다.
inadyn --check-config -f /path/to/file.conf
# In-A-Dyn v2.0 configuration file format
period = 300
user-agent = Mozilla/5.0
# The FreeDNS username must be in lower case
# The password (max 16 chars) is case sensitive
provider freedns {
username = lower-case-username
password = case-sensitive-pwd
hostname = some.example.com
}
# We override checkip server with the In-a-dyn built-in 'default',
# http://ifconfig.me/ip, for details on this, see below.
provider freemyip {
password = YOUR_TOKEN
hostname = YOUR_DOMAIN.freemyip.com
checkip-server = default
}
provider dyn {
ssl = false
username = charlie
password = snoopy
hostname = { peanuts, woodstock }
user-agent = Mozilla/4.0
}
provider duckdns.org {
username = YOUR_TOKEN
password = noPasswordForDuckdns
hostname = YOUR_DOMAIN.duckdns.org
}
# With multiple usernames at the same provider, index with :#
provider no-ip.com:1 {
username = ian
password = secret
hostname = flemming.no-ip.com
user-agent = inadyn/2.2
}
# With multiple usernames at the same provider, index with :#
provider no-ip.com:2 {
username = james
password = bond
hostname = spectre.no-ip.com
checkip-ssl = false
checkip-server = ifconfig.me
checkip-path = /ip
}
# With multiple usernames at the same provider, index with :#
provider no-ip.com:3 {
username = spaceman
password = bowie
hostname = spaceman.no-ip.com
checkip-command = "/sbin/ifconfig eth0 | grep 'inet6 addr'"
}
# Google Domains - notice use of '@' to update root entry
provider domains.google.com:1 {
hostname = @.mydomain.com
username = your_username
password = your_password
}
# Wildcard subdomains - notice the quotes (required!)
provider domains.google.com:2 {
hostname = "*.mydomain.com"
username = your_username
password = your_password
}
# Note: hostname == update-key from Advanced tab in the Web UI
provider tunnelbroker.net {
username = futurekid
password = dreoadsad/+dsad21321 # update-key-in-advanced-tab
hostname = 1234534245321 # tunnel-id
}
# dynv6.com update using a custom checkip-command, which works
# if you have access to an Internet-connected interface. Make
# sure to verify the command works on your system first
allow-ipv6 = true # required option for IPv6 atm.
provider dynv6.com {
username = your_token
password = not_used
hostname = { host1.dynv6.net, host2.dynv6.net }
checkip-command = "/sbin/ip -6 addr | grep inet6 | awk -F '[ t]+|/' '{print $3}' | grep -v ^::1 | grep -v ^fe80"
}
provider cloudxns.net {
username = your_api_key
password = your_secret_key
hostname = yourhost.example.com
}
provider dnspod.cn {
username = your_api_id
password = your_api_token
hostname = yourhost.example.com
}
# Create a unique custom API token with the following permissions:
# -> Zone.Zone - Read, Zone.DNS - Edit.
provider cloudflare.com {
username = zone.name
password = api_token_important_read_comment
hostname = hostname.zone.name
ttl = 1 # optional, value of 1 is 'automatic'.
proxied = false # optional.
}
provider goip.de {
username = user.name
password = user.password
hostname = hostname.zone.name
}
Config에 NO-IP 제공 업체의 세 가지 사용자가있는 방법에 주목하십시오. 이는 a :ID 공급자 이름에 추가하여 달성됩니다.
또한 사용자 정의 캐시 디렉토리를 정의합니다. 기본값은 /var/cache 사용하는 것입니다. 당사의 경우 /mnt 각 공급자에게보고 된대로 귀하의 IP 주소를 캐싱하기위한 시스템 별 영구 저장소입니다. Inadyn 은이를 사용하여 과도한 업데이트를 위해 계정에서 잠겨 있지 않도록합니다. 이는 장치 인터넷 게이트웨이가 실행되는 장치 인터넷 게이트웨이가 재부팅 루프 또는 이와 유사하게 발생하는 경우 발생할 수 있습니다.
그러나 캐싱 메커니즘이 100% 안식하려면 시스템 클록이 올바르게 설정되어야합니다. 부팅시 시스템 클록이 올바르게 설정되지 않은 경우 NTP 메시지의 수신 보류중인 경우 명령 줄 옵션 --startup-delay=SEC 사용하십시오. inadyn 에게 SEC 타임 아웃 전에 진행하는 것이 좋습니다. SIGUSR2 사용하십시오.
마지막으로 정의 된 시스템은 Hurricane Electric에서 제공하는 IPv6 https://tunnelbroker.net 서비스입니다. 여기서 hostname 터널 ID로 설정되며 비밀번호는 고급 구성 탭에있는 업데이트 키 여야합니다 .
참고 : 위의 Dynv6의
checkip-command이를 수행하는 한 가지 방법 일뿐입니다. 자체 스크립트의 또 다른 변형은 다음과 같습니다.ip -6 addr list scope global $device | grep -v " fd" | sed -n 's/.*inet6 ([0-9a-f:]+).*/1/p' | head -n 1
때로는 DDNS 제공 업체의 기본 checkip-server 시간을 초과하는 경우도 느리게 응답 할 수 있습니다. In-A-Dyn 지원 제공자의 기본값을 사용자 정의 또는 사용자 정의 명령으로 우선합니다. 변경하는 가장 쉬운 방법은 checkip-server = default 에서 귀하의 공급자 구성을 설정하고, in-a-dyn을 트리거하여 기본 http://ifconfig.me/ip 사용하여 모든 사용자 정의 DDNS 구성의 기본이기도합니다. 자세한 내용은 Man Pages 또는 아래 섹션을 참조하십시오.
일부 제공 업체는 업데이트를 보내려면 특정 브라우저를 사용해야합니다. 이는 위에 표시된 것처럼 user-agent = STRING 설정을 사용하여 작업 할 수 있습니다. 글로벌 및 프로보더 별 수준에서 사용할 수 있습니다.
참고 : 다중 사용자 서버 설정에서 DDNS 서버 자격 증명을 읽는 다른 사용자로부터 보호하기 위해 .conf ~ 600 (귀하/루트에서만 읽기)을 chmod하십시오.
Inadyn이 지원하는 기본 DDNS 제공 업체 외에도 Custom DDNS 제공 업체는 구성 파일에서 정의 할 수 있습니다. 위의 예제에 사용 된 provider {} 섹션 대신 custom {} 를 사용하십시오.
in-a-dyn http 기본 인증 (base64 인코딩)을 사용하여 사용자 이름과 비밀번호를 서버에 통신합니다. 사용자 이름 및/또는 비밀번호가없는 경우 이러한 필드를 남겨 둘 수 있습니다. 기본 인증은 여전히 서버와 통신하지만 빈 사용자 이름과 비밀번호와 함께 사용됩니다.
맞춤형 DDNS 제공 업체는 다음과 같이 설정할 수 있습니다.
custom example {
username = myuser
password = mypass
checkip-server = checkip.example.com
checkip-path = /
ddns-server = update.example.com
ddns-path = "/update?hostname="
hostname = myhostname.example.net
}
다음 변수는 구성으로 대체 할 수 있습니다.
%u - username
%p - password, if HTTP basic auth is not used
%h - hostname
%i - IP address
https://www.namecheap.com의 경우 다음과 같이 볼 수 있습니다. 호스트 이름 구문이 위에서 다른 방법에 주목하십시오.
custom namecheap {
username = YOURDOMAIN.TLD
password = mypass
ddns-server = dynamicdns.park-your-domain.com
ddns-path = "/update?domain=%u&password=%p&host=%h&ip=%i"
hostname = { "@", "www", "test" }
ddns-response = "<ErrCount>0</ErrCount>"
}
여기에 3 개의 호스트 이름이 업데이트되고, 하나의 HTTP가 나열된 모든 호스트 이름에 대한 업데이트 요청을받습니다. Freedns와 같은 일부 제공 업체는 업데이트해야 할 레코드의 양을 줄이기 위해 CNAME 레코드 (별칭) 설정을 지원합니다. Freedns는 여러 레코드를 동일한 업데이트에 연결하는 데 기본값도 기본적으로 고유 한 IP 주소에서 각 DNS 레코드를 업데이트하려는 경우 매우 혼란 스러울 수 있습니다. DDNS 제공 업체에서 설정을 확인 하십시오!
일반 플러그인은 업데이트 요청에서 클라이언트의 새 IP 주소가 필요한 제공 업체와 함께 사용할 수도 있습니다. 다음은 http://dyn.com이 Inadyn이 지원하지 않는 척하면 어떻게 할 수 있는지에 대한 예입니다. ddns-path 제공자마다 다르며 알아야 할 것입니다. 지원 페이지는 때때로 API 섹션 또는 이와 유사한 경우에이를 나열합니다.
# This emulates dyndns.org
custom dyn {
username = DYNUSERNAME
password = DYNPASSWORD
ddns-server = members.dyndns.org
ddns-path = "/nic/update?hostname=%h.dyndns.org&myip=%i"
hostname = { YOURHOST, alias }
}
여기서 형식 지정자가있는 완전히 사용자 정의 ddns-path 사용됩니다. 이에 대한 자세한 내용은 inadyn.conf(5) Man Page를 참조하십시오.
Another example:
# Custom configuration for dnsmadeeasy
custom dyn {
username = DNSMADEEASYUSERNAME
password = DNSMADEEASYPASSWORDFORTHISHOST
ddns-server = cp.dnsmadeeasy.com
ddns-path = "/servlet/updateip?username=%u&password=%p&id=DNSMADEEASYHOSTID&ip=%i"
hostname = HOST
}
일반 플러그인을 사용하는 경우 먼저 DDNS 제공 업체의 응답을 검사해야합니다. 기본적으로 Inadyn은 200 HTTP 응답 OK 코드와 "good" , "OK" , "true" , "success" 또는 "updated" 찾습니다. DDNS 제공 업체가 다른 것을 반환하면 가능한 ddns-response = { Arrr, kilroy } 또는 단일 ddns-response = Cool 목록을 추가 할 수 있습니다. 제공자가 응답을 제공하는 경우 ddns-response = "" 사용하십시오.
DDNS 제공 업체가 checkip-server 를 제공하지 않으면 http://ifconfig.me/ip와 같은 다른 서비스를 사용할 수 있습니다. 이는 사용자 정의 제공자 구성에 하나를 지정하지 않는 경우 기본값입니다.
checkip-server = ifconfig.me
checkip-path = /ip
checkip-ssl = false
또는 스크립트 또는 명령을 사용하십시오.
checkip-command = /sbin/ifconfig eth0 | grep 'inet addr'
이 두 설정은 표준 provider{} 섹션에서도 사용할 수 있습니다.
참고 : ddns-path 에서 모든 것이 인코딩 되더라도 hostname 필요합니다! 주어진 호스트 이름은 append-myip 설정을 사용하지 않는 한 업데이트에 사용 된 ddns-path 에 추가됩니다.이 경우 IP 주소가 대신 추가됩니다. append-myip 사용할 때는 위의 마지막 예제에서 수행 된 것처럼 ddns-path 에서 DNS 호스트 이름을 인코딩해야 할 것입니다.
일반적인 문제는 시작하는 것입니다. In-A-Dyn에는 많은 혼란스러운 옵션이 있기 때문에 이해할 수 있습니다.
/etc/inadyn.conf 를 저장 한 후 먼저 전체 디버그 로그로 전경에서 시작해보십시오.
inadyn -l debug --foreground --force
잘못된 구성 또는 잘못된 서버 응답은 훨씬 쉽게 찾을 수 있어야합니다. 버그 보고서를 제출하거나 포럼/IRC에서 질문을하면 암호 및 도메인 정보에서 로그를 검열해야합니다!
캐시를 지우십시오.
sudo systemctl stop inadyn.servicesudo rm -rf /var/cache/inadyn/*sudo systemctl restart inadyn.service 오랫동안이 프로젝트는 자체 .deb 포장 및 기본 APT 인프라를 유지했습니다. 그러나 In-A-Dyn의 기능 수준 및 따라서 종속성의 양과 더 많은 아키텍처 및 다양한 분포를 지원하라는 요구뿐만 아니라 사전 구축 된 .deb 지원은 v2.9.1에 따라 중단되었습니다.
데비안 프로젝트에는 이제 Ubuntu와 다른 사람들의 상류 인 Inadyn의 적극적인 관리자가 있습니다. 각각의 배포에 문제와 요청을보고하십시오.
참고 : 프로젝트의 포장 파일은 GIT 저장소의 별도의 데비안 브랜치로 이동되었습니다. 릴리스를 위해 적극적으로 업데이트되거나 지원되지 않습니다. 이를 사용하려면 브랜치를 확인하고
debian/changelog편집하여 시스템 용 새.deb파일을 작성하십시오.
여기에서 자동으로 구축 된 이미지 :
inadyn 건물 및 달리기를 단순화하기 위해 Dockerfile이 제공됩니다.
docker build -t inadyn:latest .
docker run --rm -v "$PWD/inadyn.conf:/etc/inadyn.conf" inadyn:latest
배경 데몬으로서 Dyn을 실행하고 싶지 않다면 Cronjob을 설정할 수 있습니다.
inadyn.conf 파일을 만듭니다crontab -e 내부에 다음 줄을 추가하십시오 * * * * * docker run --rm -v " path/to/inadyn.conf:/etc/inadyn.conf " -v " path/to/cache:/var/cache/inadyn " troglobit/inadyn:latest -1 --cache-dir=/var/cache/inadyn > /dev/null 2>&1MacOS에서 최신 안정 버전을 실행하려면 다음을 입력하십시오.
brew install inadyn
마스터 브랜치에서 최신 버전을 실행하려면 대신 git 탭을 설치하십시오.
brew install --HEAD troglobit/inadyn/inadyn
이 중 하나는 모든 종속성을 설치합니다.
MacPorts를 사용하여 MacOS에 A-Dyn을 설치할 수도 있습니다.
sudo port install inadyn
In-A-Dyn의 포트 페이지에서 자세한 정보를 찾을 수 있습니다.
먼저 Github에서 최신 공식 in-Dyn 릴리스를 다운로드하십시오.
In-A-Dyn은 몇 개의 라이브러리를 구축해야합니다. 빌드 시스템은 pkg-config 도구를 사용하여 필요한 버전에서이를 검색합니다.
대부분의 UNIX 배포판에서 사전 구축 된 패키지로 제공됩니다. Inadyn을 구축 할 때 분배 패키지의 -dev 또는 -devel 패키지를 설치하십시오. 데비안/우분투 (파생 상품) :
$ sudo apt install gnutls-dev libconfuse-dev
구축하려면 C 컴파일러, pkg-config 도구가 필요합니다.
$ sudo apt install build-essential pkg-config
HTTPS (SSL/TLS) 지원으로 구축 할 때는 시스템에 ca-certificates 패키지를 설치하십시오. 그렇지 않으면 Inadyn은 DDNS 제공 업체의 HTTPS 인증서를 유효성있게 검증 할 수 없습니다.
GNU는 시스템을 기본 설치 접두사로 구성 및 빌드 시스템 사용 /usr/local . 많은 경우에 이것은 유용하지만 이는 구성 파일과 캐시 파일도 동일한 접두사를 사용한다는 것을 의미합니다. 대부분의 사용자는 /etc/ 및 /var/run/ 의 파일을 기대하고 구성하는 것이 몇 가지 유용한 옵션이 있습니다.
$ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
$ make -j5
$ sudo make install-strip
--prefix=/usr 옵션을 제거 할 수 있습니다.
기본적으로 Inadyn은 HTTPS 지원을 위해 GNUTLS를 구축하려고합니다. GNUTLS는 OpenSSL/Libressl을 시스템 라이브러리로 제공하지 않는 UNIX 분포에서 사용하는 것이 권장되는 SSL 라이브러리입니다. 그러나 OpenSSL 또는 Libressl이 시스템 라이브러리로 제공되는 경우, 예를 들어 많은 임베디드 시스템에서 사용할 수 있습니다.
./configure --enable-openssl
Inadyn HTTPS 지원을 완전히 비활성화하려면 (권장되지 않음!) :
./configure --disable-ssl
OpenSSL 및 GNU GPL 라이센스 문제에 대한 자세한 내용은 다음을 참조하십시오.
일부 사람들은 정적으로 구축하기를 원합니다. autoconf 를 수행하려면 다음 LDFLAGS= 추가하여 스크립트를 구성 합니다. LIBS=... 추가해야 할 수도 있습니다. 특정 시스템에 따라 다릅니다.
./configure LDFLAGS="-static" ...
일부 시스템에서는 기본 구성 설치 경로 /usr/local 비활성화되어 ldconfig 및 pkg-config 와 같은 도구로 검색되지 않습니다. 따라서 구성이 libconfuse 라이브러리 또는 .pc 파일을 찾지 못하면이 컨텐츠로 file /etc/ld.so.conf.d/local.conf 작성하십시오.
/usr/local/lib
링커 캐시 업데이트 :
sudo ldconfig -v |egrep libconfuse
다음과 같이 inadyn 구성 스크립트를 실행하십시오.
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ./configure
SystemD 통합을 위해서는 pkg-config 설치해야하므로 Inadyn 빌드 시스템이 시스템 경로를 파악하는 데 도움이됩니다. 설치되면 systemctl 호출하여 활성화하고 inadyn 시작합니다.
$ sudo systemctl enable inadyn.service
$ sudo systemctl start inadyn.service
시스템 로그를 검사하여 올바르게 시작했는지 확인하거나 :
$ sudo systemctl status inadyn.service
서비스를 중지하려면 :
$ sudo systemctl stop inadyn.service
라우터에 내장되면 일부 기능은 일반적으로 사용되지 않으며 공간을 절약하기 위해 비활성화 할 수 있습니다. 구성 옵션 --enable-reduced 이러한 감소 된 기능 이진을 구축합니다. 현재 이것은 장황한 로그 메시지 및 오류 문자열을 비활성화하고 구성 파일 점검 및 일부 후진 호환성을 제거합니다.
기여하고 싶거나 최신이지만 미공개 기능을 시도하려면 GNU 빌드 시스템에 대한 몇 가지 사항을 알아야합니다.
configure.ac 및 디렉토리 당 Makefile.am 은 핵심 파일입니다configure and Makefile.in autogen.sh 에서 생성되며 git에 저장되지 않고 릴리스 타르 볼에 대해 자동으로 생성됩니다.Makefile configure 스크립트를 통해 생성됩니다 git로부터 건축; 저장소를 복제하고 autogen.sh 스크립트를 실행하십시오. 이를 위해서는 GNU 도구 automake , autoconf 및 libtool 시스템에 설치해야합니다. 출시 된 타르 볼에는 이러한 도구가 필요하지 않습니다.
$ sudo apt install git automake autoconf
그런 다음 저장소를 복제하고 Git Repo의 일부가 아닌 configure 스크립트를 만들 수 있습니다.
git clone https://github.com/troglobit/inadyn.git
cd inadyn/
./autogen.sh
./configure && make
GIT로부터 건축하려면 적어도 이전에 언급 된 라이브러리 종속성이 필요합니다. GIT 소스는 움직이는 대상이며, 당신이하고있는 일을 모르는 한 생산 시스템에 권장되지 않습니다!
이것은 Narcis Ilisei의 원래 Inadyn의 연속입니다. 현재 Joachim Wiberg가 관리합니다. 버그 보고서를 제출하거나 GitHub에서 버그 수정 및 제안 된 확장에 대한 풀 요청을 보내십시오.
개인 감사합니다! 작은 D-Link Dir-645 라우터를 후원 한 Robert Högberg에게 나가서 인터 웹을 다시 얻을 수 있습니다 :-)