Руководство по проникновению в интрасеть по настройке FRP (очень подробное)
Руководство по проникновению в интрасеть по настройке FRP (очень подробное)

1 фрп Введение

frp — это простое и удобное в использовании высокопроизводительное программное обеспечение с открытым исходным кодом для проникновения в интранет и обратного прокси-сервера, которое поддерживает протоколы TCP, UDP, http, https и другие. Официальный сайт проекта frp — https://github.com/fatedier/frp,

принцип работы фрп
  • Сервер запускается, прослушивает основной порт и ожидает подключения клиента; - Клиент подключается к основному порту сервера и сообщает серверу порт для прослушивания и тип пересылки; - Сервер создает новый процесс для прослушивания; порт, указанный клиентом; — пользователь внешней сети подключается к порту, указанному клиентом, и сервер пересылает данные клиенту через соединение с клиентом; — затем клиентский процесс пересылает данные локальной службе; реализация способности интрасети предоставлять услуги внешнему миру.

2 Руководство по настройке

Если вы хотите настроить проникновение FRP, вам сначала необходимо иметь сервер с IP-адресом внешней сети (то есть к нему можно получить доступ из внешней сети). Если нет, то нет необходимости читать следующий урок. Руководство по настройке в основном разделено на две части: одна — настройка сервера (сервер внешней сети); вторая — настройка клиента (сервер интрасети).

2.1 Конфигурация сервера
(1) Загрузите библиотеку frp

Версия Linux: Baidu Netdisk, пароль: i8vm. После загрузки загрузите его на сервер: scp frp_0.33.0_linux_amd64.tar.gz username@server ip:~/ Он будет помещен в домашний каталог сервера или выполните команду:

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

Если вы чувствуете, что скорость очень низкая, вы можете использовать mwget для ее установки.

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

(2) Распакуйте сжатый пакет frp.
Язык кода:javascript
копировать
tar -zxvf frp_0.33.0_linux_amd64.tar.gz

Как показано ниже:

(3) Введите каталог распаковки:
Язык кода:javascript
копировать
cd frp_0.33.0_linux_amd64/

И откройте файл конфигурации:

Язык кода:javascript
копировать
vi frps.ini

Измените содержимое файла следующим образом:

Язык кода:javascript
копировать
[common]
# Порт, который прослушивает frp, по умолчанию — 7000, и его можно изменить на другой.
bind_port = 7000
# Код авторизации, измените его на более сложный
token = 52010  # Этот токен будет использоваться позже на клиенте.

# Фоновый порт управления frp, измените его в соответствии с вашими потребностями
dashboard_port = 7500
# имя пользователя и пароль фонового управления frp, измените их на свои собственные
dashboard_user = admin
dashboard_pwd = admin
enable_prometheus = true

# конфигурация журнала frp
log_file = /var/log/frps.log
log_level = info
log_max_days = 3

После модификации Как показано ниже:

(4) Настройте и запустите службу frp.
Язык кода:javascript
копировать
sudo mkdir -p /etc/frp
sudo cp frps.ini /etc/frp
sudo cp frps /usr/bin
sudo cp systemd/frps.service /usr/lib/systemd/system/
sudo systemctl enable frps
sudo systemctl start frps

Если приведенные выше команды выполняются без ошибок, запуск успешен.

(5) Открытый порт брандмауэра
Язык кода:javascript
копировать
# Добавить порт прослушивания
sudo firewall-cmd --permanent --add-port=7000/tcp
# Добавить серверный порт управления
sudo firewall-cmd --permanent --add-port=7500/tcp
sudo firewall-cmd --reload

Примечание: а. Если это Ubuntu или Centos 6, используйте инструмент ufw/iptables, чтобы освободить порт;

б. Два порта 7000 и 7500 соответствуют значениямbind_port и Dashboard_port в конфигурации frps.ini соответственно.

(6) Проверьте, успешно ли запущен сервер.

Посетите: http://IP-адрес сервера:Порт внутреннего управления», введите имя пользователя и пароль для просмотра состояния соединения, например: http://yourip:7500, имя пользователя и пароль соответствуют Dashboard_user и Dashboard_pwd во frps. .ini соответственно. После входа в систему интерфейс выглядит следующим образом:

