Skip to content

VPN точка-точка на основе WebSocket

Notifications You must be signed in to change notification settings

Kudes1/websocketTunnel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

WebsocketTunnel

Данная поделка является попыткой реализации VPN туннеля точка-точка через WebSocket, для того чтобы туннель можно было поднимать за ReverseProxy и чтобы трафик был не отличим от HTTPs. По умолчанию никакого шифрования нет, но можно посадить туннель за ReverseProxy и использовать шифрование с помощью SSL/TLS. Так же программа слушает на :8080, порт указывается в коде(на данный момент).

Сборка

Перед сборкой установить зависимости.

git clone https://github.com/Kudes1/websocketTunnel.git
cd websocketTunnel
go mod tidy
go build -o websockettunnel

Перед запуском

Перед запуском программы требуется создать tun интерфейс в системе и указать его название в конфигурационном файле config.yaml, так же будет браться MTU от tun адаптера. Пример создания туннеля:

ip tuntap add dev tun55 mode tun
ip addr add 192.168.55.1/24 dev tun55
ip link set tun55 up

Запуск

Убедитесь что в папке с исполняемым файлом есть config.yaml

Проксирование и шифрование

Для проксирования я использовал Caddy с перенаправлением пути /vpn на 127.0.0.1:8080 Вот пример Caddyfile:

example.net:443 {
    reverse_proxy /vpn 127.0.0.1:8080 {
        transport http {
            versions 1.1
            compression off
        }
    }

    tls [email protected]
}

На текущий момент

Программа работает из шела, как службу не пытался запускать, когда-нибудь в планах. По замерам iperf3 максимум удавалось получить 70-80Mbit/s.

About

VPN точка-точка на основе WebSocket

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Languages