質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

WebRTC

WebRTC(Web Real-Time Communication)とは、プラグイン無しでウェブブラウザ間の音声通話・ビデオチャットなどリアルタイムコミュニケーションができるオープンフレームワークです。W3CがAPIレベルで、IETFがプロトコルレベルでそれぞれ標準化が進められています。

Q&A

解決済

1回答

5096閲覧

WebRTC:TURNサーバ(coturn)が繋がらない

save6

総合スコア5

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

WebRTC

WebRTC(Web Real-Time Communication)とは、プラグイン無しでウェブブラウザ間の音声通話・ビデオチャットなどリアルタイムコミュニケーションができるオープンフレームワークです。W3CがAPIレベルで、IETFがプロトコルレベルでそれぞれ標準化が進められています。

0グッド

0クリップ

投稿2021/04/10 22:42

編集2021/04/10 22:55

前提・実現したいこと

UbunthでTURNサーバを構築するためにcoturnをインストールして設定しました。
Trickle-iceでテストしたところ下記エラーが出て繋がっていないようです。

発生している問題・エラーメッセージ

Note: errors from onicecandidateerror above are not neccessarily fatal. For example an IPv6 DNS lookup may fail but relay candidates can still be gathered via IPv4. The server stun:xxx.xxx.xxx:80 returned an error with code=701: STUN host lookup received error. The server turn:xxx.xxx.xxx:80?transport=udp returned an error with code=701: TURN host lookup received error.

上記エラーメッセージのURLのとこは、xxx.xxx.xxxに変換しています。

coturnのインストールと設定

①依存ツールやライブラリの導入

$sudo apt-get update $sudo apt-get upgrade $sudo apt-get install gcc $sudo apt-get install sqlite3 $sudo apt-get install libssl-dev $sudo apt-get install libevent-dev $sudo apt-get install make

②coturnのインストール

$sudo apt install coturn

③起動時にCoturnデーモンを起動

$sudo vim /etc/default/coturn TURNSERVER_ENABLED=1 という行を挿入

④coturnサーバの設定

$sudo vim /etc/turnserver.conf 下記を記入 listening-port=80 lt-cred-mech user=user:password realm=xxx.xxx.xxx

⑤coturnの再起動

$sudo service coturn restart

試したこと

coturnの起動状況が知りたくて下記コマンドを実行しました。