Если с вышеописанными шагами проблем не возникло, значит, настройка FRP-сервера прошла успешно, а значит, вам уже удалось проникнуть в интрасеть! ! !

2.2. Конфигурация клиента
1. Загрузите библиотеку frp

Версия Linux, пароль: i8vm Версия для Mac, пароль: glzc После загрузки загрузите ее на сервер: scp frp_0.33.0_linux_amd64.tar.gz username@server ip:~/ Он будет помещен в домашний каталог сервера.

2. Разархивируйте сжатый пакет frp.
Язык кода:javascript
копировать
tar -zxvf frp_0.33.0_linux_amd64.tar.gz
3. Введите каталог распаковки:
Язык кода:javascript
копировать
cd frp_0.33.0_linux_amd64/

И откройте файл конфигурации:

Язык кода:javascript
копировать
vi frpc.ini  (Обратите внимание, не frps.ini)

Измените содержимое файла следующим образом:

Язык кода:javascript
копировать
# Конфигурация клиента
[common]
server_addr = IP-адрес сервера
server_port = 7000 # Соответствует параметруbind_port из frps.ini.
token = 52010  # Соответствует токену в frps.ini.

# Настроить ssh-сервис
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000  # Эта настройка будет использоваться позже при подключении через ssh.

# Настройте http-сервис, который можно использовать для разработки небольших программ, удаленной отладки и т. д. Если нет, то писать следующее не нужно.
[web]
type = http
local_ip = 127.0.0.1
local_port = 8080
subdomain = test.hijk.pw  # имя веб-домена
remote_port = Пользовательский порт удаленного сервера, например 8080.

Измененная картинка выглядит следующим образом:

  • Примечание. Имя типа [ssh] должно быть глобально уникальным, то есть, даже если имеется несколько клиентов, его можно использовать только один раз. Другие могут использовать [ssh2], [ssh3] и т. д.; вы хотите настроить клиент с несколькими клиентами, вы должны изменить [ssh] других клиентов на [ssh2], [ssh3] и т. д., а также необходимо изменить удаленный_порт, например 6002, 6003 и т. д.
4. Открытый порт брандмауэра.

linux:

Язык кода:javascript
копировать
sudo firewall-cmd --permanent --add-port=6000/tcp
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload

mac: руководство по открытию портов. Если вам сложно открывать порты на Mac, вы можете напрямую отключить брандмауэр:

Но даже в этом случае на Mac может возникнуть следующая ошибка:

Это связано с тем, что разрешение ssh не предоставлено или служба ssh не включена. вам нужно:

Язык кода:javascript
копировать
sudo systemsetup -getremotelogin
sudo systemsetup -setremotelogin on

Запустите ssh-сервис:

Язык кода:javascript
копировать
sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
5. Запуск клиента

Выполнить в каталоге frp_0.33.0_darwin_amd64.

Язык кода:javascript
копировать
./frpc -c frpc.ini

Вы увидите:

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

3. Проверьте, успешна ли конфигурация проникновения.

Найдите другой компьютер Linux или Mac в другом сегменте сети и выполните его в терминале.

Язык кода:javascript
копировать
ssh имя пользователя@IP-сервера  -p номер порта

Здесь необходимо отметить, что здесь используются IP-адрес сервера и имя пользователя, а номер порта — это удаленный_порт в файле frpc.ini. Если вы успешно вошли в систему, поздравляем: вы узнали, как настроить проникновение в интрасеть с помощью frc! ! !

Ссылка: https://tlanyan.me/frp-tunnel-tutorial/

Ссылки

[0]Справочная статья:https://blog.csdn.net/weixin_43922901/article/details/109261700

[1]Байду Скайдиск:https://pan.baidu.com/s/1PbKa8DkK5lq3bgEFTNLNog

[2]mwgetУстановить:https://my.oschina.net/u/4332109/blog/3331739

[3]linuxверсия:https://pan.baidu.com/s/1PbKa8DkK5lq3bgEFTNLNog

[4]macверсия:https://pan.baidu.com/s/1fnNW4kMQjTa_8OJjn0N1eg

[5]Учебное пособие по открытому порту:https://blog.csdn.net/u013771277/article/details/48104667

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose