IP-туннель (VPN) с tun-интерфейсом на Python
https://video.causa-arcana.com/w/aNKNZazbkRAq9WGuhb2Cd9
test | ||
.gitignore | ||
config_client.json | ||
config_server.json | ||
LICENSE | ||
main.py | ||
README.md |
IP-туннель (VPN) с tun-интерфейсом на Python
Данный код был написан в рамках трансляции (https://www.youtube.com/watch?v=tgXV1h_YMu4).
Тестирование
Для тестирования используются Linux network namespaces и простой HTTP-сервер, чтобы убедиться, что туннель работает.
Подготовка
Команда sudo ./test/prepare
создаст network namespaces и мост между ними.
Запуск туннеля и HTTP-сервера
Каждую из этих команд нужно запустить в отдельном окне терминала и не прерывать.
sudo ./test/tunnel_server
sudo ./test/tunnel_client
sudo ./test/http_server
Тестирование
Выполнение команды sudo ./test/curl
должно вывести на экран сообщение
Hello, World!
. Это означает, что HTTP-запросы передаются по нашему туннелю.
Завершение
Завершите каждый из процессов, висящих в открытых окнах терминала, с помощью
сочетания клавиш Ctrl+C (иногда может потребоваться несколько нажатий).
Затем выполните команду sudo ./test/cleanup
для удаления namespace'ов.