This repository has been archived on 2023-05-11. You can view files and clone it, but cannot push or open issues or pull requests.
2020-04-18 12:47:11 +00:00
|
|
|
|
IP-туннель (VPN) с tun-интерфейсом на Python
|
|
|
|
|
============================================
|
2020-04-17 08:47:45 +00:00
|
|
|
|
|
2020-04-18 12:47:11 +00:00
|
|
|
|
Данный код был написан в рамках трансляции
|
2020-04-19 06:50:10 +00:00
|
|
|
|
(https://www.youtube.com/watch?v=tgXV1h_YMu4).
|
2020-04-18 16:16:49 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Тестирование
|
|
|
|
|
------------
|
|
|
|
|
|
|
|
|
|
Для тестирования используются 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'ов.
|