Мы можем предоставить HTTP или HTTPS-сервис с помощью FRP.
# frps.ini
[common]
bind_port = 7000
vhost_http_port = 8080
./frps -c ./frps.ini
# frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000
[web]
type = http
local_port = 80
custom_domains = www.yourdomain.com
./frpc -c ./frpc.ini
Разрешите запись A для www.yourdomain.com на IP x.x.x.x или запись CNAME на ваш исходный домен.
Теперь посетите свой локальный веб-сервис, используя URL http://www.yourdomain.com:8080
.
Переадресация запроса DNS
# frps.ini
[common]
bind_port = 7000
./frps -c ./frps.ini
# frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000
[dns]
type = udp
local_ip = 8.8.8.8
local_port = 53
remote_port = 6000
./frpc -c ./frpc.ini
dig @x.x.x.x -p 6000 www.google.com
Перенаправление через сокет Unix-домена
Используя TCP-порт для подключения к сокету Unix-домена, например, демона Docker.
Настройте FRPS так же, как указано выше.
# frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000
[unix_domain_socket]
type = tcp
remote_port = 6000
plugin = unix_domain_socket
plugin_unix_path = /var/run/docker.sock
curl http://x.x.x.x:6000/version
Предоставление простого HTTP-файлового сервера
Простой способ просмотра файлов в локальной сети.
Настройте FRPS так же, как указано выше.
# frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000
[test_static_file]
type = tcp
remote_port = 6000
plugin = static_file
plugin_local_path = /tmp/file
plugin_strip_prefix = static
plugin_http_user = abc
plugin_http_passwd = abc
http://x.x.x.x:6000/static/
с помощью браузера, введите правильные имя пользователя и пароль, чтобы увидеть файлы в /tmp/file
.Включение HTTPS для локального HTTP-сервиса
# frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000
[test_htts2http]
type = https
custom_domains = test.yourdomain.com
plugin = https2http
plugin_local_addr = 127.0.0.1:80
plugin_crt_path = ./server.crt
plugin_key_path = ./server.key
plugin_host_header_rewrite = 127.0.0.1
https://test.yourdomain.com
.Предоставьте свой сервис в безопасности
Для некоторых сервисов прямое предоставление их общедоступной сети может представлять угрозу безопасности.
stcp (секретный TCP) помогает создать прокси, избегая любого доступа к нему.
Настройте FRPS так же, как указано выше.
# frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000
[secret_ssh]
type = stcp
sk = abcdefg
local_ip = 127.0.0.1
local_port = 22
# frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000
[secret_ssh_visitor]
type = stcp
role = visitor
server_name = secret_ssh
sk = abcdefg
bind_addr = 127.0.0.1
bind_port = 6000
ssh -oPort=6000 test@127.0.0.1
Режим P2P
xtcp предназначен для передачи большого объёма данных напрямую между двумя клиентами.
Теперь он не может проникать через все типы устройств NAT. Вы можете попробовать stcp, если xtcp не работает.
bind_udp_port = 7001
# frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000
[p2p_ssh]
type = xtcp
sk = abcdefg
local_ip = 127.0.0.1 **Без UDP**
Здесь приведён пример для сервиса https:
```ini
# frpc.ini
[web]
type = https
local_port = 443
custom_domains = test.yourdomain.com
# теперь поддерживается версия v1 и v2
proxy_protocol_version = v2
Вы можете включить поддержку Proxy Protocol в nginx, чтобы анализировать реальный IP-адрес пользователя в заголовке HTTP X-Real-IP
.
Затем вы можете получить его из заголовка HTTP-запроса в вашем локальном сервисе.
Любой, кто сможет угадать URL вашего туннеля, сможет получить доступ к вашему локальному веб-серверу, если вы не защитите его паролем.
Это обеспечивает базовую аутентификацию HTTP для всех запросов с именем пользователя и паролем, которые вы указываете в файле конфигурации frpc.
Её можно включить только тогда, когда тип прокси — http.
# frpc.ini
[web]
type = http
local_port = 80
custom_domains = test.yourdomain.com
http_user = abc
http_pwd = abc
Посетите http://test.yourdomain.com
, и теперь вам нужно ввести имя пользователя и пароль.
Удобно использовать конфигурацию subdomain
для типов http и https, когда многие люди используют один сервер frps вместе.
# frps.ini
subdomain_host = frps.com
Разрешите *.frps.com
на IP-адрес сервера frps.
# frpc.ini
[web]
type = http
local_port = 80
subdomain = test
Теперь вы можете посетить свой веб-сервис по хосту test.frps.com
.
Обратите внимание, что если subdomain_host
не пуст, custom_domains
не должен быть поддоменом subdomain_host
.
frp поддерживает переадресацию HTTP-запросов на разные обратные веб-сервисы с помощью маршрутизации URL.
locations
указывают префикс URL, используемый для маршрутизации. frps сначала ищет наиболее конкретный префикс местоположения, заданный строковыми литералами, независимо от указанного порядка.
# frpc.ini
[web01]
type = http
local_port = 80
custom_domains = web.yourdomain.com
locations = /
[web02]
type = http
local_port = 81
custom_domains = web.yourdomain.com
locations = /news,/about
HTTP-запросы с префиксом URL /news
и /about
будут перенаправлены на web02, а остальные — на web01.
frpc может подключаться к frps с использованием HTTP PROXY, если вы установите среду ОС HTTP_PROXY
или настроите параметр http_proxy
в файле frpc.ini.
Он работает только тогда, когда протокол — tcp.
# frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000
http_proxy = http://user:pwd@192.168.1.128:8080
Имя прокси с префиксом range:
будет поддерживать сопоставление портов диапазона.
# frpc.ini
[range:test_tcp]
type = tcp
local_ip = 127.0.0.1
local_port = 6000-6006,6007
remote_port = 6000-6006,6007
frpc сгенерирует 8 прокси, таких как test_tcp_0
, test_tcp_1
... test_tcp_7
.
По умолчанию frpc только пересылает запрос на локальный порт tcp или udp.
Плагин используется для предоставления расширенных функций. Существуют встроенные плагины, такие как unix_domain_socket
, http_proxy
, socks5
, static_file
, и вы можете увидеть пример использования.
Укажите, какой плагин использовать, с помощью параметра plugin
. Параметры конфигурации плагина должны начинаться с plugin_
. local_ip
и local_port
бесполезны для плагина.
Используя плагин http_proxy:
# frpc.ini
[http_proxy]
type = tcp
remote_port = 6000
plugin = http_proxy
plugin_http_user = abc
plugin_http_passwd = abc
plugin_http_user
и plugin_http_passwd
— это параметры конфигурации, используемые в плагине http_proxy
.
Хотите поучаствовать? Мы хотели бы помочь вам!
Примечание: Мы предпочитаем, чтобы вы давали свои советы в проблемах, чтобы другие могли задать тот же вопрос. Если FRP вам сильно помог, вы можете поддержать нас:
Группа FRP в QQ: 606194980.
Пожертвуйте деньги через paypal на мой счёт fatedier@gmail.com.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )