PeerVPN это программа, которая поможет создать отказоустойчивую децентрализованную виртуальную p2p сеть между компьютерами через интернет, при этом она очень проста в настройке.

Если вы хотите поиграть с друзьями в игру по интернету, но в игра расчитана на локальную сеть, то программа peervpn позволит вам создать локальную сеть через интернет, чтобы поиграть с друзьями. Это opensource аналог Hamachi, для которого не нужен центральный сервер.

Возможности:

  1. Для настройки достаточно указать название и пароль сети, а также адреса одного или более пиров, уже подключенных к сети.
  2. Работает через NAT с помощью технологии relay.
  3. Отказоустойчивость. Если один из узлов, включая сервер, отключается, сеть продолжает свою работу.
  4. Для работы сети достаточно подключиться к одному из пиров в сети. После прохождения авторизации, ip адрес нового пира становится известен всем участникам сети.
  5. Сервер не обязателен, но желателен, для большей отказоустойчивости.
  6. Через виртуальную сеть можно настроить сеть между серверами или сотрудниками в офисе, а также играть в игры с друзьями, которые требуют локальной сети и не предназначены для игры в интернет.
  7. Программа является Opensource и кроссплатформенной под Windows и Linux.

Установка и настройка

PeerVPN требует, доверия ко всем узлам и участникам виртуальной сети. PeerVPN не предназначеная для анонимности. Пир, к которому происходит первоначальное подключение, должен обладать публичным IP адресом с доступным портом. Также у этого пира должен быть включен relay, чтобы клиенты за NAT смогли через него делать переадресацию. PeerVPN рекомендуется использовать для небольших сетей.

За уникальностью виртуальных IP адресов придется следить вручную. У каждого участника должен быть уникальный IP адрес.

Чтобы установить программу, скачайте архив peervpn.0.44.7z . Он содержит скомпилированные версии для Windows и Ubuntu, а также TAP драйвер.

MD5 суммы файлов:

_x000D_5488fc9b970d407b096b46019b39681f *peervpn.0.44.7z_x000D_abd97f5eccd57fc6e238b56f31b51152 *peervpn.32bit.exe_x000D_21cf504fb92519971642de766dd005e3 *peervpn.64bit.exe_x000D_2aea51743ac7ae751d97f7f4eff78a62 *peervpn.ubuntu.18.04

Для Windows

Скачайте этот архив и распакуйте его на рабочий стол, или в другую папку.. Скачать архиватор 7zip можно по ссылке .

Вам нужно будет установить TAP Driver. Зайдите в папку TAP-Drivers и выберите для Win7 или Win10. Для XP используйте версию 9.9.2. Если у вас установлен OpenVPN, то ставить TAP драйвер не нужен, потому что он уже идет в программе openvpn.

После установки драйвера, вам нужно будет переименовать TAP адаптер в peervpn0. Зайдите в центр управления сетями и общим доступом, в раздел Изменение параметров адаптера. И переимеуйте ваш TAP адаптер.

Далее перейдите в папку архива, и откройте файл config.windows.txt

Содержимое файла:

_x000D_ifconfig4 10.5.1.15/16_x000D_#initpeers 10.0.5.1 17000 10.0.5.2 17000_x000D_networkname mysecretnetwork_x000D_psk secretpassword_x000D__x000D_interface peervpn0_x000D_port 17000_x000D_enableipv4 yes_x000D_enableipv6 no_x000D_enabletunneling yes_x000D_enablerelay yes_x000D__x000D_# Раскоментируйте только для Linux_x000D_#user peervpn_x000D_#group peervpn_x000D_#chroot /tmp

Вам нужно будет указать свои значения

ifconfig4 – Это ваш внутренний IP, который будет создан в виртуальной сети. Должен быть уникальным.
interface — Название TAP адаптера, который переименовали
initpeers – К кому подключаться. Укажите публичные IP адреса серверов или друзей вместе с портом.
networkname — Название вашей виртуальной сети.
psk – Секретный пароль от вашей сети.
peervpn0 – Это dev устройство сети, которое переименовали
user, group — Под каким пользователем запускать программу
chroot — папка, которой будет ограничена программа
enablerelay — разрешить пропускать через ноду трафик, предназначенный для других участников. Следует включать на серверах, и ключевых нодах. Позволяет подключиться к участникам, которые находятся за NAT.
enabletunneling — включает тунель, обмен трафиком между другими участниками сети через TAP интерфейс. Если указано false, то нода учавствует только в обнаружении других участников. Обмениваться трафиком она не сможет.

Об остальных значениях можно посмотреть в файле example/peervpn.conf.example

После того, как вы задали значения, запустите от имени администратора файл start.32bit.bat или start.64bit.bat в зависимости от разрядности Windows системы.

Для Linux

Создайте пользователей:

_x000D_groupadd peervpn_x000D_useradd -r -M -N -g peervpn peervpn

Пропишите в iptables правила:

_x000D_iptables -I INPUT -p tcp -m tcp --dport 10502 -j ACCEPT_x000D_iptables -I INPUT -p udp -m udp --dport 10502 -j ACCEPT_x000D_iptables -I INPUT -i peervpn0 -j ACCEPT

Скачайте архив peervpn.0.44.7z . Разархивируйте его в папку.

Отредактируйте файл config.linux.txt

