以下是排查记录:
ip: 10.11.12.211
root
xxxxx
前端管理员密码:xxxxxx
项目链接:Quick install - Nextcloud Talk API documentation
strukturag/nextcloud-spreed-signaling: Standalone signaling server for Nextcloud Talk.
curl -s 'https://raw.githubusercontent.com/zerotier/ZeroTierOne/main/doc/contact%40zerotier.com.gpg' | gpg --import && if z=$(curl -s 'https://install.zerotier.com/' | gpg); then echo "$z" | sudo bash; fi
systemctl status zerotier-one
zerotier-cli join e3918db483xxxxxx
ssh root:learn@10.11.12.211
export PS1='\[\e[1;32m\][\[\e[1;33m\]\u\[\e[1;33m\]@\h\[\e[1;35m\] \D{%Y-%m-%d %H:%M:%S} \[\e[32m\]\w ]\n\$\[\e[m\]'
alias dfhg='df -h | egrep -v "docker|^tmpfs|^devtmpfs"'
alias dpsa='docker ps -a --format "table {{.ID}}\t{{.Names}}\t{{.Status}}\t{{.Image}}\t{{.Size}}\t{{.Command}}\t{{.CreatedAt}}\t{{.Ports}}" | less -S'
alias ll='ls -lh --color=auto --group-directories-first'
docker stop nextcloud-talk-hpb-2
docker rm nextcloud-talk-hpb-2
docker start nextcloud-talk-hpb-2
docker logs nextcloud-talk-hpb-2
docker exec -it nextcloud-talk-hpb-2 sh
apt-get install libcurl4-openssl-dev libogg-dev
curl http://192.168.3.8:8081/api/v1/welcome
curl -i http://192.168.3.8:8081/spreed
后端容器中的一个关键报错:
backend_server.go:116: No IPs configured for the stats endpoint, only allowing access from 127.0.0.1
准备:
TURN:b56f9be8090d3ac4fa7268aa83c2635bb1b8d2f7e91245d43a8fdb4767e0e78c
SIGNALING:a0256c7871cb7bcf9ce61a01ab21f4b46f47769b4e6405699df520158772387e
INTERNAL:92b5c81de7a842c890a7be756ef3d9d82a097a8feb8056eb6a2e806dde354691
docker run \
--name=nextcloud-talk-hpb \
--restart=always \
--detach \
-e NC_DOMAIN=192.168.3.3 \
-e TALK_PORT=3478 \
-e TURN_SECRET=b56f9be8090d3ac4fa7268aa83c2635bb1b8d2f7e91245d43a8fdb4767e0e78c \
-e SIGNALING_SECRET=a0256c7871cb7bcf9ce61a01ab21f4b46f47769b4e6405699df520158772387e \
-e INTERNAL_SECRET=92b5c81de7a842c890a7be756ef3d9d82a097a8feb8056eb6a2e806dde354691 \
-p 8080:8081 \
ghcr.io/nextcloud-releases/aio-talk:latest
docker run \
--name=nextcloud-talk-hpb-2 \
--restart=always \
--detach \
-e NC_DOMAIN=signaling.domain.invalid \
-e TALK_PORT=3478 \
-e TURN_SECRET=b56f9be8090d3ac4fa7268aa83c2635bb1b8d2f7e91245d43a8fdb4767e0e78c \
-e SIGNALING_SECRET=a0256c7871cb7bcf9ce61a01ab21f4b46f47769b4e6405699df520158772387e \
-e INTERNAL_SECRET=92b5c81de7a842c890a7be756ef3d9d82a097a8feb8056eb6a2e806dde354691 \
--network=host \
ghcr.io/nextcloud-releases/aio-talk:latest
apt install nginx
upstream signaling {
server 127.0.0.1:8081;
}
server {
listen 80 http2;
server_name signaling.domain.invalid;
# ... other existing configuration ...
location / {
proxy_pass http://signaling/;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /spreed {
proxy_pass http://signaling/spreed;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
测试命令:
curl http://localhost:8081/api/v1/welcome
curl http://signaling.domain.invalid/api/v1/welcome
wscat -c ws://127.0.0.1:8081/spreed
wscat -c ws://signaling.domain.invalid/spreed
curl -i -H "Connection: upgrade" -H "Upgrade: websocket" http://127.0.0.1:8081/spreed
尚未解决的问题:
nextcloud前端控制台中报错无法连接websocket,但是在该前端对应的服务器终端中是可以成功连接websocket的
WebSocket connection to 'ws://signaling.domain.invalid/spreed' failed
截图:
