Архитектура VTun
VTun работает по принципу клиент-серверной архитектуры. На одном из хостов программа запускается как сервер, а на остальных - как клиент. Количество клиентов ограничивается только мощностью компьютера, исполняющего роль сервера.
При использовании firewall необходимо разрешить прохождение пакета на порт 5000, по умолчанию используемый VPN-сервером для прослушивания сети на предмет наличия подключений. При установке соединения клиент пытается соединиться с этим портом. Сервер производит аутентификацию на основе пароля, записанного в файле /usr/local/etc/vtun.conf. Если все проходит нормально, сервер вызовом fork () запускает еще один демон vtun (который и будет в дальнейшем работать с клиентом) а сам возвращается в исходное состояние и ждет дальнейших подключений.
Но это еще не все. Возможен одновременный запуск на одном компьютере нескольких демонов vtun, каждый из которых считывает собственный конфигурационный файл и работает в режиме сервера или клиента. Таким образом, создается несколько сетей vtun. Единственная проблема состоит в том, что при трансляции сетевого адреса (NAT) использовать VPN-тунель не удастся, так как последний подтверждает подлинность пакетов на основании сквозного шифрования и проверки контрольной суммы. NAT же перезаписывает содержание проходящих пакетов, поэтому они не пройдут такую проверку.