DEV Community

Bino
Bino

Posted on

frp로 리버스 프록시 환경 구축하기

frp란?
ngrok의 오픈소스 버전.

망이 닫혀있거나 포트포워딩을 할 수 없는, 내부망 등의 상황에서 내부 포트를 외부에 흘릴 수 있게 만들어줌.

예를 들어 기숙사에서 내 서버를 열고 싶은데 외부 연결이 차단되어 시도가 힘든 경우 사용할 수 있다.

대신, 이를 중개해줄 서버가 한 대 더 필요함.

중개해줄 서버를 server, 프록시 걸 컴퓨터를 client라고 함.

  • server 환경
    • Ubuntu 22.04 LTS
  • client 환경
    • Windows 10 # 1. 서버 환경 ## FRP 설치 공식 링크에서 직접 다운받거나
wget <https://github.com/fatedier/frp/releases/download/v0.43.0/frp_0.43.0_linux_amd64.tar.gz>
Enter fullscreen mode Exit fullscreen mode

에서 버전, amd(arm)을 신경써서 변경한다.

압축 풀기

tar -xf frp_0.43.0_linux_amd64.tar.gz
Enter fullscreen mode Exit fullscreen mode

세팅

sudo cp frps /usr/bin
sudo mkdir /etc/frp
sudo cp frps_full.ini /etc/frp/frps.ini
sudo mkdir /var/frp
Enter fullscreen mode Exit fullscreen mode

구성 파일 세팅

# 클라이언트와의 연결에 사용될 secret key
token=asdh7as5612
bind_addr = 0.0.0.0
# 클라이언트와 통신할 때 사용
bind_port = 7000
Enter fullscreen mode Exit fullscreen mode

실행하기

./frps -c ./frps.ini
Enter fullscreen mode Exit fullscreen mode

2. 클라이언트 환경

  1. 윈도우버전 설치
  2. 압축 푼 뒤 frpc.ini 파일 편집
[common]
server_addr = # 서버 ip
server_port = 7000
token=1212

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
Enter fullscreen mode Exit fullscreen mode

이후 frpc 파일 실행

./frpc -c frpc.ini
Enter fullscreen mode Exit fullscreen mode

http, https 연결하려면 도메인 연결이 되어 있어야 함.

Troubleshooting

token in login doesn't match token from configuration

분명 서버, 클라이언트 모두 토큰을 같게 맞췄는데 안 맞는다고 한다..!
-c 옵션을 통해 ini 파일을 같이 세팅해주어야 한다.

마치며

최소 설정으로 한다면 정말 쉬운 데다가 모난 점 없는 뛰어난 프로그램, frp를 연결해보았다.

Ref

Install frp on Ubuntu 18.04 | Morning Star's blog (mls-tech.info)

Top comments (0)