
measurementlab/ndt-server本仓库包含一个用Go编写的NDT5和NDT7服务器。该代码可在多种系统(包括macOS和Windows)上编译,但专为Linux 4.19+设计并测试。
根据需求,有多种方式可使用NDT7协议执行客户端测量。
bashinstall -d certs datadir
要在本地运行服务器,使用bash和OpenSSL生成自签名证书(key.pem和cert.pem):
bash./gen_local_test_certs.bash
bashdocker build . -t ndt-server
bashsudo modprobe tcp_bbr
bashdocker run --network=bridge \ --publish 443:4443 \ --publish 80:8080 \ --volume `pwd`/certs:/certs:ro \ --volume `pwd`/datadir:/datadir \ --read-only \ --user `id -u`:`id -g` \ --cap-drop=all \ ndt-server \ -cert /certs/cert.pem \ -key /certs/key.pem \ -datadir /datadir \ -ndt7_addr :4443 \ -ndt7_addr_cleartext :8080
这些说明假设已安装Docker for Windows/Mac。
注意:NDT5在Docker for Windows/Mac上无法工作,因为它需要使用主机网络,而该功能仅在Linux上支持。
bashdocker-compose run ndt-server ./gen_local_test_certs.bash docker-compose up
修改代码后,需运行docker-compose up --build重新构建ndt-server二进制文件。
运行后,将启动以下服务:
3001(传统二进制方式)、3002(WebSocket方式)、3010(安全WebSocket方式)443(基于TLS和NDT7 WebSocket协议)9990可通过浏览器访问以下URL测试(HTTPS URL的证书会被浏览器视为无效,因这是测试部署,可忽略警告继续):
外部访问时,将localhost替换为服务器IP即可。

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务