Verwendung und Konfiguration der FRP-Reverse-Proxy-Anwendung

FRP-Nutzung

Frp ist eine Reverse-Proxy-Anwendung, die auf der Go-Sprache basiert. Sie unterstützt mehrere Protokolle, darunter: TCP, UDP, HTTPS, HTTP, STCP, XTCP usw. Durch die Verwendung von Frp können wir problemlos eine Intranet-Penetration erreichen.
Im Folgenden wird die Verwendung dieser Protokolle in Frp vorgestellt.

TCP-Protokoll-Reverse-Proxy

Über Frp wird der SSH-Dienst des Intranets in Form des TCP-Protokolls dem Internet zugänglich gemacht. Das schematische Diagramm dieses Frameworks lautet wie folgt:

 +-+-+-+-+       +-+-+-+-+      +-+-+-+-+-+-+-+
 |client |<----->|  frps |<---->|  frpc + ssh |   
 +-+-+-+-+       +-+-+-+-+      +-+-+-+-+-+-+-+

Die Konfiguration des FRP-Servers im Framework ist wie folgt:

# frps.ini
[common]
bind_port = 7000

Die Konfiguration des FRP-Clients ist wie folgt:

# frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000

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

HTTP-Protokoll-Reverse-Proxy

Der WebService des Intranets wird über das HTTP-Protokoll über frp dem Internet zugänglich gemacht. Das entsprechende Prinzip ist in der folgenden Abbildung dargestellt:

 +-+-+-+-+       +-+-+-+-+      +-+-+-+-+-+-+-+
 |client |<----->|  frps |<---->|  frpc + web |   
 +-+-+-+-+       +-+-+-+-+      +-+-+-+-+-+-+-+

Die Serverkonfiguration ist wie folgt:

# frps.ini
[common]
bind_port = 7000
vhost_http_port = 8080

Die Client-Konfiguration ist wie folgt:

# frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000

[web]
type = http
local_port = 80
custom_domains = www.example.com

UDP-Protokoll-Reverse-Proxy

Die DNS-Anfrage des Intranets wird über das UDP-Protokoll über Frp dem Internet zugänglich gemacht. Das schematische Diagramm der Antwort ist in der folgenden Abbildung dargestellt:

 +-+-+-+-+       +-+-+-+-+      +-+-+-+-+-+-+-+
 |client |<----->|  frps |<---->|  frpc + DNS |   
 +-+-+-+-+       +-+-+-+-+      +-+-+-+-+-+-+-+

Die Serverkonfiguration ist wie folgt:

# frps.ini
[common]
bind_port = 7000

Die Client-Konfiguration sieht folgendermaßen aus:

# 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

Reverse-Proxy des STCP-Protokolls

Um die Sicherheitsrisiken zu verringern, die durch die direkte Offenlegung bestimmter Dienste im öffentlichen Netzwerk entstehen, stellt Frp das STCP-Protokoll (Secret-TCP) bereit, das die Verwendung eines vorinstallierten Schlüssels erfordert, um von anderen Clients auf den Dienst zuzugreifen, wodurch die Zugriffssicherheit verbessert wird.
Das Prinzip des STCP-Protokolls ist in der folgenden Abbildung dargestellt:

 +-+-+-+-+-+-+-+-+-+       +-+-+-+-+-+      +-+-+-+-+-+-+-+-+-+
 |client + frpc(C) |<----->| frps(A) | <---->|  frpc + SSH(B) |   
 +-+-+-+-+-+-+-+-+-+       +-+-+-+-+-+      +-+-+-+-+-+-+-+-+-+

Die Serverkonfiguration ist wie folgt:

# frps.ini
[common]
bind_port = 7000

Die Konfiguration des Zugriffsendes ist wie folgt:

# frpc-server.ini
## 被访问的一端(B)
[common]
server_addr = *.*.*.*
server_port = 7000
protocol = kcp
token = 12345678

[secret_tcp]
type = stcp
sk = test
local_ip = 127.0.0.1
local_port = 36900

Die Konfiguration des Zugangsterminals ist in der folgenden Abbildung dargestellt:

# frpc-client.ini
## 访问端(C)
[common]
server_addr = *.*.*.*
server_port = 7000
protocol = kcp
token = 12345678

[secret_tcp_visitor]
type = stcp
role = visitor
server_name = secret_tcp
sk = test
bind_addr = 127.0.0.1
bind_port = 36900

