1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/liumian-quantum-tunnel

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Квантовый туннель

  1. QuantumTunnel, квантовый туннель — это простой, мощный и расширяемый инструмент для проникновения во внутреннюю сеть;
  2. Высокая производительность и хорошая совместимость, реализация на основе Netty, теоретически может проксировать все прикладные протоколы;
  3. Гибкая переадресация трафика, поддерживает маршрутизацию трафика по портам и маршрутизацию по протоколам;
  4. Простота использования, две команды позволяют быстро настроить сервис проникновения во внутреннюю сеть;
  5. Высокий уровень безопасности, клиент может ограничивать адреса и порты серверов-посредников;
  6. Поддерживает двустороннее проникновение во внутреннюю сеть (в разработке).

Введение

QuantumTunnel назван в честь явления квантовой запутанности.

Если две частицы находятся в состоянии квантовой запутанности, то изменение состояния одной из них приводит к соответствующему изменению другой, независимо от расстояния между ними.

QuantumTunnel также вдохновлён этим явлением и предназначен для полной синхронизации запросов, отправленных из общедоступной сети, с внутренней сетью, подобно запросам, исходящим из внутренней сети, что позволяет преодолеть ограничения сети.

Использование

  1. Скачайте клиент для проникновения во внутреннюю сеть: v1.0.0 официальная версия клиента.

  2. Выполните команду запуска:

java -jar client/target/quantum-tunnel-client.jar -network_id localTest -proxy_server_host qt.liumian.top  -proxy_server_port 8880
  1. Отправьте запрос на проникновение во внутреннюю сеть:
curl -L -X GET 'qt.liumian.top:9990/' \
-H 'network_id: localTest' \
-H 'target_host: www.baidu.com' \
-H 'host: www.baidu.com' \
-H 'target_port: 80' \
-H 'Connection: close'

Репозитории

  1. gitee: 乐天派 / quantum-tunnel.
  2. github: liumian97/quantum-tunnel.

Архитектура

Архитектура

Архитектура

Поток

Поток

Инструкции

  1. Клонируйте репозиторий на локальный компьютер: git clone git@gitee.com:liumian/quantum-tunnel.git.
  2. Соберите проект: ``sh mvn_package.sh`.
  3. Запустите сервис:
    • Запустите сервер: java -jar proxy-server.jar -proxy_server_port 9090 -user_server_port 8090.
    • Запустите клиент: java -jar proxy-client.jar -network_id localTest -proxy_server_host 127.0.0.1 -proxy_server_port 9090.

Все параметры:

# Прокси-сервер
1. proxy_server_port — порт для приёма соединений от клиентов-посредников,
2. user_server_port — порт для приёма пользовательских запросов,
3. route_mode — режим маршрутизации:
  3.1 protocol_route — анализ информации о маршруте, предоставленной пользователем, для определения реального адреса сервера, подходит для бизнес-прокси; по умолчанию используется протокол маршрутизации,
  3.2 port_route — привязка реальной информации о сервере к порту, игнорирование информации о маршруте пользователя, подходит для промежуточных программ,
4. network_id — идентификатор сети, которую нужно проксировать. Требуется при использовании port_route,
5. target_server_host — реальный адрес сервера. Требуется при использовании port_route,
6. target_server_port — реальный порт сервера. Требуется при использовании port_route.

# Клиент-посредник
1. network_id — идентификатор вашей сети,
2. proxy_server_host — адрес прокси-сервера,
3. proxy_server_port — порт прокси-сервера,
4. target_server_host — ограничение целевого хоста сервера (по умолчанию не ограничено),
5. target_server_port — ограничение целевого порта сервера (по умолчанию не ограничено).
  1. Используйте сервис для доступа к Baidu:
curl --location --request GET '127.0.0.1:8090/' \
--header 'Host: www.baidu.com' \
--header 'network_id: localTest' \
--header 'target_host: www.baidu.com' \
--header 'target_port: 80' \
--header 'Cookie: BDSVRTM=11; BD_HOME=1'

Release note

v1.0.0

Release link

Основные возможности:

  1. Поддержка маршрутизации по протоколу и маршрутизации по порту.
  2. Реализация на базе Netty, использование Protobuf для кодирования и декодирования, отличная производительность пересылки.
  3. Возможность ограничить доступ к определённым адресам и портам для предотвращения злонамеренных сетевых атак.
  4. Простой в использовании, запуск сервиса и клиента осуществляется с помощью двух команд.

v0.2.2-beta

Release link

Изменения:

  1. Использование Protobuf для кодировки и декодировки, повышение производительности обработки данных.
  2. Добавление анализа параметров запроса queryParam, полезно в случаях, когда неудобно добавлять информацию о маршруте в заголовок, например, при подключении через WebSocket.
  3. Отображение информации о версии при запуске приложения.

v0.2-beta

Release link

Изменения:

  1. Новый режим маршрутизации по портам, подходящий для сценариев с использованием портов.
  2. Добавлен мониторинг сердцебиения для предотвращения разрыва соединения с QuantumTunnel.
  3. Клиент может указывать хост и порт для проксирования, повышая безопасность внутреннего доступа.

v0.1-beta

Release link

Особенности:

  1. Поддержка режима маршрутизации по протоколам, подходящего для бизнес-сценариев.

Участие

  1. Fork текущего репозитория.
  2. Создайте ветку Feat_xxx.
  3. Внесите изменения в код.
  4. Создайте Pull Request.

Технические статьи

  1. QuantumTunnel: проектирование сервиса проникновения во внутреннюю сеть.
  2. QuantumTunnel: реализация на Netty.
  3. QuantumTunnel: выпуск v0.1-бета.
  4. QuantumTunnel: маршрутизация по портам vs маршрутизация по протоколам.
  5. QuantumTunnel: официальный релиз v1.0.0.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/liumian-quantum-tunnel.git
git@api.gitlife.ru:oschina-mirror/liumian-quantum-tunnel.git
oschina-mirror
liumian-quantum-tunnel
liumian-quantum-tunnel
master