一、前言
在使用Nextcloud中的Talk应用进行通话的时候,Nextcloud服务器会通过STUN服务器进行寻找使用者的公网IP以便将他们链接起来,但是在国内的大环境下家庭网络普遍使用的是多层NAT来节约公共IP地址,因此如果不进行设置就无法正常使用。Nextcloud官方提供了官方的STUN服务器以供使用,但是如果需要用到TURN服务器就需要自己来搭建。
二、获取TURN服务器
如果你使用的是Ubuntu或者Debian,可以使用apt命令来直接安装coTURN服务:
sudo apt install coturn
如果您使用的是其他发行版,可以在这个地址找到。
三、设置TURN服务器
安装完成之后,执行如下命令,将coTURN加入开机启动项中:
sudo sed -i '/TURNSERVER_ENABLED/c\TURNSERVER_ENABLED=1' /etc/default/coturn
检查coTURN是否启动:
ls -l /lib/systemd/system/coturn.service
注意在Ubuntu 20.04及以上版本或者某些发行版中,coTURN无法以root用户运行,需要执行以下命令:
setcap cap_net_bind_service=+ep /usr/bin/turnserver
接下来对TURN服务器进行配置,首先找到turnserver.conf:
#一般来说,Ubuntu和Debian的turnserver.conf会在/etc目录下面,如果没有的话,可以使用命令
systemctl show coturn
#在显示的数据中找到启动命令,寻找-c后面的文件目录即可
然后编辑该文件,取消下面行的注释:
listening-port=
fingerprint
lt-cred-mech # Only on coTURN below v4.5.0.8!
use-auth-secret
static-auth-secret=
realm=your.domain.org
total-quota=0
bps-capacity=0
stale-nonce
no-loopback-peers # Only on coTURN below v4.5.1.0!
no-multicast-peers
注意listening-port改成你的监听地址,static-auth-secret改成自己设定的密钥,realm改成你的域名。然后如果你要使用SSL证书的话,还需要修改cert参数和pkey参数写明证书文件地址。
修改完成后重启coturn:
sudo systemctl restart coturn
然后可以对turn服务器进行运行测试
四、配置Nextcloud来使用turn服务器
打开Nextcloud,转到设置页面,找到通话,在turn服务器那里填写域名和密钥,方式选择turn:,测试链接即可。