Можно ли создать удаленную локальную сеть на Python?

Могу ли я сделать что-то похожее на RadminVPN или Hamachi, используя Python? То есть нужно чтобы была возможность создать локальную сеть и подключится к ней удаленно по ip с другого компьютера. Если, да то какие библиотеки стоит использовать? Заранее спасибо


Ответы (1 шт):

Автор решения: eri

Можно, я делал.

Но кроме питона и библиотек понадобится драйвер виртуальной сети. Например , из простых, tun/tap (в линукс встроенный, в виндовс качайте с openvpn https://build.openvpn.net/downloads/releases/ в конце страницы). Вроде можно сделать на NDIS - но там надо залезть в системное программирование.

Библиотека никакая не нужна, но можно использовать для удобства python-pytuntap или python-pytun.

Суть tap драйвера в том что он создает пару - файловый дескриптор и интерфейс сети.

Пакеты попадая в интерфейс читаются байтами из файла и передаются вашей программой на прокси по интернету, прокси перенаправляет пакет в другой комп. Тот пишет байты в файл и из сетевушки вылетает пакет.

Если использовать вызов copyfile, то вполне приличная скорость получается.

Прокси можно исключить, но надо научиться делать p2p. Тут начните читать про stun.

→ Ссылка