用 OpenSIPS 的 stun 模块做 stun server
模块文档写的很清楚
The stun server will use 4 sockets:
socket1 = ip1 : port1
socket2 = ip1 : port2
socket3 = ip2 : port1
socket4 = ip2 : port2
测试服务器配置了俩网卡,ip 地址为 192.168.33.73 和 192.168.33.74
需要这样配置:
socket=udp:192.168.33.73:5060
socket=udp:192.168.33.73:3478 # vip
modparam("stun", "primary_ip", "192.168.33.73")
modparam("stun", "primary_port", "3478")
modparam("stun", "alternate_ip", "192.168.33.74")
modparam("stun", "alternate_port", "3479")
启动 opensips,之后 netstat -unlp
udp 0 0 192.168.33.73:5060 0.0.0.0:* 973/opensips
udp 0 0 192.168.33.73:3478 0.0.0.0:* 973/opensips
udp 0 0 192.168.33.74:3478 0.0.0.0:* 973/opensips
udp 0 0 192.168.33.74:3479 0.0.0.0:* 973/opensips
udp 0 0 192.168.33.74:3479 0.0.0.0:* 973/opensips
到这里下载 windows stun 客户端:
https://sourceforge.net/projects/stuntman/files/stunserver_win64_1_2_16.zip/download
在 windows 下运行 stunclient 192.168.33.73 3478
Binding test: success
Local address: 192.168.33.35:51684
Mapped address: 192.168.33.35:51684
trckle-ice 也可以测试 stun:
https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/
当然,在纯内网测试 stun 可能意义不大