PeerVPN это программа, которая поможет создать отказоустойчивую децентрализованную виртуальную p2p сеть между компьютерами через интернет, при этом она очень проста в настройке.
Если вы хотите поиграть с друзьями в игру по интернету, но в игра расчитана на локальную сеть, то программа peervpn позволит вам создать локальную сеть через интернет, чтобы поиграть с друзьями. Это opensource аналог Hamachi, для которого не нужен центральный сервер.
Возможности:
- Для настройки достаточно указать название и пароль сети, а также адреса одного или более пиров, уже подключенных к сети.
- Работает через NAT с помощью технологии relay.
- Отказоустойчивость. Если один из узлов, включая сервер, отключается, сеть продолжает свою работу.
- Для работы сети достаточно подключиться к одному из пиров в сети. После прохождения авторизации, ip адрес нового пира становится известен всем участникам сети.
- Сервер не обязателен, но желателен, для большей отказоустойчивости.
- Через виртуальную сеть можно настроить сеть между серверами или сотрудниками в офисе, а также играть в игры с друзьями, которые требуют локальной сети и не предназначены для игры в интернет.
- Программа является 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