6.2 KiB
Быстрый старт (через скрипты)
Этот способ самый простой. Тебе не нужен Go, не нужно ничего компилировать. Скрипт всё сделает сам: скачает исходники, соберёт в контейнере, запустит.
Проект в бете. По проблемам: t.me/openlibrecommunity
Что нужно установить
git
apt install git # Debian / Ubuntu
pacman -S git # Arch
dnf install git # Fedora / RHEL / CentOS
podman
Скрипт попробует установить podman сам, но лучше поставить заранее.
apt install podman # Debian / Ubuntu
pacman -S podman # Arch
dnf install podman # Fedora / RHEL / CentOS
curl (опционально, только для проверки)
apt install curl # Debian/Ubuntu
pacman -S curl # Arch
dnf install curl # Fedora
Шаг 1: Скачать репозиторий
git clone https://github.com/openlibrecommunity/olcrtc --recurse-submodules
cd olcrtc
Шаг 2: Запустить сервер
На машине, через которую должен идти трафик (VPS, сервер за рубежом, домашний ПК):
./script/srv.sh
Скрипт задаст несколько вопросов. Отвечай Enter если устраивает значение по умолчанию.
Carrier (на каком сервисе передавать трафик)
Select carrier:
1) telemost
2) jazz
3) wbstream
Enter choice [1-3, default: 1]:
Выбери сервис. Смотри матрицу в settings.md какой транспорт с каким carrier работает.
Transport (как именно передавать данные)
Select transport:
1) datachannel
2) videochannel
3) seichannel
4) vp8channel
Enter choice [1-4, default: 1]:
Рекомендации:
- datachannel - самый быстрый (~6 МБ/с), работает везде кроме telemost
- vp8channel - работает везде включая telemost, вводи FPS=60, batch=64
- seichannel - для wbstream/sber, всё по умолчанию
- videochannel - медленный (~200 КБ/с), только в крайнем случае
Room ID
Enter Room ID:
Для telemost - создай руму через сайт телемоста и вставь его.
Для jazz и wbstream можно нажать Enter - ID сгенерируется автоматически, скрипт сам его вытащит из логов и покажет.
DNS
DNS server [default: 1.1.1.1:53]:
Нажми Enter. Менять не нужно если нет причин, на всякий можно поставить 77.88.8.8.
SOCKS5 прокси для исходящего трафика
Use SOCKS5 proxy for egress? (y/N):
Если нет - просто Enter. Если хочешь чтобы сервер сам ходил через прокси - введи y.
Параметры транспорта (только для vp8channel)
VP8 FPS [default: 25]: 60
VP8 batch size (frames per tick) [default: 1]: 64
Введи 60 и 64 - это оптимальные значения.
Результат
После запуска скрипт выведет:
[+] Server started successfully!
Container name: olcrtc-server
Carrier: telemost
Transport: vp8channel
Room ID: 75587919855134
Encryption key: 4fc9ab159c0268a12766be00c0a85138df5905f72c5eb5780c380507ebe0174d
Сохрани Room ID и Encryption key - они нужны для клиента.
Шаг 3: Запустить клиент
На своей машине (домашний ПК, ноутбук):
git clone https://github.com/openlibrecommunity/olcrtc --recurse-submodules
cd olcrtc
./script/cnc.sh
Отвечай на те же вопросы что на сервере - carrier, transport, room ID должны совпадать.
Когда спросит ключ:
Enter Encryption Key (hex): 4fc9ab159c0268a12766be00c0a85138df5905f72c5eb5780c380507ebe0174d
Вставь ключ с сервера.
SOCKS5 адрес и порт
SOCKS5 ip [default: 127.0.0.1]:
SOCKS5 port [default: 8808]:
Нажми Enter оба раза. Прокси поднимется на 127.0.0.1:8808.
Результат
[+] Client started successfully!
Container name: olcrtc-client
SOCKS5 proxy: 127.0.0.1:8808
Шаг 4: Проверить
curl --socks5-hostname 127.0.0.1:8808 https://icanhazip.com
Должен вернуть IP твоего сервера, а не домашний IP.
Или выставить переменную окружения чтобы всё шло через прокси:
export all_proxy=socks5h://127.0.0.1:8808
curl https://icanhazip.com
Управление
Логи
podman logs -f olcrtc-server # на сервере
podman logs -f olcrtc-client # на клиенте
Остановить
podman stop olcrtc-server
podman stop olcrtc-client
Перезапустить (просто запусти скрипт снова)
Скрипт сам останавливает старый контейнер перед стартом нового.
Частые проблемы
podman: command not found - установи podman (см. начало документа).
git: command not found - установи git.
Контейнер запустился но curl возвращает домашний IP - подожди 10-15 секунд после старта, соединение устанавливается не мгновенно.
Ключ уже есть в ~/.olcrtc_key - скрипт не генерирует новый, использует старый. Если хочешь новый - удали файл: rm ~/.olcrtc_key.