frp 소스 코드 읽 기와 분석 (1): 절차 와 개념

3136 단어 backend
원문 에서 도 읽 을 수 있다.https://jiajunhuang.com/articles/2019_06_11-frpc_source_code_part1.md.html
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: visitorstcpxtcp 을 사용 할 때 인터넷 서버 에 요청 한 컴퓨터 도 클 라 이언 트 를 설치 하 는 것 을 말한다. 그것 이 바로 visitor
  • 이다.
  • workConn: workConn 이란 frpcfrps 이 구축 한 연결
  • 을 말한다.
  • service: service 서버 와 클 라 이언 트 에서 모든 것 을 관할 하 는 온 가족 통 입 니 다.직접 그것 을 frpcfrps 로 볼 수 있다.
  • 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 의 프로그램 코드 가 융합 frpfrpc 간 의 요 구 를 위해 TCP 위 에 협의 봉 인 했 기 때문에 대량으로 사용 frps 되 었 기 때문에 코드 가 곳곳 으로 잘 려 연결 되 기 가 쉽 지 않다 는 점 이다.그 러 니까 마음의 준 비 를 하 세 요.
    총결산
    이 글 에서 우 리 는 frp 의 개념 과 절 차 를 이해 했다.다음 편 은 코드 에 깊이 들 어가 서 TCP 에이전트 가 어떻게 일 하 는 지 보 겠 습 니 다.
    참고 자료:
    원문 참조:https://jiajunhuang.com/articles/2019_06_11-frpc_source_code_part1.md.html

    좋은 웹페이지 즐겨찾기