предисловие
Некоторое время назад я работал над одним проектом, и так как у меня было много знаний о 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, Я надеюсь, что вы можете поддержать нас много!