Для Linux в конфиге дополнительно нужно указать:

_x000D_user peervpn_x000D_group peervpn_x000D_chroot /tmp

Запустите скрипт start.ubuntu.18.04.sh

Генерация ключа

Сгенерировать ключ можно командой:

_x000D_openssl rand -base64 256 | tr -d 'n' && echo

Автозапуск в Linux

Скопируйте скомпилированный версию в папку /usr/local/sbin/peervpn . Создайте конфиг /etc/peervpn.conf .

Создайте файл /etc/systemd/system/peervpn.service

_x000D_[Unit]_x000D_Description=PeerVPN network service_x000D_Wants=network-online.target_x000D_After=network-online.target_x000D__x000D_[Service]_x000D_ExecStart=/usr/local/sbin/peervpn /etc/peervpn.conf_x000D__x000D_[Install]_x000D_WantedBy=multi-user.target

Запустите сервис:

_x000D_systemctl start peervpn.service_x000D_systemctl enable peervpn.service

Посмотрите логи:

_x000D_journalctl -f -u peervpn

Компиляция peervpn под Linux

Установите необходимые программы:

_x000D_sudo apt install libssl1.0-dev libcrypto++-dev zlib1g-dev uml-utilities_x000D_mkdir –p ~/src_x000D_cd ~/src

Скомилируйте программу

_x000D_git clone https://github.com/bayrell-os/peervpn_x000D_cd peervpn_x000D_git checkout eb35174277fbf745c5ee0d5875d659dad819adfc_x000D_make

В папке вы получите исполняемый файл peervpn

Компиляция peervpn под Windows

Чтобы скомпилировать по Windows нужна программа mingw64. Это программа поставляется вместе с программой msys2 .

Скачайте и установите программу с сайта https://www.msys2.org/

Она установится в папку C:msys64. Запустите файл C:msys64msys2.exe.

Откроется консоль. Вам нужно будет выполнить следующие команды:

_x000D_pacman -Syu_x000D_pacman -S mingw-w64-x86_64-gcc mingw-w64-i686-gcc nano mc git perl

Они установят 64 и 32 битный компилятор mingw.

Windows 64

Запустите C:msys64mingw64.exe

проверьте переменные среды

echo $PATH

_x000D_/mingw64/bin:/usr/local/bin:/usr/bin:/bin:/c/Windows/System32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0/:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl

whereis cc

_x000D_cc: /mingw64/bin/cc.exe

Скомпилируйте Openssl версии 1.0

_x000D_cd ~_x000D_git clone https://github.com/openssl/openssl/ openssl-64_x000D_cd openssl-64_x000D_git checkout OpenSSL_1_0_2u_x000D_./Configure --prefix=/mingw64/opt/openssl-1.0 mingw64_x000D_make_x000D_make install

Скачайте peervpn

_x000D_cd ~_x000D_git clone https://github.com/peervpn/peervpn peervpn-64_x000D_cd peervpn-64_x000D_git checkout eb35174277fbf745c5ee0d5875d659dad819adfc_x000D_

Внесите изменения в файл Makefile

_x000D_CFLAGS+=-O2 -I/mingw64/opt/openssl-1.0/include_x000D_LDFLAGS+=-L/mingw64/opt/openssl-1.0/lib_x000D_LIBS+=-lcrypto -lz_x000D__x000D_all: peervpn_x000D_peervpn: peervpn.o_x000D_ $(CC) $(LDFLAGS) peervpn.o $(LIBS) -o $@_x000D_peervpn.o: peervpn.c_x000D__x000D_install:_x000D_ install peervpn /usr/local/sbin/peervpn_x000D_clean:_x000D_ rm -f peervpn peervpn.o

Скомпилируйте peervpn

_x000D_make

Windows 32

Запустите C:msys64mingw32.exe

проверьте переменные среды

echo $PATH

_x000D_/mingw32/bin:/usr/local/bin:/usr/bin:/bin:/c/Windows/System32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0/:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl

whereis cc

_x000D_cc: /mingw32/bin/cc.exe

Скомпилируйте Openssl версии 1.0

_x000D_cd ~_x000D_git clone https://github.com/openssl/openssl/ openssl-32_x000D_cd openssl-32_x000D_git checkout OpenSSL_1_0_2u_x000D_./Configure --prefix=/mingw32/opt/openssl-1.0 mingw_x000D_make_x000D_make install

Скачайте peervpn

_x000D_cd ~_x000D_git clone https://github.com/peervpn/peervpn peervpn-32_x000D_cd peervpn-32_x000D_git checkout eb35174277fbf745c5ee0d5875d659dad819adfc_x000D_

Внесите изменения в файл Makefile

_x000D_CFLAGS+=-O2 -I/mingw32/opt/openssl-1.0/include_x000D_LDFLAGS+=-L/mingw32/opt/openssl-1.0/lib_x000D_LIBS+=-lcrypto -lz_x000D__x000D_all: peervpn_x000D_peervpn: peervpn.o_x000D_ $(CC) $(LDFLAGS) peervpn.o $(LIBS) -o $@_x000D_peervpn.o: peervpn.c_x000D__x000D_install:_x000D_ install peervpn /usr/local/sbin/peervpn_x000D_clean:_x000D_ rm -f peervpn peervpn.o

Скомпилируйте peervpn

_x000D_make