VyOS. Установка tinc
2026-10-24
·
2 мин. для прочтения
VyOS. Установка tinc.
Содержание
1 Дополнительное ПО в VyOS
- При обновлении через
vyos upgrade,add system imageфактически устанавливается новый образ системы. - Поэтому пакеты, установленные через
apt, и файлы в/usr,/usr/localне переживают обновление. - Постоянно сохраняется пользовательский каталог
/config. - Будем ставить в следующую иерархию:
/config/opt/tinc/ ├── sbin/ │ ├── tinc │ └── tincd ├── etc/ │ └── tinc/ │ └── / ├── systemd/ │ └── tinc@.service └── var/ - Пути:
/config/opt/tinc/ /config/opt/tinc/sbin/tincd /config/opt/tinc/etc/tinc/tinc.conf /config/opt/tinc/etc/tinc/hosts/ /config/opt/tinc/systemd/tinc@.service
2 Скачать пакет
- Создадим каталог:
sudo mkdir -p /config/opt/tinc
- Скачаем пакет:
mkdir /tmp/tinc cd /tmp/tinc wget https://mirror.yandex.ru/debian/pool/main/t/tinc/tinc_1.1~pre18-1+b1_amd64.deb wget https://mirror.yandex.ru/debian/pool/main/m/miniupnpc/libminiupnpc17_2.2.4-1+b1_amd64.deb - Распакуем пакет:
dpkg --extract tinc_1.1~pre18-1+b1_amd64.deb . dpkg --extract libminiupnpc17_2.2.4-1+b1_amd64.deb . - Скопируем файлы:
sudo cp -R {etc,lib,usr} /config/opt/tinc sudo mkdir -p /config/opt/tinc/etc/tinc
3 Создать systemd unit
- Создадим шаблонный unit
tinc@.service, чтобы можно было запускать несколько сетей:
sudo mkdir -p /config/opt/tinc/systemd
sudo tee /config/opt/tinc/systemd/tinc@.service >/dev/null <<'EOF'
[Unit]
Description=tinc VPN network %i
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
Environment=PATH=/usr/sbin:/usr/bin:/sbin:/bin
Environment="LD_LIBRARY_PATH=/config/opt/tinc/usr/lib/x86_64-linux-gnu"
ExecStartPre=-/sbin/modprobe tun
ExecStart=/config/opt/tinc/usr/sbin/tincd -n %i -c /config/opt/tinc/etc/tinc/%i -D
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
RestartSec=5
SyslogIdentifier=tinc-%i
[Install]
WantedBy=multi-user.target
EOF
4 Скрипт восстановления
- Этот скрипт будет копировать unit в
/run/systemd/systemи запускать все найденные сети tinc.
sudo tee /config/scripts/tinc-restore.sh >/dev/null <<'EOF'
#!/bin/sh
TINC=/config/opt/tinc
UNIT_SRC=$TINC/systemd/tinc@.service
UNIT_DST=/run/systemd/system/tinc@.service
[ -x "$TINC/usr/sbin/tincd" ] || exit 0
[ -f "$UNIT_SRC" ] || exit 0
install -d /run/systemd/system
install -m 0644 "$UNIT_SRC" "$UNIT_DST"
systemctl daemon-reload
for d in "$TINC/etc/tinc"/*/; do
[ -f "${d}tinc.conf" ] || continue
net=$(basename "$d")
systemctl --no-block start "tinc@$net" || true
done
EOF
sudo chmod 755 /config/scripts/tinc-restore.sh
5 Подключить скрипт к загрузке VyOS
- В VyOS есть пользовательский скрипт:
/config/scripts/vyos-postconfig-bootup.script
- Он сохраняется в
/configи переживает обновления. - Нужно сделать так, чтобы он вызывал
tinc-restore.sh. - Добавьте в него строку:
/config/scripts/tinc-restore.sh
6 Сконфигурите сеть
- VPN. Настройка tinc
- Для вызова
tincиспользуйте (замените $VPNNAME на имя сети):/config/opt/tinc/usr/sbin/tinc -c /config/opt/tinc/etc/tinc/$VPNNAME - Для вызова
tincdиспользуйте:LD_LIBRARY_PATH=/config/opt/tinc/usr/lib/x86_64-linux-gnu /config/opt/tinc/usr/sbin/tincd -c /config/opt/tinc/etc/tinc/$VPNNAME -n $VPNNAME -D
7 Проверить запуск вручную
- Запустите скрипт вручную:
sudo /config/scripts/tinc-restore.sh
Если у вас есть сеть, например vpn1, проверьте:
systemctl status tinc@vpn1
journalctl -u tinc@vpn1 -n 50 --no-pager
8 После обновления системы
- После
vyos upgradeили установки нового образа:/configостанется;/config/opt/tinc/sbin/tincdостанется;/config/scripts/tinc-restore.shостанется;- при загрузке VyOS выполнит
vyos-postconfig-bootup.script; - тот восстановит systemd unit и запустит ваши сети.
