Tự tạo server TURN cho WebRTC trên CentOS
webrtc
3
STUN/TURN
1
centos
9
White

Phan Huỳnh Gia Bảo viết ngày 26/02/2016

Về cơ bản, TURN là phần mở rộng từ STUN, vì vậy, khi phần mở rộng này không được sử dụng , thì chúng ta vẫn kết nối được thông qua STUN.
Trong lúc khai báo server được sử dụng, nếu có cả địa chỉ server STUN và TURN được thêm vào. Thông thường thì STUN được ưu tiên sử dụng trước nhằm mục đích tăng tốc độ kết nối để lấy thông tin candidates của người dùng nằm sau NAT.
Nếu các phương tiện không trực tiếp kết nối và làm việc với nhau, lúc này cần TURN để trao đổi trung gian bởi máy chủ Proxy.

Bài viết này mình xin hướng dẫn mọi người tự tạo cho mình TURN server riêng, hy vọng là nó hữu ích cho mọi người không muốn lệ thuộc vào Google STUN.

Install thư viện cần thiết cho CentOS:

yum install -y make gcc cc gcc-c++ wget
yum install -y openssl-devel libevent libevent-devel mysql-devel mysql-server

Install LibEvent module

Đừng quên chạy các câu lệnh bằng quyền root:

wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
tar xvfz libevent-2.0.21-stable.tar.gz
cd libevent-2.0.21-stable && ./configure
make && make install && cd ..

Download & Install TURN modules:

wget http://turnserver.open-sys.org/downloads/v3.2.4.1/turnserver-3.2.4.1.tar.gz
tar -xvzf turnserver-3.2.4.1.tar.gz
cd turnserver-3.2.4.1
make && make install

Tạo tập tin cấu hình "turnserver.conf":

Mình sẽ cd đến đường dẫn etc sau đó tạo mới thư mục turnserver (vì turnserver không tự tạo cho mình):

cd /etc
mkdir turnserver && cd turnserver
vi turnserver.conf

Dán nội dung dưới vào tập tin turnserver.conf. Bạn thay usernamepassword thành custom user/pass của mình. Thay 2222 thành port mình tự tạo và 127.1.1 thành địa chỉ ip của mình:

user=username:password
listening-port=2222
listening-ip=127.1.1

Khởi chạy TURN server

Thay thế ip:port thành ip và port của mình (ví dụ: 122.3.1.1:1111); thay đổi turn-usernameturn-password thành custom username/password của bạn:

cd /etc/turnserver/
turnserver -v -r ip:port -a -b turnuserdb.conf -c turnserver.conf -u turn-username -r ip:port -p turn-password

Câu lệnh trên sẽ mở server TURN và đã có thể kết nối bằng custom username/password do bạn đặt ra, ngoài ra bạn nên dùng nohup để khởi chạy 'vĩnh viễn', ví dụ:

nohup turnserver -v -r ip:port -a -b turnuserdb.conf -c turnserver.conf -u turn-username -r ip:port -p turn-password &

Hy vọng bài viết ngắn này sẽ giúp ích cho nhiều người đang sử dụng WebRTC muốn tự tạo cho mình một TURN server, không phải phụ thuộc vào Google (vì đôi lúc để kết nối được thông qua stun của Google, chúng ta phải thiết lập lại DNS của thiết bị, công việc này khá bất tiện).
Chúc bạn thành công!

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Phan Huỳnh Gia Bảo

1 bài viết.
1 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Bài viết liên quan
White
24 7
Hi các bạn, cơ bản là hiện giờ mình đang làm trong một dự án sử dụng WebRTC và mình muốn chia sẻ với mọi nguời những gì mình biết và chúng ta có th...
khoatd92 viết gần 2 năm trước
24 7
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
1 bài viết.
1 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!