589 lines
20 KiB
Markdown
589 lines
20 KiB
Markdown
Документация по PowerDNS: https://doc.powerdns.com/authoritative/installation.html
|
||
****************************************************************************************************
|
||
## 2. Подключаемся к нужному серверу
|
||
```sh
|
||
ssh igor@192.168.200.85 -p 22
|
||
```
|
||
Connect to CCALM Georgia infrastructure:
|
||
```sh
|
||
ssh igor@88.218.94.134 -p 2200
|
||
```
|
||
****************************************************************************************************
|
||
DynDNS на PowerDNS авторитативный сервер тот кто отвечает на те домены которые в его базе (рекурсивный присылает авторитативному запросы)
|
||
|
||
DNS на Ubuntu 24.04 согласно инстркции https://phoenixnap.com/kb/powerdns-ubuntu:
|
||
Можно было-бы использовать не 53 порт, но провайдер не даёт указывать порт при настройке DNS серверов (не знаю какие локальные проблемы могут возникнуть если задать не 53 порт)
|
||
Устанавливаем сам PowerDNS https://doc.powerdns.com/authoritative/installation.html
|
||
|
||
```sh
|
||
sudo apt-get update &&
|
||
sudo apt-get upgrade -y
|
||
```
|
||
Install PowerDNS server
|
||
```sh
|
||
sudo apt-get install pdns-server -y
|
||
```
|
||
|
||
На всякий случай делаю резервные копии исходных файлов настрое:
|
||
```sh
|
||
cd /etc/powerdns &&
|
||
sudo cp named.conf named.conf.bak &&
|
||
sudo cp pdns.conf pdns.conf.bak
|
||
```
|
||
|
||
----------------------------------------------------------------------------------------------------
|
||
Как настроить MariaDB базу для использования в PowerDNS смотри:
|
||
[Установка PowerDNS с MariaDB](./PowerDNS_install_MarinaDB.md)
|
||
----------------------------------------------------------------------------------------------------
|
||
Как настроить SQLite3 базу для использования в PowerDNS смотри:
|
||
[Установка PowerDNS с MariaDB](./PowerDNS_install_SQIite3.md)
|
||
----------------------------------------------------------------------------------------------------
|
||
Как настроить PostgreSQL базу для использования в PowerDNS смотри:
|
||
[Установка PowerDNS с MariaDB](./PowerDNS_install_PostgreSQL.md)
|
||
----------------------------------------------------------------------------------------------------
|
||
|
||
Наспройку файла pdns.conf авторитетный сервер, есть такой пример который следует изучить: https://raw.githubusercontent.com/trinv/PowerDNS/a56b9122f4a2de9c1f789009f09b9831f74d8bf1/pdns.template.master.conf (естественно без 1й табуляции):
|
||
|
||
```sh
|
||
sudo mcedit /etc/powerdns/pdns.conf
|
||
```
|
||
|
||
Write new settings rr
|
||
```sh
|
||
cd /etc/powerdns/ &&
|
||
sudo tee pdns.conf > /dev/null <<'EOF'
|
||
|
||
allow-axfr-ips=127.0.0.1
|
||
also-notify=127.0.0.1
|
||
|
||
include-dir=/etc/powerdns/pdns.d
|
||
launch=
|
||
|
||
local-address=88.218.94.134,127.0.0.1
|
||
local-port=53
|
||
|
||
log-dns-details=on
|
||
log-dns-queries=yes
|
||
log-timestamp=yes
|
||
loglevel=4
|
||
|
||
webserver=yes
|
||
webserver-address=127.0.0.1
|
||
webserver-allow-from=::/0, 0.0.0.0/0
|
||
webserver-port=8091
|
||
|
||
master=yes
|
||
slave=no
|
||
|
||
# Также активирую API
|
||
api=yes
|
||
api-key=40c89f2a-e2f3-4ff8-a245-3547111f6677
|
||
EOF
|
||
```
|
||
Проверяю соединение к базе перезапустив PowerDNS:
|
||
```sh
|
||
sudo systemctl stop pdns &&
|
||
sudo pdns_server --daemon=no --guardian=no --loglevel=9
|
||
```
|
||
Пытаемся открыть WEB интерфейс
|
||
```sh
|
||
start http://88.218.94.134:8081
|
||
```
|
||
|
||
Если всё норм выполняем:
|
||
```sh
|
||
sudo systemctl restart pdns &&
|
||
sudo systemctl enable pdns &&
|
||
sudo systemctl status pdns
|
||
```
|
||
Проверяем что порт 5300 открыт для DNS:
|
||
```sh
|
||
sudo ss -alnp4 | grep pdns
|
||
```
|
||
Если что-то не получается то проверяем кто слушает на порту 53
|
||
```sh
|
||
sudo apt-get install net-tools -y &&
|
||
sudo netstat -tulnp | grep :53
|
||
```
|
||
|
||
Создаём зону и добавляем запись
|
||
```sh
|
||
sudo pdnsutil create-zone test ns1.test &&
|
||
sudo pdnsutil add-record test ccalm A 192.168.200.184
|
||
```
|
||
Добавляем зону и две записи
|
||
```sh
|
||
sudo pdnsutil create-zone geovizor.top &&
|
||
sudo pdnsutil replace-rrset geovizor.top @ SOA "ns1.geovizor.top admin.geovizor.top $(date +%Y%m%d)01 10800 3600 604800 3600" &&
|
||
sudo pdnsutil add-record geovizor.top ns1 A 88.218.94.134 &&
|
||
sudo pdnsutil add-record geovizor.top ns2 A 88.218.94.134 &&
|
||
sudo pdnsutil add-record geovizor.top @ A 88.218.94.134 &&
|
||
sudo pdnsutil add-record geovizor.top * A 88.218.94.134 &&
|
||
sudo pdnsutil add-record geovizor.top @ CAA 3600 "0 issue \"letsencrypt.org\"" &&
|
||
sudo pdnsutil add-record geovizor.top @ TXT 3600 "\"v=spf1 ip4:88.218.94.134 -all\"" &&
|
||
sudo pdnsutil add-record geovizor.top @ MX 3600 "10 mail.geovizor.top." &&
|
||
sudo pdnsutil add-record geovizor.top mail A 3600 88.218.94.134 &&
|
||
sudo pdnsutil add-record geovizor.top powerdns A 3600 88.218.94.134
|
||
```
|
||
|
||
```sh
|
||
sudo pdnsutil create-zone locust.ge &&
|
||
sudo pdnsutil replace-rrset locust.ge @ SOA "ns1.geovizor.top admin.locust.ge $(date +%Y%m%d)01 10800 3600 604800 3600" &&
|
||
sudo pdnsutil add-record locust.ge @ A 88.218.94.134 &&
|
||
sudo pdnsutil add-record locust.ge * A 88.218.94.134 &&
|
||
sudo pdnsutil add-record locust.ge @ CAA 3600 "0 issue \"letsencrypt.org\"" &&
|
||
sudo pdnsutil add-record locust.ge @ TXT 3600 "\"v=spf1 ip4:88.218.94.134 -all\"" &&
|
||
sudo pdnsutil add-record locust.ge @ MX 3600 "10 mail.locust.ge." &&
|
||
sudo pdnsutil add-record locust.ge mail A 3600 88.218.94.134
|
||
```
|
||
|
||
|
||
|
||
Выше задал такие настройки как
|
||
```conf
|
||
Refresh = 10800 (3 часа)
|
||
Retry = 3600 (1 час)
|
||
Expire = 604800 (1 неделя)
|
||
Minimum = 3600 (1 час)
|
||
```
|
||
|
||
|
||
Проверим список зон
|
||
```sh
|
||
sudo pdnsutil list-all-zones &&
|
||
sudo pdnsutil list-zone geovizor.top
|
||
```
|
||
Проверяем отвечалет ли:
|
||
```sh
|
||
dig @127.0.0.1 -p 5300 ccalm.test A
|
||
```
|
||
```sh
|
||
dig @127.0.0.1 -p 53 geovizor.top A
|
||
```
|
||
```sh
|
||
dig @88.218.94.134 -p 53 geovizor.top A
|
||
```
|
||
```sh
|
||
dig @88.218.94.134 -p 53 powerdns.geovizor.top A
|
||
```
|
||
|
||
### Теперь можно настроить HTTPS для взаимодействия через API с сервером для динамического задания IP адресов
|
||
|
||
```sh
|
||
API_KEY="40c89f2a-e2f3-4ff8-a245-3547111f6677"
|
||
SERVER="156.244.31.209"
|
||
ZONE="geovizor.top"
|
||
|
||
curl -X PATCH \
|
||
-H "X-API-Key: $API_KEY" \
|
||
-H "Content-Type: application/json" \
|
||
"http://$SERVER:8081/api/v1/servers/localhost/zones/$ZONE" \
|
||
-d '{
|
||
"rrsets": [
|
||
{
|
||
"name": "*.geovizor.top.",
|
||
"type": "A",
|
||
"ttl": 3600,
|
||
"changetype": "REPLACE",
|
||
"records": [
|
||
{
|
||
"content": "5.251.54.197",
|
||
"disabled": false
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}'
|
||
```
|
||
|
||
|
||
|
||
## ********** Настройка рекурсивного DNS от PowerDNS Recursor 4.9.3 порту 53 будет обрабатывать запросы с локальной машины **********
|
||
Документация: https://doc.powerdns.com/recursor/index.html
|
||
Документация: https://docs.powerdns.com/recursor/indexTOC.html
|
||
Чтобы работал резольвер от PowerDNS а не тот который от ubuntu на 53 порту нужно:
|
||
|
||
```sh
|
||
sudo apt-get install pdns-recursor -y
|
||
```
|
||
|
||
Скачиваем список корневых серверов DNS (желательно обновлять раз в несколько месяцев)
|
||
```sh
|
||
sudo wget -O /usr/share/dns/root.hints https://www.internic.net/domain/named.cache &&
|
||
sudo chown pdns:pdns /usr/share/dns/root.hints
|
||
```
|
||
|
||
```sh
|
||
sudo mkdir -p /var/run/pdns-recursor &&
|
||
sudo chown pdns:pdns /var/run/pdns-recursor &&
|
||
sudo chmod 755 /var/run/pdns-recursor
|
||
```
|
||
|
||
```sh
|
||
sudo mcedit /etc/powerdns/recursor.conf
|
||
```
|
||
|
||
Чтобы все запросы с . уходили на публичные DNS Google:
|
||
```conf
|
||
#dnssec=off #чтобы не проверял то что записано в forward-zones через корневые серверы
|
||
local-address=192.168.200.85,127.0.0.1
|
||
#forward-zones=local=127.0.0.1:5300 # Отправлять .local в авторитативный
|
||
#forward-zones+=.=8.8.8.8;8.8.4.4 # Все остальное в интернет
|
||
forward-zones=test=127.0.0.1:5300
|
||
#forward-zones-recurse=+test=127.0.0.1:5300
|
||
```
|
||
|
||
Либо если оставить настройку "nssec=process" то нужно прописать в /etc/powerdns/recursor.lua добавить комкнду addNTA, если не добавить то forward-zones не будет отрабатывать. Также можно сделать чтобы dirt.kz не выходил с наружи и с резу перенаправлялся на нужный IP с временем жизни минута 30 секунд.
|
||
```lua
|
||
addNTA("test", "Local test zone")
|
||
```
|
||
|
||
Пробуем запустить без сервиса чтобы посмотреть что выведит в лог
|
||
```sh
|
||
sudo pdns_recursor --daemon=no --loglevel=9
|
||
```
|
||
|
||
Чтобы запросы переходили на pdns-recursor
|
||
Затем перезагружаем:
|
||
```sh
|
||
sudo systemctl restart pdns-recursor &&
|
||
sudo systemctl status pdns-recursor
|
||
```
|
||
|
||
Проверяем что порт 53 открыт для DNS:
|
||
```sh
|
||
sudo ss -alnp4 | grep pdns
|
||
```
|
||
Если что-то не получается то проверяем кто слушает на порту 53
|
||
```sh
|
||
sudo apt-get install net-tools -y &&
|
||
sudo netstat -tulnp | grep :53
|
||
```
|
||
|
||
Проверяем что преобразование DNS нормально работает:
|
||
```sh
|
||
dig @192.168.200.85 google.com
|
||
```
|
||
если уже настроил PowerDNS сервер то можно попробовать отправить:
|
||
```sh
|
||
sudo rec_control wipe-cache test &&
|
||
sudo rec_control wipe-cache ccalm.test &&
|
||
dig @192.168.200.85 -p 53 ccalm.test
|
||
```
|
||
```sh
|
||
dig @127.0.0.1 -p 53 ccalm.test A
|
||
```
|
||
```sh
|
||
dig +trace @192.168.200.85 -p 53 ccalm.test
|
||
```
|
||
|
||
Проверяем логи
|
||
```sh
|
||
sudo journalctl -u pdns-recursor --since "10 min ago"
|
||
```
|
||
Или так чтобы найти ошибки:
|
||
```sh
|
||
sudo journalctl -u pdns-recursor --no-pager | grep -i failed
|
||
```
|
||
|
||
```sh
|
||
journalctl -u pdns-recursor --no-pager | tail -n 50
|
||
```
|
||
|
||
----------------------------------------------------------------------------------------------------
|
||
## ********** По идее отключать не нужно так как systemd-resolved использует другой IP: 127.0.0.54:53 (Отключаю systemd-resolved иначе он будет конфликтовать с PowerDNS) **********
|
||
|
||
Редактирую /etc/netplan/ для того чтобы прописать поднятый DNS сервер на 127.0.0.1 (не знаю сработает ли так как отключу systemd-resolved)
|
||
```sh
|
||
sudo mcedit /etc/netplan/50-cloud-init.yaml
|
||
```
|
||
И прописываю в него:
|
||
```conf
|
||
nameserver 127.0.0.1
|
||
```
|
||
After configuration modification update settings:
|
||
```sh
|
||
sudo netplan apply
|
||
```
|
||
Смотрим что сгенерировалось автоматически в resolv.conf после модификации файла
|
||
```sh
|
||
cat /etc/resolv.conf
|
||
```
|
||
Проверяем что интернет не перестал работать:
|
||
```sh
|
||
ping changelogs.ubuntu.com
|
||
```
|
||
Может быть что команда выше пытается по IP6 работать тогда попробовать по
|
||
```sh
|
||
ping -4 changelogs.ubuntu.com
|
||
```
|
||
Либо так:
|
||
```sh
|
||
ping6 changelogs.ubuntu.com
|
||
```
|
||
Взглянем на текущие DNS сервера, у меня такое выдало: DNS Servers: 195.210.46.195 195.210.46.132 на команду ниже:
|
||
```sh
|
||
resolvectl status
|
||
```
|
||
Отредактировал файл /etc/systemd/resolved.conf заменив nameservers на 8.8.8.8 и 8.8.4.4
|
||
```sh
|
||
sudo mcedit /etc/systemd/resolved.conf
|
||
```
|
||
|
||
Проверяем структуру файла:
|
||
```sh
|
||
sudo yamllint /etc/netplan/50-cloud-init.yaml
|
||
```
|
||
Применяем настройки:
|
||
```sh
|
||
sudo netplan apply
|
||
```
|
||
Проверяем что настройки изменились:
|
||
```sh
|
||
resolvectl status
|
||
```
|
||
Изменил /etc/systemd/resolved.conf настроив так:
|
||
```conf
|
||
[Resolve]
|
||
DNS=8.8.8.8 8.8.4.4
|
||
FallbackDNS=1.1.1.1 1.0.0.1
|
||
```
|
||
Потом перезагрузил:
|
||
```sh
|
||
sudo systemctl restart systemd-resolved
|
||
```
|
||
Проверяем что заняло порт 53 командой:
|
||
```sh
|
||
sudo lsof -i :53
|
||
```
|
||
Выдало:
|
||
```text
|
||
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
|
||
systemd-r 670 systemd-resolve 13u IPv4 20070 0t0 UDP localhost:domain
|
||
systemd-r 670 systemd-resolve 14u IPv4 20071 0t0 TCP localhost:domain (LISTEN)
|
||
```
|
||
|
||
Останавливаем systemd-resolved (поисковик IP по домену по умолчанию от Ubuntu)
|
||
```sh
|
||
sudo systemctl stop systemd-resolved &&
|
||
sudo systemctl disable systemd-resolved
|
||
```
|
||
|
||
----------------------------------------------------------------------------------------------------
|
||
## ********** Устанавливаю PowerAdmin (желательно в докере устанавливать) **********
|
||
Устанавливаю PowerAdmin согласно: https://phoenixnap.com/kb/powerdns-ubuntu#ftoc-heading-6
|
||
```sh
|
||
sudo apt install libpq-dev -y &&
|
||
sudo apt install python3-dev -y &&
|
||
sudo apt install python3-flask -y &&
|
||
sudo apt install python3-pip -y
|
||
```
|
||
```sh
|
||
sudo apt install -y git libmysqlclient-dev libsasl2-dev libldap2-dev libssl-dev libxml2-dev libxslt1-dev libxmlsec1-dev libffi-dev pkg-config apt-transport-https python3-venv build-essential curl &&
|
||
sudo apt install -y nodejs &&
|
||
sudo apt install -y yarn
|
||
```
|
||
устанавливаем другие зависимости:
|
||
```sh
|
||
sudo apt install npm -y &&
|
||
sudo apt remove yarn -y &&
|
||
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - &&
|
||
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list &&
|
||
sudo apt update &&
|
||
sudo apt install yarn -y &&
|
||
yarn --version &&
|
||
sudo yarn install --pure-lockfile
|
||
```
|
||
|
||
Create user for run PowerDNS Admin
|
||
```sh
|
||
sudo useradd -m -s /bin/bash powerdns-admin
|
||
```
|
||
Clone the PowerDNS Admin Git repository to /opt/web/powerdns-admin
|
||
```sh
|
||
cd ~
|
||
sudo git clone https://github.com/PowerDNS-Admin/PowerDNS-Admin.git /opt/web/powerdns-admin &&
|
||
sudo chown -R powerdns-admin:powerdns-admin /opt/web/powerdns-admin &&
|
||
cd /opt/web/powerdns-admin
|
||
```
|
||
Настраиваем переменные окружения:
|
||
```sh
|
||
sudo -u powerdns-admin -s &&
|
||
cd /opt/web/powerdns-admin
|
||
```
|
||
Устанавливаем перенеммые окружения и необходимые скрипты
|
||
```sh
|
||
python3 -mvenv ./venv &&
|
||
source ./venv/bin/activate &&
|
||
pip install --upgrade pip &&
|
||
pip install -r requirements.txt
|
||
```
|
||
Создаю базу данных
|
||
```sh
|
||
mkdir /opt/web/powerdns-admin/data &&
|
||
sqlite3 /opt/web/powerdns-admin/data/pdnsa.sqlite3 ".databases"
|
||
```
|
||
Cекретный ключ можно сгенерировать при помощи такой команды:
|
||
```sh
|
||
python3 -c "import secrets; print(secrets.token_hex(16))"
|
||
```
|
||
Такой сгенерил для 192.168.200.85: 1c100fb414b8116725a04015fbaf907e
|
||
|
||
Конфигугрируем PowerDNS Admin.
|
||
Для начала копирую пример конфигураци, потом открываю его в редакторе:
|
||
```sh
|
||
cp /opt/web/powerdns-admin/configs/development.py /opt/web/powerdns-admin/configs/production.py
|
||
```
|
||
```sh
|
||
mcedit /opt/web/powerdns-admin/configs/production.py
|
||
```
|
||
И редактируем следующие строки:
|
||
```conf
|
||
#import urllib.parse
|
||
SECRET_KEY = 'e951e5a1f4b94151b360f47edf596dd0'
|
||
SQLA_DB_PASSWORD = 'changeme'
|
||
```
|
||
|
||
Также настраиваю подключение к базе данных (сам строку составил):
|
||
```conf
|
||
SQLALCHEMY_DATABASE_URI = 'postgresql://powerdns:y7HMHi0ATxx1VC3UU5WG@127.0.0.1/powerdnsadmin'
|
||
```
|
||
Либо к новой базе данных:
|
||
|
||
```conf
|
||
SQLALCHEMY_DATABASE_URI = 'sqlite:////opt/web/powerdns-admin/data/pdnsa.sqlite3'
|
||
```
|
||
|
||
Остальное коментирую:
|
||
```conf
|
||
#SQLA_DB_USER = 'powerdns'
|
||
#SQLA_DB_PASSWORD = 'y7HMHi0ATxx1VC3UU5WG'
|
||
#SQLA_DB_HOST = '127.0.0.1'
|
||
#SQLA_DB_NAME = 'powerdnsadmin'
|
||
#SQLALCHEMY_DATABASE_URI = 'postgres://{}:{}@{}/{}'.format(
|
||
# urllib.parse.quote_plus(SQLA_DB_USER),
|
||
# urllib.parse.quote_plus(SQLA_DB_PASSWORD),
|
||
# SQLA_DB_HOST,
|
||
# SQLA_DB_NAME
|
||
#)
|
||
#SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(basedir, 'pdns.db')
|
||
```
|
||
|
||
|
||
Экспортируем переменную:
|
||
```sh
|
||
cd /opt/web/powerdns-admin &&
|
||
export FLASK_CONF=../configs/production.py &&
|
||
export FLASK_APP=powerdnsadmin/__init__.py
|
||
```
|
||
|
||
```sh
|
||
pip install --upgrade pip setuptools wheel &&
|
||
pip install setuptools &&
|
||
pip install flask-mail
|
||
```
|
||
|
||
Upgrade the database schema:
|
||
```sh
|
||
export PYTHONWARNINGS="ignore" &&
|
||
flask db upgrade
|
||
```
|
||
|
||
Если выдаёт ошибки то правим исзодный код:
|
||
```sh
|
||
mcedit /opt/web/powerdns-admin/powerdnsadmin/lib/utils.py
|
||
```
|
||
И заменяем экранирование
|
||
```python
|
||
# строку
|
||
from distutils.version import StrictVersion
|
||
# На строки
|
||
from packaging.version import Version as StrictVersion
|
||
from setuptools._distutils.util import strtobool
|
||
```
|
||
|
||
|
||
|
||
```sh
|
||
deactivate
|
||
```
|
||
|
||
```sh
|
||
sudo su - powerdns-admin
|
||
```
|
||
```sh
|
||
cd /opt/web/powerdns-admin &&
|
||
flask assets build
|
||
```
|
||
|
||
Можно запускать (нужно задать переменные окружения которые выше):
|
||
```sh
|
||
cd /opt/web/powerdns-admin &&
|
||
source venv/bin/activate &&
|
||
./run.py
|
||
```
|
||
|
||
|
||
Проще запустить с использованием SQLite по инструкции из: https://github.com/PowerDNS-Admin/PowerDNS-Admin/blob/master/docs/wiki/install/Running-PowerDNS-Admin-on-Ubuntu-or-Debian.md
|
||
|
||
|
||
Теперь можно открыть
|
||
```sh
|
||
open http://192.168.200.85:9191/login
|
||
```
|
||
Для создания административного пользователя нажимаем "Create an account" пример https://orcacore.com/set-up-powerdns-ubuntu-22-04/
|
||
Создал с именем igor и ппаролем !Ii123456
|
||
|
||
|
||
!!! Проверь что PowerDNS API включён в /etc/powerdns/pdns.conf !!!
|
||
|
||
|
||
|
||
----------------------------------------------------------------------------------------------------
|
||
Настраиваем запус на постоянную работу через Gunicorn и systemd
|
||
|
||
```sh
|
||
cd /opt/web/powerdns-admin &&
|
||
source venv/bin/activate &&
|
||
pip install gunicorn
|
||
```
|
||
|
||
```sh
|
||
exit
|
||
```
|
||
Создаю файл службы:
|
||
```sh
|
||
sudo tee /etc/systemd/system/powerdns-admin.service > /dev/null <<'EOF'
|
||
[Unit]
|
||
Description=PowerDNS-Admin Service
|
||
After=network.target
|
||
|
||
[Service]
|
||
User=powerdns-admin
|
||
Group=powerdns-admin
|
||
WorkingDirectory=/opt/web/powerdns-admin
|
||
Environment="FLASK_CONF=../configs/production.py"
|
||
Environment="FLASK_APP=powerdnsadmin/__init__.py"
|
||
ExecStart=/opt/web/powerdns-admin/venv/bin/gunicorn --workers 2 --bind 192.168.200.85:9191 "powerdnsadmin:create_app()"
|
||
Restart=always
|
||
RestartSec=5s
|
||
|
||
[Install]
|
||
WantedBy=multi-user.target
|
||
EOF
|
||
```
|
||
|
||
```sh
|
||
sudo systemctl enable powerdns-admin.service &&
|
||
sudo systemctl start powerdns-admin.service
|
||
```
|
||
```sh
|
||
sudo systemctl status powerdns-admin.service
|
||
```
|
||
```sh
|
||
sudo journalctl -u powerdns-admin.service
|
||
```
|
||
|
||
```sh
|
||
start http://192.168.200.85:9191/login
|
||
``` |