Мощный инструмент TCP/UDP --- flynet

открытый источник

предисловие

Некоторое время назад я работал над одним проектом, и так как у меня было много знаний о tcp/udp, я просто ковал железо, пока горячо, и написал инструмент для закрепления соответствующих знаний. Кроме того, поскольку я не очень хорошо разбираюсь в Голанге, давайте, кстати, познакомимся с Голангом.

Введение

flynetЭто инструмент командной строки, написанный на языке Golang.В настоящее время поддерживаются следующие функции:

  • HTTP-прокси
  • Локальный прокси Socks5
  • Прокси Socks5 в режиме C/S, поддерживает режим TCP/UDP
  • Проникновение в интранет
  • ... В настоящее время проект разделен на клиентскую и серверную части.За исключением http и локального прокси socks5, которые поддерживаются на обоих концах, остальные функции необходимо использовать вместе.

Как пользоваться

Установить

Пользователи Windows, Linux могут напрямуюСтраница релизовПросто загрузите соответствующую версию, и другие платформы смогут загрузить исходный код и скомпилировать его самостоятельно.

Введите соответствующий каталог из командной строки в Windows,.\win-client.exe ...или.\win-server.exe ...

То же самое в линуксе,./linux-server ...или./linux-client ...

В дальнейшем всеserver ...илиclient ...Выражать.

Если после попытки запуска выводится следующая информация, это означает успех:

Usage: flynet [options]
  -M, --mode        choose which mode to run. the mode must be one of['http', 'socks5',
                    'socks5-tcp', 'socks5-udp', 'forward']
  -L, --listen      choose which port(s) to listen or forward
  -S, --server      the server address client connect to
  -V, --verbose     output detail info
  -l, --log         output detail info to log file
  -H, --help        show detail usage

Mail bug reports and suggestions to <asche910@gmail.com>
or github: https://github.com/asche910/flynet

HTTP-прокси

Прокси-сервер http напрямую открывает прокси-сервер http на локальном компьютере. Его поддерживают как клиент, так и сервер. Команда выглядит следующим образом:

server -M http -L 8848 

или

client -M http -L 8848

Указывает, что служба Http proxy включена на порту 8848 локальной машины.Если нет вывода информации, значит запуск прошел успешно.Ведь основная философия Linux такова:

Отсутствие новостей - хорошая новость

Конечно, если вы все же хотите увидеть новость, вы можете добавить ее после-Vили--verboseпараметров, поэтому будет выведено много сообщений. или вы можете добавить-lили--logпараметр для запуска файла журнала, файл журнала будет создан в каталоге запускаflynet.logдокумент.

Локальный прокси Socks5

На этой машине открыть socks5 прокси очень просто, это поддерживается как клиентом, так и сервером, команда выглядит следующим образом:

server -M socks5  -L 8848

или

client -M socks5 -L 8848

Это означает, что прокси-сервер socks5 включен на порту 8848 локальной машины, и тогда Chrome может очень хорошо работать в Интернете с помощью SwitchyOmega.

Прокси Socks5 в режиме C/S - TCP

Предыдущий это прокси socks5 на локальном, это прокси socks5 что клиент и сервер взаимодействуют друг с другом, а мидл передается по протоколу tcp. Используйте его свободно. Способ применения следующий:

Сервер

server -M socks5-tcp -L 8888

клиент

client -M socks5-tcp -L 8848 -S asche.top:8888

В данном примере предполагается, что доменное имя моего сервера asche.top, а затем клиент открывает прокси-сервер socks5 на порту 8848, а затем трафик перенаправляется на порт сервера 8888 по протоколу TCP, и сервер отправляется для запроса соответствующий целевой веб-сайт, а затем верните результат запроса клиенту. По возможности промежуточный трафик шифруется для обеспечения безопасности передачи.

Прокси Socks5 в режиме C/S-UDP

Это очень похоже на tcp выше, за исключением того, что для передачи используются пакеты UDP. В конце концов, UDP имеет свои преимущества в некоторых аспектах, и некоторые важные протоколы в основном используют передачу udp, например протокол DNS. Конкретное использование заключается в следующем:

Сервер

server -M socks5-udp -L 53

клиент

client -M socks5-udp -L 8848 -S asche.top:53

Здесь в качестве примеров также используется доменное имя asche.top и порт 53. Клиент открывает socks5 прокси на порту 8848, а затем весь трафик по udp передается на порт сервера 53. Сервер после его получения анализирует запрос, а затем отправляет все запросы на целевой веб-сайт, а затем возвращает результат клиенту в режиме udp. То же самое, что промежуточная передача также зашифрована.

Проникновение в интранет

Проникновение в интрасеть, то есть проникновение NAT, является термином для сетевого подключения.Когда компьютер находится в локальной сети, компьютерные узлы внешней сети и внутренней сети должны подключаться и взаимодействовать, а иногда он не поддерживает интрасеть проникновение. Другими словами, порт сопоставления позволяет компьютеру во внешней сети находить компьютер во внутренней сети и повышает скорость загрузки.

Проще говоря, это должно позволить внешней сети получить доступ к машинам во внутренней сети. Здесь этот инструмент сопоставляет порт интрасети с портом сервера, так что, обращаясь к порту сервера, вы можете косвенно получить доступ к порту в интрасети. Методы, как показано ниже:

Сервер

server -M forward -L 8888 8080

клиент

server -M forward -L 80 -S asche.top:8888

Также предполагается, что доменное имя сервера — asche.top, поэтому делается сопоставление порта 80 клиента с портом 8080 сервера, а промежуточная передача данных завершается сервером, прослушивающим 8888. Затем то, что мы видим при посещении asche.top:8080, должно быть содержимым порта 80 клиента.

Эпилог

Текущая функция проекта также относительно ограничена, и в будущем должны быть добавлены дополнительные функции. Другой адрес находится вflynet, Я надеюсь, что вы можете поддержать нас много!