Пиринговые VPN. tinc
Пиринговые VPN. tinc
2026-01-15
·
3 мин. для прочтения
Пиринговые VPN. tinc.
Содержание
1 Общая информация
- Сайт: https://tinc-vpn.org
- Репозиторий: https://github.com/gsliepen/tinc
1.1 Android
1.2 Особенности
- Распределенная топология (нет необходимости в отдельном сервере VPN).
- Работает поверх сетей любой топологии, в том числе за NAT и поверх других VPN.
- Поддерживает активное соединение даже после переключения сети (например с wi-fi на 4g) или при входе и выходе из других VPN.
- Реализации для большинства операционных систем.
2 Версии
- Две версии:
- tinc-1.0, стабильная (все операции по обмену ключами делаются вручную);
- tinc-1.1 (большая часть операций автоматизирована).
- Для автоматизации операций для tinc-1.0. можно использовать проект tinc-boot.
2.1 tinc-boot
- Репозиторий: https://github.com/reddec/tinc-boot
3 Установка
3.1 Gentoo
- Находится в основном репозитории:
emerge --ask net-vpn/tinc
4 Настройка tinc 1.1
4.1 Обозначения
- <VPNNAME> : имя, которое вы хотите присвоить вашей сети.
- <IPNET> внутренняя IP сеть для сети <VPNNAME>.
- <IPNET> внутренний IP адрес, который вы хотите присвоить вашему текущему устройству.
- Распределение IP-адресов в режиме маршрутизатора (по умолчанию) осуществляется вручную, поэтому вам необходимо следить за назначенными адресами.
- <FQDNORIP> : полное доменное имя или IP-адрес хоста, который вы настраиваете.
- <HOSTNAME> : имя хоста.
4.2 Брандмауэр
- Открыть порт 655/udp.
- firewalld:
firewall-cmd --add-service=tinc --permanent firewall-cmd --reload
4.3 Настройка интерфейса Linux
- Настраивается на всех машинах.
- Создайте файл запуска интерфейса:
sudo cat>/etc/tinc/${VPNNAME}/tinc-up <<EOL #!/bin/bash ip link set \${INTERFACE} up ## Change this address per-host to match the hosts/hostname file! ip addr add <IP>/32 dev \${INTERFACE} ip route add <IPNET> dev \${INTERFACE} ## add domain per interface resolvectl domain ${VPNNAME} ~${VPNNAME}.internal EOL - Создайте файл остановки интерфейса:
sudo cat>/etc/tinc/${VPNNAME}/tinc-down <<EOL #!/bin/bash ip route del <IPNET> dev \${INTERFACE} # Change this address per-host to match the hosts/hostname file! ip addr del <IP>/32 dev \${INTERFACE} ip link set \${INTERFACE} down EOL
4.4 Первая машина
- Машина должна иметь внешний IP-адрес.
4.4.1 Создание сети
- Создайте сеть:
sudo tinc -n <VPNNAME> init <HOSTNAME> - Запустите сервер с включённой отладкой:
sudo tincd -n <VPNNAME> -D -d3 - Подключите сеть:
sudo tinc -n <VPNNAME> add subnet <IP>/32 - Подключите текущую машину:
sudo tinc -n <VPNNAME> add address=<FQDNORIP>
4.5 Подключение других устройств
- В следующих командах замените <CLIENTNAME> именем, которое вы хотите присвоить устройству.
- Сгенерируйте ссылку-приглашение на компьютере, к которому вы хотите подключиться:
sudo tinc -n <VPNNAME> invite <CLIENTNAME> - Это выведет <INVITEURL>.
- Подключитесь к приглашению:
sudo tinc join <INVITEURL> - Подключитесь к VPN (с отладкой):
sudo tincd -n <VPNNAME> - Подключите хост:
sudo tinc -n <VPNNAME> add subnet <IP>/32 - Создайте скрипты для интерфейса.
- Остановите демон и поместите его в автозагрузку:
systemctl enable --now tinc@<VPNAME>.service
Authors
Профессор кафедры теории вероятностей и кибербезопасности
Мои научные интересы включают физику, администрирование Unix и сетей.