본문 바로가기
카테고리 없음

CloudFlare Tunnel로 방화벽 안에서 서버 실행하는 법

by 수메르 여행자 2024. 3. 17.

서론

안녕하세요. 오늘은 클라우드플레어 터널을 설정하고 이를 통해서 방화벽 안에서 서버를 실행하도록 하겠습니다

 

사실 대부분의 환경 및 서버 운영에서는 방화벽을 오픈하고 정상 경로로 서버를 운영하는 경우가 많습니다.

그러나 일부 특수한 경우인 클라우드 속에서 호스팅하거나 학교, 기업의 방화벽 내부에서 서버를 실행하는 경우에, 방화벽을 마음대로 개방할 수 없다면 서버 운영을 위해서는 vpn, proxy를 사용해야 하죠

 

그런데 클라우드 플레어를 쓰면 이 걱정이 모두 사라집니다 ( 클라우드 플레어 주주라서 약팔이 하는 거 아닙니다 )

 

클라우드 플레어 터널은 위와 같이 동작하는데..

엄... 그냥 vpn 비슷한 거라고 보면 됩니다

 

사용자의 요청을 클라우드플레어 서버가 처리하고, vpn과 같은 내부 프록시로 터널링을 통해 서버로 전달하고

서버로 전달된 데이터를 불러와 요청한 내부 포트로 보내주는 것 뿐이죠

( 물론 서버 속도 손실은 어쩔 수 없습니다. 근데 보통 1%도 차이 안 납니다 )

 

Cloudflare Tunnel 설정

https://www.cloudflare.com/ko-kr/

 

모든 곳을 연결하고, 보호하며, 구축합니다

복잡성과 비용을 줄이면서 직원, 애플리케이션, 네트워크를 어디에서든 더 빠르고 안전하게 만듭니다.

www.cloudflare.com

우선 클라우드플레어 공식 사이트에 들어가서 로그인을 해줍니다

(없으시면 회원 가입해주세요)

 

 

로그인을 하면 위와 같이 관리하는 도메인과 계정이 보일겁니다

여기서 원하는 도메인(터널을 설정할) 도메인을 골라 들어가줍니다

 

 

그러면 이런 식으로 쿼리 정보가 뜨면 왼쪽에 Access 라는 항목으로 들어가줍니다

 

 

그러면 Zero Trust 시스템을 실행할 수 있는 창이 뜨고 여기서 파란 버튼을 눌러줍니다

 

 

이후 제로트러스트 에비뉴로 오게 되는데

여기서 다시 Access 를 누릅니다

 

처음 가입하시면 카드 번호 물어볼 수도 있는데 각 도메인 별로 원하는 플랜을 골라주세요

 

 

이런 건데 프리 해도 상관 없습니다 ( 엔터프라이즈 ) 하면 지원 등이 커집니다

 

 

Access > Networks 를 누르시면 이런 식으로 터널이 뜨게 됩니다

 

+ Create Tunnels를 누르고 진행해줍니다

 

 

Cloudflared누르고 Next를 눌러줍니다

 

자 제일 어려운 순간인데

바로 터널 작명 입니다 

그냥 이름 붙여 주는 거지만 나중에 식별이 용이해야 하고.. 어떻기 때문에 붙이고 싶은 이름 붙이세요

 

 

요런 식으로 들어오면 이 아래에 명령어 하나가 뜹니다

이 명령어를 그냥 Linux 혹은 Windows PC에 붙여넣으면 되는데

 

이게 일종의 키이기 때문에 남에게 공개는 금물입니다

 

 

요 명령어를 Linux 터미널 창에 붙여넣은 다음 잠시 기다리면 이런 식으로 Connectors로 연결되게 됩니다

다시 next를 누르면 이런 걸 세팅해야 합니다

 

사실 다 알거 같긴 하지만

Domain은 클라우드플레어에 등록된 도메인을 그대로 사용하고

subdomain은 m.naver.com  처럼 m위치에 오는 파라미터, PATH는  www.naver.com/blog , www.naver.com/web

 

네이버

네이버 메인에서 다양한 정보와 유용한 컨텐츠를 만나 보세요

www.naver.com

이런 느낌으로 동작하는 거라고 보시면 됩니ㅏ다

 

서비스의 경우에는

localhost (http) 

즉, 이런 식으로 세팅해주면 됩니다

 

위와 같이 설정하면 크게 2가지 이점이 생깁니다

 

1. SSL 없이 Cloudflare의 자동 인증서 등록 ( 자동 https )

2. 방화벽 내부에 있어도 호스팅 가능 

 

이 정도가 되겠네요

 

왜 localhost:3000 이냐면 그냥 제가 넥스트 페이지를 띄울 거라서 그렇습니다 ( 필요한 포트로 바꾸세요 )

 

그러고 나서 터널에 있는 route  경로로 들어가 보면 이렇게 뜹니다

지금은 제가 서버에서 페이지를 안 띄워서 이렇게 나오지만 홍콩 cloudflare 서버로 연결되는 것을 알 수 있죠

 

여튼 서버에서 npm run / start 실행 후 잠시 기다리면 서버에 정상적으로 접속이 될 겁니다

질문은 댓글로 받습니다!