diff --git a/CHANGELOG.md b/CHANGELOG.md index a464d84..649b0b7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ # Changelog The version lives in `include/vtesse/version.h`. Binaries are published only as the -[`latest`](https://github.com/compot-dev/vtesse/releases/tag/latest) release, rebuilt +[`latest`](https://github.com/OpenIPC/vtesse/releases/tag/latest) release, rebuilt from every push to `main`; this file is the change history. ## 1.12 — 2026-10-15 diff --git a/README.md b/README.md index bb11b71..4199bfd 100644 --- a/README.md +++ b/README.md @@ -4,8 +4,8 @@ **English** | [Русский](README.ru.md) | [简体中文](README.zh-CN.md) -[![Build](https://github.com/compot-dev/vtesse/actions/workflows/build.yml/badge.svg)](https://github.com/compot-dev/vtesse/actions/workflows/build.yml) -[![Release](https://img.shields.io/badge/download-latest-blue)](https://github.com/compot-dev/vtesse/releases/tag/latest) +[![Build](https://github.com/OpenIPC/vtesse/actions/workflows/build.yml/badge.svg)](https://github.com/OpenIPC/vtesse/actions/workflows/build.yml) +[![Release](https://img.shields.io/badge/download-latest-blue)](https://github.com/OpenIPC/vtesse/releases/tag/latest) [![License](https://img.shields.io/badge/license-Prosperity%203.0-blue)](LICENSE.md) [![Platform](https://img.shields.io/badge/platform-Linux%20%7C%20Android-brightgreen)](docs/architecture.md) [![Status](https://img.shields.io/badge/status-prototype-orange)](docs/security.md) @@ -27,7 +27,7 @@ A resource access microsystem: a client for existing **VTun** servers (`vtund -s ## Download -Static binaries (no dependencies) are on the [releases page](https://github.com/compot-dev/vtesse/releases): [`latest`](https://github.com/compot-dev/vtesse/releases/tag/latest) is rebuilt from every push to `main` (stable file names, used below). The release title shows the VTesse version; the change history is in [CHANGELOG.md](CHANGELOG.md). +Static binaries (no dependencies) are on the [releases page](https://github.com/OpenIPC/vtesse/releases): [`latest`](https://github.com/OpenIPC/vtesse/releases/tag/latest) is rebuilt from every push to `main` (stable file names, used below). The release title shows the VTesse version; the change history is in [CHANGELOG.md](CHANGELOG.md). | Platform | `ARCH` | |-------------------------------------------------------------------------------------------------|----------| @@ -62,7 +62,7 @@ On a camera or router the ID can come from the device's own MAC instead: replace ```sh # as root; ARCH = arm32 or mipsel, see the table ARCH=arm32 -URL=https://github.com/compot-dev/vtesse/releases/download/latest +URL=https://github.com/OpenIPC/vtesse/releases/download/latest # directories, then each file straight to its place, executable on success mkdir -p /usr/bin /usr/share/vtesse /etc/init.d curl -fsSL -o /usr/bin/vtesse $URL/vtesse-tap-$ARCH && chmod 755 /usr/bin/vtesse @@ -87,7 +87,7 @@ Start at boot (`S99vtesse` is already installed; settings can be overridden in ` opkg update && opkg install curl kmod-tun # kmod-tun is needed for --tap only; apk add curl kmod-tun on OpenWrt 25+ # ARCH = mipsel (MT7621, MT7628), mips (ath79), arm64 or arm32, see the table ARCH=mipsel -URL=https://github.com/compot-dev/vtesse/releases/download/latest +URL=https://github.com/OpenIPC/vtesse/releases/download/latest mkdir -p /usr/bin /usr/share/vtesse /etc/init.d curl -fsSL -o /usr/bin/vtesse $URL/vtesse-tap-$ARCH && chmod 755 /usr/bin/vtesse curl -fsSL -o /usr/share/vtesse/vtesse-hook.sh $URL/vtesse-hook.sh && chmod 755 /usr/share/vtesse/vtesse-hook.sh @@ -107,14 +107,14 @@ Tried on a Netcraze Explorer NC-1621 (Keenetic rebrand, NDMS 5.2 beta, MIPS, 128 ```sh ARCH=x86_64 # x86_64; arm64 / arm32 on a Raspberry Pi with a 64-bit / 32-bit OS mkdir -p ~/.local/bin -curl -fsSL -o ~/.local/bin/vtesse https://github.com/compot-dev/vtesse/releases/download/latest/vtesse-$ARCH && chmod 755 ~/.local/bin/vtesse +curl -fsSL -o ~/.local/bin/vtesse https://github.com/OpenIPC/vtesse/releases/download/latest/vtesse-$ARCH && chmod 755 ~/.local/bin/vtesse # no root needed: SOCKS5 on 127.0.0.1:1080 and a forward to a camera's RTSP ~/.local/bin/vtesse --config /etc/vtesse.conf --socks 1080 --forward 8554:10.78.0.10:554 ``` ### Android -Android 5.0 and later, including Android TV boxes: [`vtesse-android.apk`](https://github.com/compot-dev/vtesse/releases/download/latest/vtesse-android.apk). No VPN permission and no VPN icon — a service with a regular notification runs the tunnel and offers SOCKS5 and port forwards on `127.0.0.1`; a player such as OpenIPC Decoder or VLC opens e.g. `rtsp://127.0.0.1:1551/...` (camera 1 of server 1). Up to three servers with up to 8 cameras each on fixed ports. The device ID is generated on first start (long press copies it) and must be added as a session on the server. Up to three server profiles, switched with one press. See [android/README.md](android/README.md). +Android 5.0 and later, including Android TV boxes: [`vtesse-android.apk`](https://github.com/OpenIPC/vtesse/releases/download/latest/vtesse-android.apk). No VPN permission and no VPN icon — a service with a regular notification runs the tunnel and offers SOCKS5 and port forwards on `127.0.0.1`; a player such as OpenIPC Decoder or VLC opens e.g. `rtsp://127.0.0.1:1551/...` (camera 1 of server 1). Up to three servers with up to 8 cameras each on fixed ports. The device ID is generated on first start (long press copies it) and must be added as a session on the server. Up to three server profiles, switched with one press. See [android/README.md](android/README.md). ![VTesse for Android: server profiles and cameras (example data)](docs/img/android-settings.png) @@ -152,19 +152,19 @@ The session name is the device ID (12 characters `0-9A-F`, also used as the MAC) ## Roadmap -Stages and tasks are tracked as [GitHub issues](https://github.com/compot-dev/vtesse/issues): +Stages and tasks are tracked as [GitHub issues](https://github.com/OpenIPC/vtesse/issues): -| Stage | Status | Issues | -|----------------------------------------------------------------------|------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 0. Test bench (VTun 3.0.2 in Docker, bridge, DHCP with option 121) | ✅ Done | [#1](https://github.com/compot-dev/vtesse/issues/1) ✅ | -| 1. CLI prototype on Linux: TCP + `type ether` + DHCP over lwIP | ✅ Done | [#2](https://github.com/compot-dev/vtesse/issues/2) ✅ [#3](https://github.com/compot-dev/vtesse/issues/3) ✅ [#4](https://github.com/compot-dev/vtesse/issues/4) ✅ [#5](https://github.com/compot-dev/vtesse/issues/5) ✅ [#6](https://github.com/compot-dev/vtesse/issues/6) ✅ [#7](https://github.com/compot-dev/vtesse/issues/7) ✅ [#8](https://github.com/compot-dev/vtesse/issues/8) ✅ | -| 2. Local proxy: SOCKS5 and port forwarding | ✅ Done | [#10](https://github.com/compot-dev/vtesse/issues/10) ✅ [#11](https://github.com/compot-dev/vtesse/issues/11) ✅ | -| 3. Embedded Linux: ARM/MIPS cross builds, footprint, CI | ✅ Done | [#12](https://github.com/compot-dev/vtesse/issues/12) ✅ [#20](https://github.com/compot-dev/vtesse/issues/20) ✅ | -| 3. TAP/TUN backend (kernel interface instead of lwIP, Linux targets) | ✅ Done | [#19](https://github.com/compot-dev/vtesse/issues/19) ✅ | -| 4. Android app (no VpnService) | ✅ Done | [#13](https://github.com/compot-dev/vtesse/issues/13) ✅ | -| 5. Optional: UDP transport, TLS wrapper, Blowfish auth | ⏸ Deferred | [#14](https://github.com/compot-dev/vtesse/issues/14) [#15](https://github.com/compot-dev/vtesse/issues/15) [#16](https://github.com/compot-dev/vtesse/issues/16) | -| 6. Reuse of the upper layers for camex | ⏸ Deferred | [#17](https://github.com/compot-dev/vtesse/issues/17) | -| Cross-cutting: tests, license | ✅ Done | [#9](https://github.com/compot-dev/vtesse/issues/9) ✅ [#18](https://github.com/compot-dev/vtesse/issues/18) ✅ | +| Stage | Status | Issues | +|----------------------------------------------------------------------|------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| 0. Test bench (VTun 3.0.2 in Docker, bridge, DHCP with option 121) | ✅ Done | [#1](https://github.com/OpenIPC/vtesse/issues/1) ✅ | +| 1. CLI prototype on Linux: TCP + `type ether` + DHCP over lwIP | ✅ Done | [#2](https://github.com/OpenIPC/vtesse/issues/2) ✅ [#3](https://github.com/OpenIPC/vtesse/issues/3) ✅ [#4](https://github.com/OpenIPC/vtesse/issues/4) ✅ [#5](https://github.com/OpenIPC/vtesse/issues/5) ✅ [#6](https://github.com/OpenIPC/vtesse/issues/6) ✅ [#7](https://github.com/OpenIPC/vtesse/issues/7) ✅ [#8](https://github.com/OpenIPC/vtesse/issues/8) ✅ | +| 2. Local proxy: SOCKS5 and port forwarding | ✅ Done | [#10](https://github.com/OpenIPC/vtesse/issues/10) ✅ [#11](https://github.com/OpenIPC/vtesse/issues/11) ✅ | +| 3. Embedded Linux: ARM/MIPS cross builds, footprint, CI | ✅ Done | [#12](https://github.com/OpenIPC/vtesse/issues/12) ✅ [#20](https://github.com/OpenIPC/vtesse/issues/20) ✅ | +| 3. TAP/TUN backend (kernel interface instead of lwIP, Linux targets) | ✅ Done | [#19](https://github.com/OpenIPC/vtesse/issues/19) ✅ | +| 4. Android app (no VpnService) | ✅ Done | [#13](https://github.com/OpenIPC/vtesse/issues/13) ✅ | +| 5. Optional: UDP transport, TLS wrapper, Blowfish auth | ⏸ Deferred | [#14](https://github.com/OpenIPC/vtesse/issues/14) [#15](https://github.com/OpenIPC/vtesse/issues/15) [#16](https://github.com/OpenIPC/vtesse/issues/16) | +| 6. Reuse of the upper layers for camex | ⏸ Deferred | [#17](https://github.com/OpenIPC/vtesse/issues/17) | +| Cross-cutting: tests, license | ✅ Done | [#9](https://github.com/OpenIPC/vtesse/issues/9) ✅ [#18](https://github.com/OpenIPC/vtesse/issues/18) ✅ | ✅ — closed issue. ⏸ — deferred. @@ -174,7 +174,7 @@ Stages and tasks are tracked as [GitHub issues](https://github.com/compot-dev/vt ## Support -- Questions and bug reports: [GitHub Issues](https://github.com/compot-dev/vtesse/issues) +- Questions and bug reports: [GitHub Issues](https://github.com/OpenIPC/vtesse/issues) - Documentation: [docs/](docs/) [![Telegram](https://openipc.org/images/telegram_button.svg)](https://openipc.org/our-channels) diff --git a/README.ru.md b/README.ru.md index 0df05ce..dcc77ed 100644 --- a/README.ru.md +++ b/README.ru.md @@ -4,8 +4,8 @@ [English](README.md) | **Русский** | [简体中文](README.zh-CN.md) -[![Build](https://github.com/compot-dev/vtesse/actions/workflows/build.yml/badge.svg)](https://github.com/compot-dev/vtesse/actions/workflows/build.yml) -[![Release](https://img.shields.io/badge/download-latest-blue)](https://github.com/compot-dev/vtesse/releases/tag/latest) +[![Build](https://github.com/OpenIPC/vtesse/actions/workflows/build.yml/badge.svg)](https://github.com/OpenIPC/vtesse/actions/workflows/build.yml) +[![Release](https://img.shields.io/badge/download-latest-blue)](https://github.com/OpenIPC/vtesse/releases/tag/latest) [![License](https://img.shields.io/badge/license-Prosperity%203.0-blue)](LICENSE.md) [![Platform](https://img.shields.io/badge/platform-Linux%20%7C%20Android-brightgreen)](docs/architecture.md) [![Status](https://img.shields.io/badge/status-prototype-orange)](docs/security.md) @@ -27,7 +27,7 @@ ## Скачивание -Статические бинарники (без зависимостей) — на [странице релизов](https://github.com/compot-dev/vtesse/releases): [`latest`](https://github.com/compot-dev/vtesse/releases/tag/latest) пересобирается при каждом push в `main` (постоянные имена файлов, используются ниже). Версия VTesse указана в заголовке релиза; история изменений — в [CHANGELOG.md](CHANGELOG.md). +Статические бинарники (без зависимостей) — на [странице релизов](https://github.com/OpenIPC/vtesse/releases): [`latest`](https://github.com/OpenIPC/vtesse/releases/tag/latest) пересобирается при каждом push в `main` (постоянные имена файлов, используются ниже). Версия VTesse указана в заголовке релиза; история изменений — в [CHANGELOG.md](CHANGELOG.md). | Платформа | `ARCH` | |-----------------------------------------------------------------------------------------------|----------| @@ -62,7 +62,7 @@ chmod 600 /etc/vtesse.conf ```sh # от root; ARCH = arm32 или mipsel, см. таблицу ARCH=arm32 -URL=https://github.com/compot-dev/vtesse/releases/download/latest +URL=https://github.com/OpenIPC/vtesse/releases/download/latest # каталоги, затем каждый файл сразу на своё место, права — после успешной загрузки mkdir -p /usr/bin /usr/share/vtesse /etc/init.d curl -fsSL -o /usr/bin/vtesse $URL/vtesse-tap-$ARCH && chmod 755 /usr/bin/vtesse @@ -87,7 +87,7 @@ vtesse --config /etc/vtesse.conf --tap --ifname vtesse0 --hook /usr/share/vtesse opkg update && opkg install curl kmod-tun # kmod-tun нужен только для --tap; на OpenWrt 25+: apk add curl kmod-tun # ARCH = mipsel (MT7621, MT7628), mips (ath79), arm64 или arm32, см. таблицу ARCH=mipsel -URL=https://github.com/compot-dev/vtesse/releases/download/latest +URL=https://github.com/OpenIPC/vtesse/releases/download/latest mkdir -p /usr/bin /usr/share/vtesse /etc/init.d curl -fsSL -o /usr/bin/vtesse $URL/vtesse-tap-$ARCH && chmod 755 /usr/bin/vtesse curl -fsSL -o /usr/share/vtesse/vtesse-hook.sh $URL/vtesse-hook.sh && chmod 755 /usr/share/vtesse/vtesse-hook.sh @@ -107,14 +107,14 @@ curl -fsSL -o /etc/init.d/vtesse $URL/vtesse.init && chmod 755 /etc/init.d/vtess ```sh ARCH=x86_64 # x86_64; arm64 / arm32 на Raspberry Pi с 64- / 32-битной ОС mkdir -p ~/.local/bin -curl -fsSL -o ~/.local/bin/vtesse https://github.com/compot-dev/vtesse/releases/download/latest/vtesse-$ARCH && chmod 755 ~/.local/bin/vtesse +curl -fsSL -o ~/.local/bin/vtesse https://github.com/OpenIPC/vtesse/releases/download/latest/vtesse-$ARCH && chmod 755 ~/.local/bin/vtesse # root не нужен: SOCKS5 на 127.0.0.1:1080 и проброс на RTSP камеры ~/.local/bin/vtesse --config /etc/vtesse.conf --socks 1080 --forward 8554:10.78.0.10:554 ``` ### Android -Android 5.0 и новее, включая ТВ-приставки: [`vtesse-android.apk`](https://github.com/compot-dev/vtesse/releases/download/latest/vtesse-android.apk). Без разрешения VPN и без значка VPN — сервис с обычным уведомлением держит туннель и даёт SOCKS5 и проброс портов на `127.0.0.1`; плеер, например OpenIPC Decoder или VLC, открывает `rtsp://127.0.0.1:1551/...` (камера 1 сервера 1). До трёх серверов и до 8 камер на каждом, на фиксированных портах. ID устройства генерируется при первом запуске (долгое нажатие копирует его), его нужно добавить как сессию на сервере. До трёх профилей серверов, переключение одним нажатием. Подробнее — [android/README.md](android/README.md). +Android 5.0 и новее, включая ТВ-приставки: [`vtesse-android.apk`](https://github.com/OpenIPC/vtesse/releases/download/latest/vtesse-android.apk). Без разрешения VPN и без значка VPN — сервис с обычным уведомлением держит туннель и даёт SOCKS5 и проброс портов на `127.0.0.1`; плеер, например OpenIPC Decoder или VLC, открывает `rtsp://127.0.0.1:1551/...` (камера 1 сервера 1). До трёх серверов и до 8 камер на каждом, на фиксированных портах. ID устройства генерируется при первом запуске (долгое нажатие копирует его), его нужно добавить как сессию на сервере. До трёх профилей серверов, переключение одним нажатием. Подробнее — [android/README.md](android/README.md). ![VTesse для Android: профили серверов и камеры (пример данных)](docs/img/android-settings.png) @@ -154,19 +154,19 @@ ffplay -rtsp_transport tcp rtsp://127.0.0.1:8554/stream ## План работ -Этапы и задачи ведутся в [GitHub Issues](https://github.com/compot-dev/vtesse/issues): +Этапы и задачи ведутся в [GitHub Issues](https://github.com/OpenIPC/vtesse/issues): -| Этап | Статус | Задачи | -|---------------------------------------------------------------------|------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 0. Тестовый стенд (VTun 3.0.2 в Docker, мост, DHCP с опцией 121) | ✅ Готово | [#1](https://github.com/compot-dev/vtesse/issues/1) ✅ | -| 1. Прототип CLI для Linux: TCP + `type ether` + DHCP поверх lwIP | ✅ Готово | [#2](https://github.com/compot-dev/vtesse/issues/2) ✅ [#3](https://github.com/compot-dev/vtesse/issues/3) ✅ [#4](https://github.com/compot-dev/vtesse/issues/4) ✅ [#5](https://github.com/compot-dev/vtesse/issues/5) ✅ [#6](https://github.com/compot-dev/vtesse/issues/6) ✅ [#7](https://github.com/compot-dev/vtesse/issues/7) ✅ [#8](https://github.com/compot-dev/vtesse/issues/8) ✅ | -| 2. Локальный прокси: SOCKS5 и проброс портов | ✅ Готово | [#10](https://github.com/compot-dev/vtesse/issues/10) ✅ [#11](https://github.com/compot-dev/vtesse/issues/11) ✅ | -| 3. Встраиваемый Linux: кросс-сборка ARM/MIPS, размер и память, CI | ✅ Готово | [#12](https://github.com/compot-dev/vtesse/issues/12) ✅ [#20](https://github.com/compot-dev/vtesse/issues/20) ✅ | -| 3. Режим TAP/TUN (интерфейс ядра вместо lwIP, Linux) | ✅ Готово | [#19](https://github.com/compot-dev/vtesse/issues/19) ✅ | -| 4. Приложение для Android (без VpnService) | ✅ Готово | [#13](https://github.com/compot-dev/vtesse/issues/13) ✅ | -| 5. Опционально: транспорт UDP, обёртка TLS, аутентификация Blowfish | ⏸ Отложено | [#14](https://github.com/compot-dev/vtesse/issues/14) [#15](https://github.com/compot-dev/vtesse/issues/15) [#16](https://github.com/compot-dev/vtesse/issues/16) | -| 6. Повторное использование верхних слоёв в camex | ⏸ Отложено | [#17](https://github.com/compot-dev/vtesse/issues/17) | -| Общее: тесты, лицензия | ✅ Готово | [#9](https://github.com/compot-dev/vtesse/issues/9) ✅ [#18](https://github.com/compot-dev/vtesse/issues/18) ✅ | +| Этап | Статус | Задачи | +|---------------------------------------------------------------------|------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| 0. Тестовый стенд (VTun 3.0.2 в Docker, мост, DHCP с опцией 121) | ✅ Готово | [#1](https://github.com/OpenIPC/vtesse/issues/1) ✅ | +| 1. Прототип CLI для Linux: TCP + `type ether` + DHCP поверх lwIP | ✅ Готово | [#2](https://github.com/OpenIPC/vtesse/issues/2) ✅ [#3](https://github.com/OpenIPC/vtesse/issues/3) ✅ [#4](https://github.com/OpenIPC/vtesse/issues/4) ✅ [#5](https://github.com/OpenIPC/vtesse/issues/5) ✅ [#6](https://github.com/OpenIPC/vtesse/issues/6) ✅ [#7](https://github.com/OpenIPC/vtesse/issues/7) ✅ [#8](https://github.com/OpenIPC/vtesse/issues/8) ✅ | +| 2. Локальный прокси: SOCKS5 и проброс портов | ✅ Готово | [#10](https://github.com/OpenIPC/vtesse/issues/10) ✅ [#11](https://github.com/OpenIPC/vtesse/issues/11) ✅ | +| 3. Встраиваемый Linux: кросс-сборка ARM/MIPS, размер и память, CI | ✅ Готово | [#12](https://github.com/OpenIPC/vtesse/issues/12) ✅ [#20](https://github.com/OpenIPC/vtesse/issues/20) ✅ | +| 3. Режим TAP/TUN (интерфейс ядра вместо lwIP, Linux) | ✅ Готово | [#19](https://github.com/OpenIPC/vtesse/issues/19) ✅ | +| 4. Приложение для Android (без VpnService) | ✅ Готово | [#13](https://github.com/OpenIPC/vtesse/issues/13) ✅ | +| 5. Опционально: транспорт UDP, обёртка TLS, аутентификация Blowfish | ⏸ Отложено | [#14](https://github.com/OpenIPC/vtesse/issues/14) [#15](https://github.com/OpenIPC/vtesse/issues/15) [#16](https://github.com/OpenIPC/vtesse/issues/16) | +| 6. Повторное использование верхних слоёв в camex | ⏸ Отложено | [#17](https://github.com/OpenIPC/vtesse/issues/17) | +| Общее: тесты, лицензия | ✅ Готово | [#9](https://github.com/OpenIPC/vtesse/issues/9) ✅ [#18](https://github.com/OpenIPC/vtesse/issues/18) ✅ | ✅ — задача закрыта. ⏸ — отложено. @@ -176,7 +176,7 @@ ffplay -rtsp_transport tcp rtsp://127.0.0.1:8554/stream ## Поддержка -- Вопросы и сообщения об ошибках: [GitHub Issues](https://github.com/compot-dev/vtesse/issues) +- Вопросы и сообщения об ошибках: [GitHub Issues](https://github.com/OpenIPC/vtesse/issues) - Документация: [docs/](docs/) [![Telegram](https://openipc.org/images/telegram_button.svg)](https://openipc.org/our-channels) diff --git a/README.zh-CN.md b/README.zh-CN.md index c73da62..c4ae2e0 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -4,8 +4,8 @@ [English](README.md) | [Русский](README.ru.md) | **简体中文** -[![Build](https://github.com/compot-dev/vtesse/actions/workflows/build.yml/badge.svg)](https://github.com/compot-dev/vtesse/actions/workflows/build.yml) -[![Release](https://img.shields.io/badge/download-latest-blue)](https://github.com/compot-dev/vtesse/releases/tag/latest) +[![Build](https://github.com/OpenIPC/vtesse/actions/workflows/build.yml/badge.svg)](https://github.com/OpenIPC/vtesse/actions/workflows/build.yml) +[![Release](https://img.shields.io/badge/download-latest-blue)](https://github.com/OpenIPC/vtesse/releases/tag/latest) [![License](https://img.shields.io/badge/license-Prosperity%203.0-blue)](LICENSE.md) [![Platform](https://img.shields.io/badge/platform-Linux%20%7C%20Android-brightgreen)](docs/architecture.md) [![Status](https://img.shields.io/badge/status-prototype-orange)](docs/security.md) @@ -27,7 +27,7 @@ ## 下载 -静态二进制文件(无依赖)发布在 [Releases 页面](https://github.com/compot-dev/vtesse/releases):[`latest`](https://github.com/compot-dev/vtesse/releases/tag/latest) 随 `main` 的每次推送重新构建(文件名固定,下文使用)。发布标题中注明 VTesse 版本;变更记录见 [CHANGELOG.md](CHANGELOG.md)。 +静态二进制文件(无依赖)发布在 [Releases 页面](https://github.com/OpenIPC/vtesse/releases):[`latest`](https://github.com/OpenIPC/vtesse/releases/tag/latest) 随 `main` 的每次推送重新构建(文件名固定,下文使用)。发布标题中注明 VTesse 版本;变更记录见 [CHANGELOG.md](CHANGELOG.md)。 | 平台 | `ARCH` | |--------------------------------------------------------------------------------|----------| @@ -62,7 +62,7 @@ chmod 600 /etc/vtesse.conf ```sh # 以 root 运行;ARCH = arm32 或 mipsel,见上表 ARCH=arm32 -URL=https://github.com/compot-dev/vtesse/releases/download/latest +URL=https://github.com/OpenIPC/vtesse/releases/download/latest # 先建目录,再把每个文件直接下载到目标位置,下载成功后设置权限 mkdir -p /usr/bin /usr/share/vtesse /etc/init.d curl -fsSL -o /usr/bin/vtesse $URL/vtesse-tap-$ARCH && chmod 755 /usr/bin/vtesse @@ -87,7 +87,7 @@ vtesse --config /etc/vtesse.conf --tap --ifname vtesse0 --hook /usr/share/vtesse opkg update && opkg install curl kmod-tun # kmod-tun 仅在使用 --tap 时需要;OpenWrt 25+ 使用:apk add curl kmod-tun # ARCH = mipsel(MT7621、MT7628)、mips(ath79)、arm64 或 arm32,见上表 ARCH=mipsel -URL=https://github.com/compot-dev/vtesse/releases/download/latest +URL=https://github.com/OpenIPC/vtesse/releases/download/latest mkdir -p /usr/bin /usr/share/vtesse /etc/init.d curl -fsSL -o /usr/bin/vtesse $URL/vtesse-tap-$ARCH && chmod 755 /usr/bin/vtesse curl -fsSL -o /usr/share/vtesse/vtesse-hook.sh $URL/vtesse-hook.sh && chmod 755 /usr/share/vtesse/vtesse-hook.sh @@ -107,14 +107,14 @@ curl -fsSL -o /etc/init.d/vtesse $URL/vtesse.init && chmod 755 /etc/init.d/vtess ```sh ARCH=x86_64 # x86_64;64 位 / 32 位系统的树莓派用 arm64 / arm32 mkdir -p ~/.local/bin -curl -fsSL -o ~/.local/bin/vtesse https://github.com/compot-dev/vtesse/releases/download/latest/vtesse-$ARCH && chmod 755 ~/.local/bin/vtesse +curl -fsSL -o ~/.local/bin/vtesse https://github.com/OpenIPC/vtesse/releases/download/latest/vtesse-$ARCH && chmod 755 ~/.local/bin/vtesse # 无需 root:127.0.0.1:1080 上的 SOCKS5,以及到摄像机 RTSP 的转发 ~/.local/bin/vtesse --config /etc/vtesse.conf --socks 1080 --forward 8554:10.78.0.10:554 ``` ### Android -Android 5.0 及以上(包括电视盒子):[`vtesse-android.apk`](https://github.com/compot-dev/vtesse/releases/download/latest/vtesse-android.apk)。无需 VPN 权限、没有 VPN 图标——带普通通知的服务维持隧道,并在 `127.0.0.1` 上提供 SOCKS5 和端口转发;播放器(如 OpenIPC Decoder 或 VLC)即可打开 `rtsp://127.0.0.1:1551/...`(服务器 1 的摄像机 1)。最多三台服务器,每台最多 8 台摄像机,端口固定。设备 ID 在首次启动时生成(长按可复制),需要在服务器上添加为会话。最多三个服务器配置,一键切换。详见 [android/README.md](android/README.md)。 +Android 5.0 及以上(包括电视盒子):[`vtesse-android.apk`](https://github.com/OpenIPC/vtesse/releases/download/latest/vtesse-android.apk)。无需 VPN 权限、没有 VPN 图标——带普通通知的服务维持隧道,并在 `127.0.0.1` 上提供 SOCKS5 和端口转发;播放器(如 OpenIPC Decoder 或 VLC)即可打开 `rtsp://127.0.0.1:1551/...`(服务器 1 的摄像机 1)。最多三台服务器,每台最多 8 台摄像机,端口固定。设备 ID 在首次启动时生成(长按可复制),需要在服务器上添加为会话。最多三个服务器配置,一键切换。详见 [android/README.md](android/README.md)。 ![VTesse Android 版:服务器配置与摄像头(示例数据)](docs/img/android-settings.png) @@ -154,19 +154,19 @@ ffplay -rtsp_transport tcp rtsp://127.0.0.1:8554/stream ## 路线图 -各阶段与任务记录在 [GitHub Issues](https://github.com/compot-dev/vtesse/issues) 中: +各阶段与任务记录在 [GitHub Issues](https://github.com/OpenIPC/vtesse/issues) 中: -| 阶段 | 状态 | Issues | -|---------------------------------------------------------------|-----------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 0. 测试台(Docker 中的 VTun 3.0.2、网桥、带选项 121 的 DHCP) | ✅ 已完成 | [#1](https://github.com/compot-dev/vtesse/issues/1) ✅ | -| 1. Linux 命令行原型:TCP + `type ether` + 基于 lwIP 的 DHCP | ✅ 已完成 | [#2](https://github.com/compot-dev/vtesse/issues/2) ✅ [#3](https://github.com/compot-dev/vtesse/issues/3) ✅ [#4](https://github.com/compot-dev/vtesse/issues/4) ✅ [#5](https://github.com/compot-dev/vtesse/issues/5) ✅ [#6](https://github.com/compot-dev/vtesse/issues/6) ✅ [#7](https://github.com/compot-dev/vtesse/issues/7) ✅ [#8](https://github.com/compot-dev/vtesse/issues/8) ✅ | -| 2. 本地代理:SOCKS5 与端口转发 | ✅ 已完成 | [#10](https://github.com/compot-dev/vtesse/issues/10) ✅ [#11](https://github.com/compot-dev/vtesse/issues/11) ✅ | -| 3. 嵌入式 Linux:ARM/MIPS 交叉编译、体积与内存、CI | ✅ 已完成 | [#12](https://github.com/compot-dev/vtesse/issues/12) ✅ [#20](https://github.com/compot-dev/vtesse/issues/20) ✅ | -| 3. TAP/TUN 后端(用内核接口代替 lwIP,Linux 平台) | ✅ 已完成 | [#19](https://github.com/compot-dev/vtesse/issues/19) ✅ | -| 4. Android 应用(不使用 VpnService) | ✅ 已完成 | [#13](https://github.com/compot-dev/vtesse/issues/13) ✅ | -| 5. 可选:UDP 传输、TLS 封装、Blowfish 认证 | ⏸ 已推迟 | [#14](https://github.com/compot-dev/vtesse/issues/14) [#15](https://github.com/compot-dev/vtesse/issues/15) [#16](https://github.com/compot-dev/vtesse/issues/16) | -| 6. 在 camex 中复用上层模块 | ⏸ 已推迟 | [#17](https://github.com/compot-dev/vtesse/issues/17) | -| 通用:测试、许可证 | ✅ 已完成 | [#9](https://github.com/compot-dev/vtesse/issues/9) ✅ [#18](https://github.com/compot-dev/vtesse/issues/18) ✅ | +| 阶段 | 状态 | Issues | +|---------------------------------------------------------------|-----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| 0. 测试台(Docker 中的 VTun 3.0.2、网桥、带选项 121 的 DHCP) | ✅ 已完成 | [#1](https://github.com/OpenIPC/vtesse/issues/1) ✅ | +| 1. Linux 命令行原型:TCP + `type ether` + 基于 lwIP 的 DHCP | ✅ 已完成 | [#2](https://github.com/OpenIPC/vtesse/issues/2) ✅ [#3](https://github.com/OpenIPC/vtesse/issues/3) ✅ [#4](https://github.com/OpenIPC/vtesse/issues/4) ✅ [#5](https://github.com/OpenIPC/vtesse/issues/5) ✅ [#6](https://github.com/OpenIPC/vtesse/issues/6) ✅ [#7](https://github.com/OpenIPC/vtesse/issues/7) ✅ [#8](https://github.com/OpenIPC/vtesse/issues/8) ✅ | +| 2. 本地代理:SOCKS5 与端口转发 | ✅ 已完成 | [#10](https://github.com/OpenIPC/vtesse/issues/10) ✅ [#11](https://github.com/OpenIPC/vtesse/issues/11) ✅ | +| 3. 嵌入式 Linux:ARM/MIPS 交叉编译、体积与内存、CI | ✅ 已完成 | [#12](https://github.com/OpenIPC/vtesse/issues/12) ✅ [#20](https://github.com/OpenIPC/vtesse/issues/20) ✅ | +| 3. TAP/TUN 后端(用内核接口代替 lwIP,Linux 平台) | ✅ 已完成 | [#19](https://github.com/OpenIPC/vtesse/issues/19) ✅ | +| 4. Android 应用(不使用 VpnService) | ✅ 已完成 | [#13](https://github.com/OpenIPC/vtesse/issues/13) ✅ | +| 5. 可选:UDP 传输、TLS 封装、Blowfish 认证 | ⏸ 已推迟 | [#14](https://github.com/OpenIPC/vtesse/issues/14) [#15](https://github.com/OpenIPC/vtesse/issues/15) [#16](https://github.com/OpenIPC/vtesse/issues/16) | +| 6. 在 camex 中复用上层模块 | ⏸ 已推迟 | [#17](https://github.com/OpenIPC/vtesse/issues/17) | +| 通用:测试、许可证 | ✅ 已完成 | [#9](https://github.com/OpenIPC/vtesse/issues/9) ✅ [#18](https://github.com/OpenIPC/vtesse/issues/18) ✅ | ✅ — 已关闭的 issue。 ⏸ — 已推迟。 @@ -176,7 +176,7 @@ ffplay -rtsp_transport tcp rtsp://127.0.0.1:8554/stream ## 支持 -- 问题与缺陷报告:[GitHub Issues](https://github.com/compot-dev/vtesse/issues) +- 问题与缺陷报告:[GitHub Issues](https://github.com/OpenIPC/vtesse/issues) - 文档:[docs/](docs/) [![Telegram](https://openipc.org/images/telegram_button.svg)](https://openipc.org/our-channels) diff --git a/docs/architecture.md b/docs/architecture.md index 5b22278..da46c8b 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -50,7 +50,7 @@ the tunnel; there is no system network interface. big-endian MIPS. - **Small footprint:** `-Os`, strip; lwIP memory profiles (see below); optional modules `LWIP=0`, `SOCKS=0`, `UDP_RELAY=0`, `TAP=0` - ([#29](https://github.com/compot-dev/vtesse/issues/29), [usage](usage.md#building)). + ([#29](https://github.com/OpenIPC/vtesse/issues/29), [usage](usage.md#building)). - **Protocol-agnostic upper layers.** Everything above the transport talks to `tunnel_ops_t` only, so the stack, proxy and Android layers can later serve another tunnel protocol (e.g. [camex](https://github.com/openipc/camex)). @@ -196,7 +196,7 @@ or its output buffer is full; frames from the tunnel are written non-blocking. ## Android -Planned ([#13](https://github.com/compot-dev/vtesse/issues/13)): foreground service +Planned ([#13](https://github.com/OpenIPC/vtesse/issues/13)): foreground service with a regular notification (not a VPN), no `VpnService`, no `BIND_VPN_SERVICE`. Android 14+ requires a `foregroundServiceType`; Doze and network changes are handled by reconnecting (`NetworkCallback`). diff --git a/docs/protocol.md b/docs/protocol.md index 9709840..3b72778 100644 --- a/docs/protocol.md +++ b/docs/protocol.md @@ -55,7 +55,7 @@ in `<` `>`. Exactly 32 characters. The client cannot detect the variant in advance; the auth mode is a setting. VTesse implements XOR; Blowfish is planned -([#16](https://github.com/compot-dev/vtesse/issues/16)). +([#16](https://github.com/OpenIPC/vtesse/issues/16)). Reference vectors from the stock client are in [`bench/vectors/`](../bench/vectors/README.md). @@ -152,7 +152,7 @@ address and port as the TCP socket and `connect()`s it to the client's TCP peer address plus the reported port; there is no `nat_hack`. Behind a NAT that does not preserve the source port (typical carrier-grade NAT) the client's datagrams are silently dropped. VTesse currently supports TCP only -([#14](https://github.com/compot-dev/vtesse/issues/14)). +([#14](https://github.com/OpenIPC/vtesse/issues/14)). ## Not provided by VTun diff --git a/docs/security.md b/docs/security.md index 4c39665..524f33c 100644 --- a/docs/security.md +++ b/docs/security.md @@ -17,7 +17,7 @@ VTun's own encryption has no integrity protection anyway. - Use only over trusted networks or inside an external secure channel (TLS / stunnel, an operator VPN). A TLS wrapper for the TCP transport is planned - ([#15](https://github.com/compot-dev/vtesse/issues/15)). + ([#15](https://github.com/OpenIPC/vtesse/issues/15)). ## Sessions diff --git a/docs/usage.md b/docs/usage.md index 2f02274..bcfe4e0 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -59,7 +59,7 @@ Each target gives `vtesse-` (lwIP + TAP) and `vtesse-tap-` (TAP only); x86_64 also `vtund-3.0.2-x86_64`, the VTun server with our patches ([server/README.md](../server/README.md)). Use musl builds on devices: a static glibc binary cannot resolve host names without the NSS libraries of the same glibc. Prebuilt binaries are on the -[releases page](https://github.com/compot-dev/vtesse/releases) (`latest` is rebuilt +[releases page](https://github.com/OpenIPC/vtesse/releases) (`latest` is rebuilt from every push to `main`). ## vtesse-cli diff --git a/server/README.md b/server/README.md index 16eacd8..a4996b7 100644 --- a/server/README.md +++ b/server/README.md @@ -20,7 +20,7 @@ challenge response), no LZO, no zlib. Requirements: a C compiler, `bison`, `flex ## Releases CI builds a static musl vtund for PCs and servers only (x86_64, `ci/build-musl.sh`) -and attaches it to the [`latest`](https://github.com/compot-dev/vtesse/releases/tag/latest) +and attaches it to the [`latest`](https://github.com/OpenIPC/vtesse/releases/tag/latest) release as `vtund--x86_64`, e.g. `vtund-3.0.2-x86_64`. The name carries the original VTun version, not the VTesse version; the applied patches are listed below. The binary reports itself as upstream does (`VTun ver 3.X `),