AWS & GCP

[GCP] Coturn 서버 만들기 - 2

김먼저 2022. 9. 26. 19:30

이전 글에서 GCP에서 인스턴스를 만들고 포트를 여는 것 까지 진행했습니다.

https://firstws.tistory.com/17

 

[GCP] Coturn 서버 만들기 - 1

Google Cloud Platform(GCP)에 새 인스턴스를 생성하여 COTURN 서버를 만들어보겠습니다. (저도 처음이라 일단 도메인, SSL인증서 발급등은 생략하겠습니다.) 1. GCP 콘솔 → Compute Engine → VM 인스턴스 → 인.

firstws.tistory.com

 

 

 

Coturn서버를 만드는데 도메인, SSL이 필요하다는 글과 전혀 안쓰고 서버를 구축하는 글이 있어서 혼란스러웠으나

 

 

저는 회사에서 도메인을 제공해줬고, 그 도메인으로 무료 SSL을 따와서 진행했습니다.

 

 

도메인, 무료 SSL 인증서를 발급받는 방법을 알기 쉽게 작성한 곳입니다.

 

 

https://blog.itcode.dev/posts/2021/08/18/freenom-domain

 

[SSL] Freenom을 활용한 무료 도메인 발급하기 - 𝝅번째 알파카의 개발 낙서장

이전 글들에서 SSL이 뭔지, 어떤식으로 동작하는지를 다뤘다. 사이트에 SSL을 적용하기 위해선 SSL 인증서를 발급받아야한다. SSL 인증서를 발급받기 위해선 인증받기 위한 도메인이 필요하다. 국

blog.itcode.dev

 

https://blog.itcode.dev/posts/2021/08/19/lets-encrypt

 

[SSL] Windows 10에서 Let's Encrypt로 SSL 인증서 무료 발급받기 - 𝝅번째 알파카의 개발 낙서장

도메인도 있겠다. 이제 이 도메인을 가지고 SSL 인증서를 발급받아보자. 물론 SSL 인증서 또한 발급받는데 비용이 든다. 대부분의 운영 중인 도메인 업체는 SSL 발급도 병행한다. 테스트 목적이라

blog.itcode.dev

 

 

 

1. 인스턴스에 Coturn 서버 설치하기

 

 

SSH를 누르면 

 

 

다음과 같은 창이 생깁니다.

 

 

그리고 다음 명령어를 순서대로 입력합니다.

 

sudo apt update
sudo apt install coturn

 

그러면 Coturn서버 설치가 끝났습니다.

 

 

 

 

 

 

 

......???   

 

 

윈도우 설치프로그램(.exe) 실행해서 설치가 되었다고 생각하시면 됩니다.

 

 

하지만 제대로 작동하기 위해서는 설정을 해줘야합니다.

 

GO GO!

 

 

2. Coturn 설정 파일 변경

 

sudo vi /etc/turnserver.conf

vi : unix, linux에서 편집기 모드를 실행한다는 명령어입니다. 즉, '저~~기에 있는 .conf 파일을 편집할래!!' 인거죠.

 

무튼 위 명령어를 실행하면 다음과 같은 설정 모드가 실행됩니다.

 

 

<입력모드>
vi 명령모드에서 "a" or "i" 를 누르면 입력모드로 전환되고
입력모드를 종료하려면 "ESC"를 누르면 됩니다.

 

 

listening-ip=<X.X.X.X>
external-ip=<Y.Y.Y.Y>/<X.X.X.X>

# Lower and upper bounds of the UDP relay endpoints:
# (default values are 49152 and 65535)
min-port=49152
max-port=65535

# Uncomment to run TURN server in 'normal' 'moderate' verbose mode.
# By default the verbose mode is off.
verbose

# Uncomment to use fingerprints in the TURN messages.
# By default the fingerprints are off.
fingerprint
# Uncomment to use long-term credential mechanism.

# By default no credentials mechanism is used (any user allowed).
lt-cred-mech
# Server name used for

# the oauth authentication purposes
realm=<domain>

# define user and password (usr:pass)
user=<ID>:<PASSWORD>

 

listening-ip = <X.X.X.X>               (내부 IP / 프라이빗 IPv4 주소)

 

 

external-ip=<Y.Y.Y.Y>/<X.X.X.X>  (외부 IP / 퍼블릭 IPv4 주소)

 

 

 

 

설정이 끝나면 'ESC' 입력  →  ' : ' 입력  →  'wq' 입력 후 엔터.

 

 

(wq : vi를 저장하고 종료.)

 

 

sudo service coturn restart
sudo service coturn status

 

서버를 재시작하고 어떤 상태인지 확인해봅시다.

 

 

초록색으로 'active (running)이라고 뜨면 잘 돌아가고 있다는거죠! 하하하핫!

 

 

 

3. 잘 돌아가나 테스트해보기

 

 

https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/

 

Trickle ICE

 

webrtc.github.io

 

 

(1) STUN or TURN URI : 서버 도메인 또는 외부 IP주소를 입력.

(2)TURN username/password : turnserver.conf 에서 설정한 ID와 Password를 입력.

(3) Add Server 버튼 클릭.

(4)Gather candidates 버튼 클릭.

 

 

Priority 컬럼 맨 아래쪽에 Done이라고 뜨면 성공입니다~~