- STUN (Session Traversal Utilities for NAT): ペイロードとのIPを比べてNATの存在を確認する.
- TURN NATが存在する場合にP2P通信を端末間でリレー
- ICES (Interactive Connectivity Establishment): TURNサーバやTURNサーバを使いP2Pで接続を行う技術
- Janus で使用する.
Install[edit]
dnf -y install coturn coturn-utils
MariaDB の設定[edit]
coturn 用のDBを作る.[edit]
# mariadb -u root -p
MariaDB [(none)]> create database coturn_db default character set utf8mb4;
MariaDB [(none)]> grant all on coturn_db.* to coturn_user identified by 'coturn_pass';
MariaDB [(none)]> flush privileges;
Table を作る[edit]
# mariadb coturn_db -u root -p < /usr/share/coturn/schema.sql
User アカウントを作る[edit]
# turnadmin -k -u webrtc_user -r janus.jogrid.net -p webrtc_pass
0xc8cb60c783b7c68533b9e15f1983f341
# mariadb -u root -p
MariaDB [coturn_db]> INSERT INTO turnusers_lt ( realm, name,hmackey) VALUES ('janus.jogrid.net', 'webrtc_use', '0xc8cb60c783b7c68533b9e15f1983f341');
Query OK, 1 row affected (0.000 sec)
MariaDB [coturn_db]> select * from turnusers_lt;
+------------------+---------------+------------------------------------+
| realm | name | hmackey |
+------------------+---------------+------------------------------------+
| janus.jogrid.net | webrtc_user | 0xc8cb60c783b7c68533b9e15f1983f341 |
+------------------+---------------+------------------------------------+
# 既存を削除
turnadmin -d -u webrtc_user -r janus.jogrid.net -M "host=localhost dbname=coturn_db user=coturn_USER password=coturn_PASS"
# 正しく追加(hmackey を自動生成して DB 登録)
turnadmin -a -u webrtc_user -p webrtc_pass -r janus.jogrid.net -M "host=localhost dbname=coturn_db user=coturn_USER password=coturn_PASS"
# 登録確認
turnadmin -l -u webrtc_user -r janus.jogrid.net -M "host=localhost dbname=coturn_db user=coturn_USER password=coturn_PASS"
# turnadmin -l -u webrtc_user -r janus.jogrid.net -p webrtc_pass -M "host=localhost dbname=coturn_db user=coturn_USER password=coturn_PASS"
systemctl start coturn
Fire Wall[edit]
- STUN/TURN(UDP/TCP):3478
- TURN over TLS:5349(必要な場合)
STUN 動作(UDP 3478)[edit]
# turnutils_stunclient -p 3478 janus.jogrid.net
0: (71074): INFO: IPv4. UDP reflexive addr: 202.26.150.72:35841
TURN 動作(UDP/TCP 3478, TLS 5349)[edit]
turnutils_peer -L 0.0.0.0 -p 5000
TURN(UDP 3478)[edit]
turnutils_uclient -u webrtc_user -w webrtc_pass -p 3478 -e janus.jogrid.net -r 5000 -v janus.jogrid.net
- INFO: channel bind: error 403 (Forbidden IP)
TURN/TLS(5349)[edit]
turnutils_uclient -v -X -u webrtc_user -w webrtc_pass -p 3478 -e 202.26.150.72 -r 5000 janus.jogrid.net
- coturn がTLSの証明書を読めなくて,結局 34ハマった!
- group を coturn にして rwxr-s--- に!