직접 미디어 연결이 실패할 경우 Nextcloud Talk 통화를 연결하세요

Nextcloud Talk 통화 연결이 되지 않거나 단방향 미디어 전송이 발생하는 문제를 해결하려면, 연결 가능한 TURN 릴레이를 구성하고 Talk 설정에서 해당 호스트 이름, 포트 및 공유 암호를 입력한 다음, TURN 리스너와 릴레이 포트 모두를 통해 트래픽을 허용하세요. TURN은 직접 연결이 실패할 경우 WebRTC에 릴레이 경로를 제공하지만, 약한 Wi-Fi 연결, 패킷 손실 또는 과부하된 네트워크 문제를 해결하지는 않습니다.

예시: 소규모 조직을 가정해 보겠습니다. 직원들은 사무실에서는 Talk 통화에 참여할 수 있지만 호텔 네트워크에서는 안정적으로 비디오를 전송할 수 없습니다. 호텔 방화벽이 직접 미디어 경로를 차단할 수 있습니다. 아래 예시는 관리자가 경로를 확인하고 coTURN을 구성하고 변경 사항을 테스트하는 과정을 보여주는 것으로, 실제 배포 또는 테스트 보고서는 아닙니다.

1. 릴레이가 올바른 해결책인지 확인하십시오.

Nextcloud Talk는 우선 참가자들을 직접 연결하려고 시도합니다. STUN은 장치가 라우터에서 생성된 공용 주소와 포트를 찾도록 도와줍니다. 방화벽이나 제한적인 NAT로 인해 직접 경로 연결이 차단되는 경우, TURN이 미디어를 중계합니다. STUN 서버만으로는 이러한 중계 기능을 제공할 수 없습니다.

사무실 네트워크에서 통화하는 것과 휴대폰 핫스팟과 같은 별도의 네트워크에서 통화하는 것을 비교해 보세요. 한 곳에서는 통화가 연결되지만 특정 제한된 위치에서 오디오 또는 비디오 연결이 반복적으로 실패하는 경우, TURN(Transportation Unit Network)을 점검하는 것이 좋습니다. 모든 네트워크에서 통화는 연결되지만 화면이 흐릿하거나 끊기는 현상이 발생하는 경우, 대역폭, 패킷 손실률, Wi-Fi 품질 및 CPU 부하를 먼저 측정해 보세요. 중계 네트워크를 통해 더 많은 미디어를 라우팅하면 부하가 증가할 뿐 용량 증대로 이어지지는 않습니다.

구성 필드가 비어 있고 자격 증명 필드가 가려진 간소화된 관리자 설정 페이지
그림: 테스트 통화 전에 검토해야 할 설정을 나타내는 구성 필드와 가려진 자격 증명이 있는 관리자 페이지.

Talk 버전, TURN 호스트 이름 및 포트, TURN 호스트가 NAT 뒤에 있는지 여부, 고성능 백엔드(HPB)가 설치되어 있는지 여부를 기록하십시오. 비밀 정보는 비공개로 유지하십시오. 아래 명령어는 systemd가 설치된 Linux 환경을 기준으로 작성되었으며, 패키지 경로는 환경에 따라 다를 수 있습니다.

2. 공유 비밀 키 인증을 사용하여 coTURN을 구성합니다.

Nextcloud의 Talk 문서에서는 이전 버전에서 IPv6 UDP 소켓 문제가 발생하므로 coTURN 4.5.0.8 이상 버전을 권장합니다. 사용 중인 배포판의 저장소에서 coTURN을 설치하고 활성 구성 파일(일반적으로 `/etc/coturn.js` /etc/turnserver.conf)을 찾으세요. TURN 호스트에서 임의의 비밀 키를 생성합니다.

openssl rand -hex 32

해당 값을 암호 관리자 또는 보호된 구성 저장소에 저장하십시오. 활성 coTURN 구성에서 리스너, 공유 비밀 인증 및 영역을 설정하십시오. 예시 호스트 이름과 비밀 키를 실제 값으로 바꾸십시오.

listening-port=3478
fingerprint
use-auth-secret
static-auth-secret=REPLACE_WITH_RANDOM_SECRET
realm=turn.example.org
total-quota=0
bps-capacity=0
stale-nonce
no-multicast-peers

Talk 문서에는 lt-cred-mechcoTURN 4.5.0.8 이전 버전에 대한 내용만 나와 있습니다. 이전 버전을 사용하는 경우 기존 설정을 그대로 복사하지 말고 업그레이드하십시오. coTURN이 NAT 뒤에 있는 경우 배포 가이드에 따라 공용 주소와 릴레이 주소를 구성하고 DNS 이름이 참가자가 접근 가능한 주소로 확인되는지 확인하십시오.