$sudo service coturn status ● coturn.service - coTURN STUN/TURN Server Loaded: loaded (/lib/systemd/system/coturn.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2021-04-11 07:30:00 JST; 17s ago Docs: man:coturn(1) man:turnadmin(1) man:turnserver(1) Process: 44751 ExecStart=/usr/bin/turnserver --daemon -c /etc/turnserver.conf --pidfile /run/turnserver/turnserver.pid (code=exited, status> Process: 44753 ExecStartPost=/bin/sleep 2 (code=exited, status=0/SUCCESS) Main PID: 44752 (turnserver) Tasks: 3 (limit: 1073) Memory: 4.4M CGroup: /system.slice/coturn.service mq44752 /usr/bin/turnserver --daemon -c /etc/turnserver.conf --pidfile /run/turnserver/turnserver.pid Apr 11 07:30:16 turn01 turnserver[44752]: 0: Trying to bind DTLS/UDP listener socket to addr 127.0.0.1:80, again... Apr 11 07:30:17 turn01 turnserver[44752]: 0: Trying to bind fd 12 to <127.0.0.1:80>: errno=13 Apr 11 07:30:17 turn01 turnserver[44752]: 0: Cannot bind TLS/TCP listener socket to addr 127.0.0.1:80 Apr 11 07:30:17 turn01 turnserver[44752]: 0: Trying to bind TLS/TCP listener socket to addr 127.0.0.1:80, again... Apr 11 07:30:17 turn01 turnserver[44752]: 0: Trying to bind fd 18 to <127.0.0.1:80>: errno=13 Apr 11 07:30:17 turn01 turnserver[44752]: 0: Cannot bind TLS/TCP listener socket to addr 127.0.0.1:80 Apr 11 07:30:17 turn01 turnserver[44752]: 0: Trying to bind TLS/TCP listener socket to addr 127.0.0.1:80, again... Apr 11 07:30:17 turn01 turnserver[44752]: 0: Trying to bind fd 17 to <127.0.0.1:80>: errno=13 Apr 11 07:30:17 turn01 turnserver[44752]: 0: Cannot bind DTLS/UDP listener socket to addr 127.0.0.1:80 Apr 11 07:30:17 turn01 turnserver[44752]: 0: Trying to bind DTLS/UDP listener socket to addr 127.0.0.1:80, again...

起動はしているけど80番Portが空いてないのかなとポートの開放状態を確認しました。

netstat -tulpn Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 25644/systemd-resol tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 23730/sshd: /usr/sb tcp6 0 0 :::22 :::* LISTEN 23730/sshd: /usr/sb udp 0 0 127.0.0.53:53 0.0.0.0:* 25644/systemd-resol udp 0 0 XXX.XXX.XX.XXX:68 0.0.0.0:* 25618/systemd-netwo udp 0 0 XXX.XXX.XX.XXX:123 0.0.0.0:* 811/ntpd udp 0 0 127.0.0.1:123 0.0.0.0:* 811/ntpd udp 0 0 0.0.0.0:123 0.0.0.0:* 811/ntpd udp6 0 0 fe80::1:a0ff:fefb:6:123 :::* 811/ntpd udp6 0 0 ::1:123 :::* 811/ntpd udp6 0 0 :::123 :::* 811/ntpd

上記一部xxxに変換しています。
80番でListenしてないのでこれが原因かな?と思っているのですが、coturnではlistening-port=80で設定しているつもりなのですが、何か足りないのでしょうか?

因みにFWは稼働していません。

$sudo ufw status Status: inactive

補足情報(FW/ツールのバージョンなど)

Ubunth Server 20.04.2 LTS

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

/etc/turnserver.confの

listening-port=80

を80から変更してあげると動作すると思います。

手元で再現させてみましたが、turnserverの実行ユーザがturnserverユーザ(rootユーザじゃない)ですね。

/lib/systemd/system/coturn.service

... [Service] User=turnserver Group=turnserver ...

Apr 11 07:30:17 turn01 turnserver[44752]: 0: Trying to bind fd 12 to <127.0.0.1:80>: errno=13

1024番ポート未満は特別なことをしなければrootしか利用できないので、動作できていないようです。

※すみません。これ以降はグローバルIPが無いので確認できませんでした。。

投稿2021/04/11 15:21

yskszk63

総合スコア161

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

save6

2021/04/12 09:15

回答ありがとうございます。 80番から変えたらそのポートがLISTENすること確認できました。 80番ポートで実装したいため正しいやり方かは分かりませんが教えて頂いた下記ファイルのユーザーとグループをルートにしてサービス再起動したら80番ポートでLISTENできるようになりました。 /lib/systemd/system/coturn.service ありがとうございます。ただまだTURNサーバとしては上手く稼働していないらしく同じエラーメッセージが出ている状態です。 何かこれではないかというようなアイデアありましたら引き続きご教示いただけますと幸いです。
yskszk63

2021/04/12 12:45 編集

サーバはインターネット経由でのアクセスでしょうか? https://github.com/webrtc/samples/issues/1227#issuecomment-792204727 上記Issueは、インタネット経由ではない場合(Dockerなど)にDNSエラーが出るが致命的ではない。と閉められています。 私は手元のPC内のDockerで試して上記エラーが出力されている状況でした。 ただ、Gather candidatesボタン上の候補一覧にtype = srflxのものと、Doneが出力されていました。 # turnserver -c /etc/turnserver.conf -v でログを多めに出力して、フォアグランドで起動すると、アクセスログも残っていました。動作はしているかなと思います。 (やっぱり、NAT超え不要な環境での確認は難しいですね。。) 。。すみません。グローバルIPのある機材が今手元に無いので、これ以上は調べられなそうです。 -- 追記 なお、Chromeは下記URLでwebrtcのデバッグログが確認できますね。 chrome://webrtc-internals/
save6

2021/04/19 14:08

インターネット経由でのアクセスです。 結論から申しますとipv4で正しく動いているみたいです。 type=srflxとtype=replyが出ていてDoneが出力されており、 教えていただいたコマンドでcoturnを起動してログを確認しましたが、 アクセスログも残っており問題ないように見えます。 確認サイトでエラーが出ているのは、ipv6で接続しにいった際に接続が上手くいかずエラーが出ているようです(ipv6は現状使う予定なく設定していません。教えて頂いたChromeでのデバッグログの確認方法で見た感じipv6でのアクセスでエラーが出ているように見えました)。 調査方法をご教示いただきありがとうございました。 本件、なんとか解決いたしました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問