Как использовать frp для проникновения в интранет

Go
Как использовать frp для проникновения в интранет

задний план

Как программист, дома есть более-менее серые компьютеры.Если простаивающий компьютер превратить в сервер, он не только имеет хорошую конфигурацию, но и может быть использован для различных тестов, это было бы лучше. Но как устройства в локальной сети могут быть доступны из внешней сети? Это достигается за счет проникновения в интранет.

проникновение в интранетNATДля проникновения есть много часто используемых инструментов, таких как ngrok, peanut shell, frp и т.д., т.к. я использую frp, что также является темой этой статьи.

NAT — это метод перезаписи IP-адресов при прохождении IP-пакетов через маршрутизатор или брандмауэр. Поскольку текущее количество IP-адресов общедоступной сети ограничено, страна не может назначить IP-адрес общедоступной сети каждому устройству, поэтому несколько компьютеров могут использовать IP-адрес общедоступной сети только для внешней связи, что требует преобразования сети, и цель NAT именно в этом .

Основной принцип реализации

frp делится на сервер и клиент.Первый работает на сервере с публичным IP,второй работает на устройстве в локальной сети.По умолчанию сначала сервер открывает 7000 порт,а потом клиент подключиться к нему.

При этом клиент может открыть порт для ssh и сопоставить его с портом на сервере, чтобы при обращении терминала к порту сервера он автоматически переадресовывался клиенту.

В дополнение к порту ssh, frp также поддерживает веб-порт для получения доступа по http.

Установите и используйте

В настоящее время мне нужен один сервер общедоступной сети и один сервер интрасети.Мой сервер интрасети переустановил систему linux, что удобно для тестирования различных инструментов.

Конфигурация установки сервера

wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz
tar zxvf frp_0.33.0_linux_amd64.tar.gz
cd frp_0.33.0_linux_amd64/

Конфигурационный файл сервера — frps.ini, который по умолчанию привязан к порту 7000. Если вы покупаете облачный сервер, обратите внимание на открытие порта 7000.

[common]
bind_port = 7000

Запустите службу frp через бинарный файл fprs.

./frps -c ./frps.ini

Следующее приглашение указывает на то, что установка прошла успешно.

2020/05/15 22:16:29 [I] [service.go:178] frps tcp listen on 0.0.0.0:7000
2020/05/15 22:16:29 [I] [root.go:209] start frps success
2020/05/15 22:16:38 [I] [service.go:432] [e3c5096bd4291972] client login info: ip [14.114.230.168:44422] version [0.24.1] hostname [] os [linux] arch [amd64]
2020/05/15 22:16:38 [I] [tcp.go:63] [e3c5096bd4291972] [ssh] tcp proxy listen port [7001]
2020/05/15 22:16:38 [I] [control.go:445] [e3c5096bd4291972] new proxy [ssh] success

Конфигурация установки клиента

Вытащите свой сломанный компьютер и загрузите frp таким же образом.

wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz
tar zxvf frp_0.33.0_linux_amd64.tar.gz
cd frp_0.33.0_linux_amd64/

Файл конфигурации для клиента — frpc.ini.

[common]
server_addr = 127.0.0.1
server_port = 7000

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

common - это общая конфигурация

  • server_addr — это IP-адрес сервера общедоступной сети.
  • server_port — это порт 7000, настроенный для общедоступного сервера.

ssh для доступа к командной строке терминала

  • тип подключения, по умолчанию tcp
  • local_ip локальный IP
  • local_port номер порта для ssh, по умолчанию 22
  • Порт сервера, сопоставленный remote_port, который по умолчанию перенаправляется на порт клиента 22 при доступе к этому порту.

запустить клиентский процесс

./frpc -c ./frpc.ini

Если присутствуют следующие подсказки, это означает, что подключение к серверу прошло успешно.

2020/05/15 22:34:49 [I] [service.go:282] [9bc650122a538aab] login to server success, get run id [9bc650122a538aab], server udp port [0]
2020/05/15 22:34:49 [I] [proxy_manager.go:144] [9bc650122a538aab] proxy added: [ssh]
2020/05/15 22:34:49 [I] [control.go:179] [9bc650122a538aab] [ssh] start proxy success

контрольная работа

После завершения запуска вы можете подключиться к серверу интрасети через ssh.

ssh -p 6000 enoch@xxx.xx.xxx.xxx

Оригинальная ссылка:Hiranoahah.com/2020/05/13/…


Меня зовут Пинг Йе, это проект с открытым исходным кодом, ориентированный на развитие технологии Gopher."иди домой"


Спасибо за просмотр.Если вы считаете, что статья была вам полезна, обратите внимание на паблик-аккаунт "Pingye", посвященный языку Go и техническим принципам.

关注我