추상적인 설정 라인과 강조 표시된 설정이 있는 어두운 코드 편집기 창
그림: coTURN 리스너 및 인증 설정을 나타내는 구성 편집기입니다. 이미지에서 추론한 값이 아닌, 본문에 설명된 매개변수 이름을 사용하십시오.

3. 리스너 및 릴레이 경로를 엽니다.

호스트 및 상위 방화벽에서 UDP 및 TCP에 대해 TURN 리스너 포트(이 예에서는 3478)를 허용하십시오. TLS의 경우 coTURN에는 유효한 인증서와 개인 키가 필요하며 Talk도 사용해야 합니다 turns:. 포트 443은 더 제한적인 네트워크에도 접근할 수 있지만 충돌 여부를 확인하십시오. HPB에서도 해당 포트가 필요할 수 있으므로 별도의 IP 주소 또는 호스트가 필요할 수 있습니다.

미디어도 릴레이 포트를 사용합니다. 호스트 방화벽, 클라우드 보안 그룹 및 라우터에서 coTURN 릴레이 UDP 범위를 허용하십시오. min-port및 설정을 구성한 경우 max-port, 해당 범위를 정확히 열어야 합니다. 리스너만 허용하는 것은 충분하지 않습니다. NAT 뒤에 있는 TURN 호스트의 경우, 리스너 및 릴레이 범위 모두를 포워딩하고 공용/릴레이 주소를 구성하십시오. 관련 없는 내부 서비스에 대한 접근을 방지하기 위해 coTURN 피어 제한을 유지하십시오.

활성화된 인바운드 및 아웃바운드 네트워크 항목이 포함된 간소화된 방화벽 규칙 테이블
그림: 방화벽 항목은 허용해야 하는 리스너 및 릴레이 트래픽을 나타냅니다. 정확한 포트 범위는 coTURN 구성에 따라 달라집니다.

편집 후 coTURN을 재시작하고 서비스가 활성화되었는지 확인하십시오. 예를 들어 systemd 호스트에서는 다음과 같이 합니다.

sudo systemctl restart coturn
sudo systemctl status coturn --no-pager

서비스 상태는 프로세스가 시작되었음을 확인하는 것이며, 원격 브라우저가 릴레이에 연결할 수 있음을 증명하는 것은 아닙니다. 호스트 및 공급자 방화벽을 각각 확인하고, coTURN 로그에서 바인딩 오류, 인증 실패 또는 할당량 초과 메시지를 검토하십시오.

4. Talk에 서버를 추가하고 실제 통화가 되는지 확인하세요.

관리자 권한으로 관리 설정 > Talk를 엽니다 . TURN 호스트 이름과 포트(예: )를 입력하고 turn.example.org:3478, 와 동일한 암호를 사용 합니다. 호스트 이름 필드에 , , 또는 static-auth-secret를 포함하지 마십시오. Talk의 설정에서 프로토콜을 선택하십시오. 가능한 경우 UDP와 TCP를 모두 활성화된 상태로 유지하십시오. coTURN에서 TLS를 구성한 후에만 사용하십시오.https://turn:turns:turns:

Talk에 내장된 TURN 검사 기능이 있으면 저장하고 실행합니다. 그런 다음 제한된 네트워크에서 다른 네트워크로 전화를 걸어 양방향 오디오 및 비디오가 작동하는지 확인합니다. 통화 중에 coTURN 로그를 확인하여 할당 또는 인증 실패 여부를 확인합니다. 예시에서 관리자는 호텔과 유사한 연결 상태와 사무실 통화 상태를 비교합니다.

두 명의 참가자와 통화 제어 기능이 있는 화상 통화 창
그림: 2인 통화 창은 TURN 설정을 저장한 후 엔드 투 엔드 점검을 나타냅니다. 각 참가자가 미디어를 송수신할 수 있는지 확인하십시오.

검사에 실패하면 호스트 이름, 포트 및 암호를 비교한 다음 DNS, 방화벽 규칙, 릴레이 UDP 범위, NAT 포워딩 및 서비스 로그를 확인하십시오. 기본 검사에서는 릴레이 경로 문제를 놓칠 수 있으므로 외부 네트워크에서 테스트하십시오. TURN 전용 진단의 경우 Talk의 브라우저별 절차를 따르십시오. 콘솔 방식은 임시적인 방법이며 브라우저별 동작 방식이 다릅니다.