In diesem Modus müssen sowohl das Zugriffsterminal als auch das Zugriffsterminal den frpc-Client installieren und beide Seiten müssen denselben geheimen Schlüssel konfigurieren. Im Vergleich zum TCP-Protokoll bietet es folgende Vorteile:
1. Der Frps-Server muss nur einen Port freigeben, was die Sicherheit erhöht.
2. Da das Zugriffsterminal und das Zugriffsterminal über einen geheimen Schlüssel zugreifen und beide frpc installieren müssen, wird die Sicherheit der Dienstfreigabe verbessert.

xtcp-Proxy-Zugriffsmodus

Xtcp ist ein neues von frp eingeführtes Protokoll, mit dem das Problem der direkten Übertragung großer Datenmengen zwischen Clients gelöst wird. Aufgrund der Unvollständigkeit des Protokolls ist dieses Übertragungsverfahren nicht für alle NAT-Geräte anwendbar.
Das Prinzip der xtcp-Protokollkommunikation ist in der folgenden Abbildung dargestellt:

 +-+-+-+-+-+-+-+-+-+       +-+-+-+-+-+      +-+-+-+-+-+-+-+-+-+
 |client + frpc(C) |<----->| frps(A) | <---->|  frpc + SSH(B) |   
 +-+-+-+-+-+-+-+-+-+       +-+-+-+-+-+      +-+-+-+-+-+-+-+-+-+

Die Konfiguration des FRP-Servers ist wie folgt:

# frps.ini
bind_udp_port = 7001
bind_port = 7000

Die Konfiguration des Clients, auf den frp zugegriffen wird, ist wie folgt:

# frpc.ini
# 被访问的SSH端(B)
[common]
server_addr = x.x.x.x
server_port = 7000

[p2p_ssh]
type = xtcp
sk = abcdefg
local_ip = 127.0.0.1
local_port = 22

Die Konfiguration des FRP-Zugriffsterminals ist wie folgt:

# frpc.ini
# ssh访问端(C)
[common]
server_addr = x.x.x.x
server_port = 7000

[p2p_ssh_visitor]
type = xtcp
role = visitor
server_name = p2p_ssh
sk = abcdefg
bind_addr = 127.0.0.1
bind_port = 6000

Die Zugriffsmethode ist wie folgt:

ssh -oPort=6000 127.0.0.1  

Konvertieren Sie den Unix-Domänen-Socket in das TCP-Protokoll

Der Server muss nur den entsprechenden Port öffnen, und die entsprechende Konfiguration des Clients lautet wie folgt:

# 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

Stellen Sie den Intranet-HTTP-Dienst dem externen Netzwerk zur Verfügung

Die Serverkonfiguration ist wie folgt:

# frps.ini
[common]
bind_port = 7000

Die Client-Konfiguration sieht folgendermaßen aus:

# 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/files
plugin_strip_prefix = static
plugin_http_user = abc
plugin_http_passwd = abc

Greifen Sie über http://xxxx:6000/static/ auf Dateien auf dem Computer zu, auf dem sich frpc befindet.

FRP-Konsole

Die Server-FrPS von FRP bieten eine entsprechende Webkonsole, über die wir die Statistiken von FRP überwachen können. Die Konfiguration zum Starten der Serverkonsole lautet wie folgt:

Die Konfiguration der http-Zugriffskontrolle ist wie folgt:

[common]
# 控制台的端口号
dashboard_port = 7500
# 控制台账号和密码
dashboard_user = admin # 账号
dashboard_pwd = admin  # 密码
# 访问地址
# http://[server_addr]:7500访问

Die Konfiguration der https-Zugriffskonsole ist wie folgt:

[common]
# 控制台的端口号
dashboard_port = 7500

# 控制的账号密码和证书
dashboard_user = admin
dashboard_pwd = admin
dashboard_tls_mode = true
dashboard_tls_cert_file = server.crt
dashboard_tls_key_file = server.key

# https控制的访问地址
# https://[server_addr]:7500

Zugriff auf die FRPC-Client-Konfigurationskonsole

[common]
admin_addr = 127.0.0.1
admin_port = 7400
admin_user = admin
admin_pwd = admin
# http://127.0.0.1:7400

Acho que você gosta

Origin blog.csdn.net/yang1fei2/article/details/131779710
Recomendado
Clasificación