Последний релиз всегда доступен от GitHub в
https://github.com/troglobit/inadyn/releases
Совет: Руководство HTML Unix находится по адресу https://man.troglobit.com, например, inadyn.conf (5)
Inadyn, или In-Dyn, представляет собой небольшой и простой динамический DNS, DDNS, клиент с поддержкой HTTPS. Обычно доступны во многих распределениях GNU/Linux, используемых в пределах полки маршрутизаторов и интернет -шлюзах для автоматизации задачи сохранения имени вашего интернета синхронизированным с вашим публичным IP -адресом. Его также можно использовать в установках с избыточными (резервными) подключениями к Интернету.
Большинство людей не знают, что они делятся множеством интернет -адресов с другими пользователями того же поставщика интернет -услуг (ISP). Протоколы, такие как DHCP, PPPOE или PPPOA, используются, чтобы дать вам адрес и способ подключения к Интернету, но обычно не способ для других подключаться к вам. Если вы хотите запустить интернет -сервер на таком соединении, вы рискуете потерять свой IP -адрес каждый раз, когда вы подключаетесь, или, как в случае с DHCP, даже когда аренда пересматривается.
Используя клиент DDNS, такой как inadyn вы можете зарегистрировать имя интернета с поставщиком DDNS, например, Freedns. Клиент DDNS периодически обновляет вашу запись DNS и/или по требованию при изменении вашего IP -адреса. Inadyn может вести несколько записей хоста с одним и тем же IP-адресом, использовать комбинацию сценария, адрес из интерфейса, обращенного в Интернет, или по умолчанию для использования детектора изменения IP-адреса поставщика DDNS.
__
¹ Публичный IP -адрес - это также по умолчанию, частные адреса также могут быть использованы.
Некоторые из этих услуг бесплатны за некоммерческое использование, некоторые берут небольшую плату, но также предоставляют больше доменов на выбор.
Следующие поставщики Tier-One имеют посвященные «плагины», хотя многие разделяют оригинальный плагин Dyndns. Ниже приведен список известных поставщиков DDNS, заказанный плагином, который их поддерживает:
Для полного списка см. inadyn -L , для машинного вывода JSON, используйте inadyn -L -j .
Поставщики DDNS, не поддерживаемые, могут быть включены, используя пользовательский или общий плагин DDNS. См. Ниже для примеров конфигурации.
По умолчанию по умолчанию по умолчанию HTTPS, но не все поставщики могут поддержать это, поэтому попробуйте отключить SSL для обновления ( ssl = false ) или фазы проверки ( checkip-ssl = false ) в разделе provider , если вы столкнетесь с проблемами.
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
}
Обратите внимание, как у конфигурации есть три разных пользователя поставщика NO-IP-это достигается путем добавления :ID к имени поставщика.
Мы также определяем пользовательский каталог кэша, по умолчанию используется /var/cache . В нашем случае /mnt является конкретным системным стойким хранилищем для кэширования вашего IP -адреса, как сообщается каждому поставщику. Inadyn Используйте это, чтобы убедиться, что вы не заблокированы из своей учетной записи для чрезмерных обновлений, что может произойти, если ваш интернет -шлюз для вашего устройства застрял в петле перезагрузки или аналогично.
Тем не менее, чтобы механизм кэширования был на 100% надежным, системные часы должны быть правильно установлены-если у вас есть проблемы с системными часами, которые не устанавливаются должным образом при загрузке, например, в ожидании получения сообщения NTP, используйте опцию командной строки --startup-delay=SEC . Чтобы сказать inadyn , можно продолжить до тайм -аута SEC , используйте SIGUSR2 .
Последняя определенная система - это услуга IPv6 https://tunnelbroker.net, предоставляемая Hurricane Electric. Здесь hostname установлено на идентификатор туннеля, и пароль должен быть ключом обновления, найденной на вкладке «Дополнительная конфигурация».
Примечание.
checkip-commandдля DYNV6 выше, является лишь одним из способов сделать это. Вот еще один вариант, из их собственного сценария:ip -6 addr list scope global $device | grep -v " fd" | sed -n 's/.*inet6 ([0-9a-f:]+).*/1/p' | head -n 1
Иногда checkip-server по умолчанию для поставщика DDNS может быть медленно отвечать, даже время. Поддержка в Dyn переопределяет по умолчанию поставщика с помощью пользовательской или пользовательской команды. Самый простой способ изменить его-это установить checkip-server = default в конфигурации вашего поставщика, запуская в DYN для использования по умолчанию http://ifconfig.me/ip , что также является по умолчанию для любой пользовательской конфигурации DDNS. См. Страницы Man или в разделе ниже, для получения дополнительной информации.
Некоторые поставщики требуют использования конкретного браузера для отправки обновлений, это можно обойтись, используя настройку user-agent = STRING , как показано выше. Он доступен как на глобальном, так и на уровне для каждого провале.
ПРИМЕЧАНИЕ. В настройке сервера многопользовательского сервера убедитесь, что ваш .conf до 600 (только вам/root), чтобы защитить других пользователей, читающих учетные данные DDNS Server.
В дополнение к поставщикам DDNS по умолчанию, поддерживаемым Inadyn, пользовательские поставщики DDNS могут быть определены в файле конфигурации. Используйте custom {} в разделе вместо provider {} используемого в примерах выше.
In-A-Dyn Используйте HTTP Basic Authentication (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>"
}
Здесь обновляются три имена хостов, один запрос на обновление HTTP для каждого перечисленного имени хоста. Некоторые поставщики, такие как Freedns, поддержка настройки записей CNAME (псевдоним) для сокращения количества записей, которые вам необходимо обновить. Freedns даже по умолчанию связывать несколько записей с одним и тем же обновлением, что может быть очень запутанным, если вы хотите, чтобы каждая запись DNS была обновлена с уникального IP -адреса - обязательно проверьте свои настройки у поставщика 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) .
Другой пример:
# 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 Code и строки "good" , "OK" , "true" , "success" или "updated" в теле ответа http. Если поставщик 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{} .
Примечание: требуется hostname , даже если все кодируется в ddns-path ! Данное имя хоста прилагается к ddns-path используемому для обновлений, если вы не используете настройку append-myip , и в этом случае ваш IP-адрес будет добавлен вместо этого. При использовании append-myip вам, вероятно, нужно кодировать ваше имя хоста DNS в ddns-path , как это сделано в последнем примере выше.
Распространенной проблемой является начало работы, что понятно, поскольку в 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. Тем не менее, увеличение уровня функций в DYN и, следовательно, количества зависимостей, а также требования поддержки большего количества архитектур и различных распределений, предварительно построенная поддержка .deb была прекращена с V2.9.1.
Проект Debian теперь обладает активным сопровождающим для Inadyn, который является восходящим по течению для Ubuntu и других. Пожалуйста, сообщите о вопросах и запросах в соответствии с вами соответствующим распределением:
Примечание. Файлы упаковки проекта были перемещены в отдельную филиал Debian в репозитории GIT. Это не активно обновляется и не поддерживается для выпусков. Чтобы использовать его, ознакомьтесь с филиалом и редактируйте
debian/changelog), чтобы создать новые файлы.debдля вашей системы.
Автоматически построенные изображения, доступные здесь:
DockerFile предоставляется для упрощения строительства и запуска inadyn .
docker build -t inadyn:latest .
docker run --rm -v "$PWD/inadyn.conf:/etc/inadyn.conf" inadyn:latest
Если вы не хотите работать в Dyn в качестве фона демона, вы можете настроить Cronjob:
inadyn.confcrontab -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>&1Чтобы запустить последнюю стабильную версию на MacOS, тип:
brew install inadyn
Чтобы запустить последнюю версию из главной ветви, вместо этого установите git tap:
brew install --HEAD troglobit/inadyn/inadyn
Любой из них установит все зависимости.
Вы также можете установить in-dyn на macos с помощью Macports:
sudo port install inadyn
Вы можете найти больше информации на странице портов in-dyn.
Сначала скачать последний официальный релиз в Dyn от GitHub:
В Dyn требуется несколько библиотек для построения. Система сборки ищет их, в их необходимых версиях, используя инструмент pkg-config :
Они доступны из большинства распределений UNIX в качестве предварительно построенных пакетов. Обязательно установите пакет -dev или -devel распределительных пакетов при строительстве Inadyn. На Debian/Ubuntu (производные):
$ sudo apt install gnutls-dev libconfuse-dev
Для построения вам также нужен компилятор C, инструмент pkg-config , и сделайте:
$ sudo apt install build-essential pkg-config
При поддержке HTTPS (SSL/TLS), обязательно установите пакет ca-certificates в вашей системе, в противном случае Inadyn не сможет проверить сертификаты HTTPS поставщика DDNS.
System Configure & Build System Использование /usr/local в качестве префикса установки по умолчанию. Во многих случаях это полезно, но это означает, что файлы конфигурации и файлы кэша также будут использовать тот же префикс. Большинство пользователей ожидают, что эти файлы в /etc/ and /var/run/ and configure имеют несколько полезных вариантов, которые рекомендуются для использования:
$ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
$ make -j5
$ sudo make install-strip
Вы можете удалить опцию --prefix=/usr .
По умолчанию Inadyn пытается построить с Gnutls для поддержки HTTPS. GNUTLS - это рекомендуемая библиотека SSL для использования в распределениях UNIX, которые не предоставляют OpenSSL/Libressl в качестве системной библиотеки. Однако, когда OpenSSL или Libressl доступен в виде системной библиотеки, например, во многих встроенных системах:
./configure --enable-openssl
Чтобы полностью отключить поддержку inadyn https (не рекомендуется!):
./configure --disable-ssl
Для получения более подробной информации о выпуске OpenSSL и GNU GPL лицензии см.
Некоторые люди хотят построить статически, чтобы сделать это с помощью autoconf , добавить следующие LDFLAGS= после сценария настройки. Вам также может потребоваться добавить LIBS=... , что будет зависеть от вашей конкретной системы:
./configure LDFLAGS="-static" ...
В некоторых системах по умолчанию конфигурируйте путь установки, /usr/local , отключается и не выполняется с помощью таких инструментов, как ldconfig и pkg-config . Таким /etc/ld.so.conf.d/local.conf , если Configure не может найти библиотеки LibConfuse или .pc .
/usr/local/lib
Обновите кеш линкера:
sudo ldconfig -v |egrep libconfuse
и запустите сценарий настройки Inadyn
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ./configure
Для интеграции SystemD вам необходимо установить pkg-config , что помогает системе Inadyn Build определить пути SystemD. При установке просто вызовать 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 и Makefile.in генерируются из autogen.sh , они не хранятся в GIT, но автоматически генерируются для выпуска TarballsMakefile генерируется сценарием configure Строить из git; клонировать репозиторий и запустите сценарий autogen.sh . Это требует, чтобы в вашей системе было установлено установка automake , autoconf и libtool . Выпущенные тарболы не требуют этих инструментов.
$ sudo apt install git automake autoconf
Затем вы можете клонировать репозиторий и создать сценарий configure , который не является частью репозиции GIT:
git clone https://github.com/troglobit/inadyn.git
cd inadyn/
./autogen.sh
./configure && make
Строительство от GIT требует, по крайней мере, ранее упомянутых библиотечных зависимостей. Источники GIT являются движущейся целью и не рекомендуются для производственных систем, если только вы не знаете, что делаете!
Это продолжение оригинальной Inadyn Нарциса Илисея. Теперь поддерживается Йоахимом Вибергом. Пожалуйста, подайте отчеты об ошибках или отправьте запросы на привлечение исправлений ошибок и предлагаемые расширения в GitHub.
Личное спасибо! Выходит к Роберту Хёгбергу, который спонсировал небольшой маршрутизатор D-Link Dir-645, чтобы я мог вернуться на межкетинг :-)