TURN은 그룹 통화 확장에 최적화되어 있지 않습니다. Nextcloud에 따르면 5~10명 이상의 사용자가 참여하는 대규모 그룹 통화에는 HPB(High-Performance Base Station)가 필요합니다. TURN 연결은 되지만 영상 품질이 좋지 않은 경우, 릴레이 할당량을 변경하기 전에 대역폭, 패킷 손실, Wi-Fi 간섭 및 서버 부하를 확인하십시오.

검증

이 문제는 다음 세 가지 관찰 가능한 징후로 뒷받침됩니다. Talk에서 TURN 구성을 수락하고, coTURN 로그에 통화 중 릴레이 할당이 표시되며, 서로 다른 네트워크에 있는 참가자 간에 오디오 및 비디오가 양방향으로 전송될 수 있습니다. 사무실 통화만 작동하거나 로그에 수신 요청이 표시되지 않으면 공용 경로가 여전히 차단되었거나 구성된 호스트와 포트가 일치하지 않는 것입니다. 미디어는 전송되지만 품질이 좋지 않은 경우 TURN 연결은 정상적으로 작동하고 있으며 나머지 문제는 네트워크 또는 통화 인프라의 다른 부분에 있을 가능성이 높습니다.

참고 자료: Nextcloud Talk TURN 서버 구성 ; Nextcloud Talk coTURN 구성 ; coTURN 구성 위키 .

댓글 남기기

예약 대기열을 사용하여 Nextcloud 미리보기의 CPU 사용량 급증을 제어하세요

썸네일 작업을 제어된 백그라운드 일정으로 이동하고, 사용하지 않는 미리보기 크기를 줄이고, Nextcloud 서버에 과부하를 주지 않고 대기열을 검증하세요.

Nextcloud 데스크톱 동기화, "파일 처리 중" 문제 해결

Nextcloud 동기화를 방해하는 파일, 제외 규칙, 연결 문제 또는 클라이언트 데이터베이스 상태를 찾은 다음 업로드 및 다운로드가 안전하게 진행되는지 확인하십시오.

Nextcloud OPcache 경고를 해결하려면 적정 한도를 조정하세요.

Nextcloud 경고를 유발하는 PHP OPcache 제한을 찾아 올바른 웹 PHP 구성을 업데이트하고 안전하게 재시작한 후 결과를 확인하십시오.

Nextcloud를 CODE Docker에 연결하기: 설정 및 장단점

Nextcloud를 CODE Docker에 연결하기: 설정 및 장단점

내장 CODE와 Docker 기반 CODE를 비교한 다음, 안전한 HTTPS 역방향 프록시를 통해 Collabora Online을 Nextcloud에 연결합니다.

Galera를 사용하여 안정적인 Nextcloud 클러스터를 구축하세요

공유 스토리지, Redis 잠금, 쿼럼 인식 MariaDB 라우팅 및 실용적인 장애 조치 점검을 ​​통해 안정적인 Nextcloud 고가용성(HA) 배포를 계획하십시오.

직접 미디어 연결이 실패할 경우 Nextcloud Talk 통화를 연결하세요

직접 미디어 연결이 실패할 경우 Nextcloud Talk 통화를 연결하세요

방화벽이나 제한적인 NAT로 인해 직접 통화 매체가 차단되는 경우, Nextcloud Talk에 연결 가능한 TURN 릴레이를 구성하고 확인하십시오.

올바른 파일을 복원하여 Nextcloud 무결성 경고를 해결하세요

잘못된 파일 보고서를 사용하여 변경되었거나 누락되었거나 추가된 Nextcloud 코드를 식별하고, 신뢰할 수 있는 파일을 안전하게 복원하고, 결과를 확인할 수 있습니다.

OAuth2를 사용하여 Gmail 또는 Microsoft 365를 Nextcloud 메일에 연결합니다.

Gmail 또는 Microsoft 365를 사용하여 Nextcloud 메일에 대한 OAuth2를 설정하고, 수신 및 발신을 확인하고, 일반적인 동의 및 SMTP 오류를 해결합니다.

OCC를 사용하여 Nextcloud 유지 관리 모드 오류를 안전하게 해결하세요

OCC를 사용하여 Nextcloud 유지 관리 모드 오류를 안전하게 해결하세요

OCC를 사용하여 Nextcloud 액세스를 복원하고, 데이터베이스 마이그레이션 상태를 확인하고, 아카이브, Docker 또는 Snap 설치에 적합한 명령을 선택하십시오.

Nextcloud LDAP 및 Active Directory 로그인 설정

Nextcloud를 LDAP 또는 Active Directory에 연결하고, 사용자 및 그룹 필터를 사용하여 액세스를 제한하고, 배포 전에 보안 인증을 확인하십시오.