frp 소스 코드 읽 기와 분석 (1): 절차 와 개념
3136 단어 backend
frp 는 내부 네트워크 투과 에 사용 되 는 역방향 프 록 시 서버 로 Nginx 와 달리 일반적으로 우 리 는 Nginx 를 사용 하여 부하 균형 을 잡 고 frp 는 내부 네트워크 투과 에 사용 합 니 다.
먼저 Nginx 와 frp 트 래 픽 의 차 이 를 살 펴 보 자.이것 은 Nginx 의 유량 방향 설명도 입 니 다.
그림 은 원문 에서 열 어야 합 니 다:https://jiajunhuang.com/articles/2019_06_11-frpc_source_code_part1.md.html
이것 은 frp 의 유량 방향 설명도 입 니 다.
그림 은 원문 에서 열 어야 합 니 다:https://jiajunhuang.com/articles/2019_06_11-frpc_source_code_part1.md.html
frp 의 명사 들 을 이해 하 다.
솔직히 frp 에 명사 가 너무 많은 데다 가 Golang 의 기이 한 꽃 이름 규칙 (요구 가 짧 음) 을 더 하면 읽 기 가 쉽 지 않 습 니 다.우 리 는 먼저 frp 소스 코드 를 읽 기 전에 어떤 명사 가 우리 가 알 아야 하 는 지 알 아 봐 야 한다.
frps
: frp 는 두 부분 으로 구성 되 어 있 으 며 frps
은 서버 의 이름 으로 요청 을 처리 하고 퍼 가기 트 래 픽 frpc
: frp 는 두 부분 으로 구성 되 어 있 으 며 frpc
클 라 이언 트 의 이름 으로 로 컬 데 이 터 를 서버 에 연결 하여 서버 가 읽 기 & 쓰기 proxy
: proxy
바로 대리 입 니 다. 예 를 들 어 아래 프로필 에서 [tcp]
와 [http]
는 대리 할 물건 입 니 다 visitor
: visitor
는 stcp
과 xtcp
을 사용 할 때 인터넷 서버 에 요청 한 컴퓨터 도 클 라 이언 트 를 설치 하 는 것 을 말한다. 그것 이 바로 visitor
workConn
: workConn
이란 frpc
과 frps
이 구축 한 연결 service
: service
서버 와 클 라 이언 트 에서 모든 것 을 관할 하 는 온 가족 통 입 니 다.직접 그것 을 frpc
과 frps
로 볼 수 있다.control
: control
연결 을 관리 하 는 데 쓰 인 다. 예 를 들 어 연결, 끊 기 등 xxx wrapper
: 이 건 말 그대로 포장 이 야. 보통 하나 logger
xxx manager
: 말 그대로 관리 하 는 거 야 # 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]
type = tcp
local_ip = 127.0.0.1
local_port = 80
remote_port = 6001
요청 한 대략적인 처리 절차
다음은 frp 의 작업 절 차 를 살 펴 보 겠 습 니 다.
frpc
시작 후 연결 frps
, 요청 login()
을 보 낸 후 이 긴 연결 을 유지 하고 끊 기 면 다시 시도 frps
요청 을 받 으 면 listener
공공 네트워크 에서 온 요청 frps
. 없 으 면 다음 frp
을 보 내 고 msg.StartWorkConn
요청 을 기다 리 겠 습 니 다 frpc
받 은 후에 frpc
에 게 요청 을 했 습 니 다. 요청 한 처음에 이 연결 이 어디로 갔 는 지 frps
proxy
frps
로부터 연결 을 받 은 후에 새로 설립 된 연결 과 공공 네트워크 에서 온 연결 을 트 래 픽 으로 상호 전환 어 려 운 점 은
frpc
의 프로그램 코드 가 융합 frp
과 frpc
간 의 요 구 를 위해 TCP 위 에 협의 봉 인 했 기 때문에 대량으로 사용 frps
되 었 기 때문에 코드 가 곳곳 으로 잘 려 연결 되 기 가 쉽 지 않다 는 점 이다.그 러 니까 마음의 준 비 를 하 세 요.총결산
이 글 에서 우 리 는 frp 의 개념 과 절 차 를 이해 했다.다음 편 은 코드 에 깊이 들 어가 서 TCP 에이전트 가 어떻게 일 하 는 지 보 겠 습 니 다.
참고 자료:
원문 참조:https://jiajunhuang.com/articles/2019_06_11-frpc_source_code_part1.md.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
NestJS: 업로드된 이미지를 최적화하기 위한 파이프 생성.변환의 경우 파이프는 입력 데이터를 경로 처리기가 받을 특정 형식으로 변환하는 작업을 처리합니다. 이는 ParseIntPipe 의 경우입니다. 이 게시물에서는 들어오는 이미지를 가져 와서 크기와 웹 친화적인 형식으로...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.