如何使用 IPv6 设置 Restund Turn 服务器
How to setup Restund Turn Server with IPv6
我正在使用 Restund for WebRTC。我的 Restund 服务器目前使用 IPv4。我正在尝试更新我的 Restund 服务器以同时使用 IPv4 和 IPv6。我遇到了一些麻烦,需要一些帮助。
我的困境是,自从 10.2 更新(使用 T-Mobile 和 Sprint 时。注意:Verizon 仍在工作)后,我的 Restund turn 服务器不再与 iOS 设备上的 Cell Service 一起工作。据我了解,这些运营商现在仅在 IPv6 上进行通信。其他运营商已宣布他们将很快转换。
我注意到的一件事是需要使用来自我的 eth0 网络设备的 "Local" IPv4 地址,如 ifconfig 中所列。因此,我还添加了 [::1] 条目,以防 IPv6 情况需要它。我还添加了完整的 IPv6 地址。所以 udp_listen、tcp_listen 和 tls_listen 有 3 个条目。
在下面的示例中,我已将真实地址更改为示例地址。
我在下面包含了我的 /etc/restund.conf 文件。
daemon yes
debug no
realm HOST
syncinterval 600
udp_listen 192.168.1.100:3478
udp_listen [::1]:3478
udp_listen [AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA]:3478
udp_sockbuf_size 524288
tcp_listen 192.168.1.100:3478
tcp_listen [::1]:3478
tcp_listen [AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA]:3478
tls_listen 192.168.1.100:3479,/etc/cert.pem
tls_listen [::1]:3479,/etc/cert.pem
tls_listen [AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA]:3479,/etc/cert.pem
# modules
module_path /usr/local/lib/restund/modules
module stat.so
module binding.so
module auth.so
module turn.so
module syslog.so
module status.so
# auth
auth_nonce_expiry 3600
auth_shared_expiry 86400
# share this with your prosody server
auth_shared yoursecretthing
#auth_shared_rollover incaseyouneedtodokeyrollover
# turn
turn_max_allocations 512
turn_max_lifetime 600
turn_relay_addr 192.168.1.100
#turn_relay_addr6 ::1
turn_relay_addr6 AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA
turn_relay_addr6 ::1
# syslog
syslog_facility 24
# status
# 2/2/2017 Apparently only the first status is used, the second one is ignored.
# I verified this by going to:
# http://[AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA]:8080
# http://PUBLIC_IPV4_ADDR:8080/
# Only one would work at a time.
# So I commented the IPv6 Addresses.
status_udp_addr 192.168.1.100
#status_udp_addr AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA
status_udp_port 33000
status_http_addr 192.168.1.100
#status_http_addr AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA
status_http_port 8080
在验证 Restund 运行 没有错误之后,我验证了适当的 TCP/UDP 端口现在正在使用 netstat -nlp 进行侦听。
我在 netstat 结果中发现的一个问题是,完整的 IPv6 地址仅显示 8 组中的 4 组(AAAA:AAAA:AAAA:AAAA 而不是 AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA)。我想知道这是否是我应该关心的事情。
netstat -nlp
IPv4 && IPv6 [Full Address and ::1]
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 192.168.1.100:8080 0.0.0.0:* LISTEN 11442/restund
tcp 0 0 192.168.1.100:3478 0.0.0.0:* LISTEN 11442/restund
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1321/sshd
tcp 0 0 192.168.1.100:3479 0.0.0.0:* LISTEN 11442/restund
tcp6 0 0 AAAA:AAAA:AAAA:AAAA:3478 :::* LISTEN 11442/restund
tcp6 0 0 ::1:3478 :::* LISTEN 11442/restund
tcp6 0 0 :::22 :::* LISTEN 1321/sshd
tcp6 0 0 AAAA:AAAA:AAAA:AAAA:3479 :::* LISTEN 11442/restund
tcp6 0 0 ::1:3479 :::* LISTEN 11442/restund
udp 0 0 192.168.1.100:33000 0.0.0.0:* 11442/restund
udp 0 0 192.168.1.100:3478 0.0.0.0:* 11442/restund
udp 0 0 0.0.0.0:68 0.0.0.0:* 927/dhclient
udp6 0 0 AAAA:AAAA:AAAA:AAAA:3478 :::* 11442/restund
udp6 0 0 ::1:3478 :::* 11442/restund
在我的 /etc/restund.conf 文件中添加了所有这些 IPv6 之后,我仍然无法通过 IPv6 进行通信。在此先感谢您的任何输入!
这不会解决您的 IPv6 问题,但现在应该可以使您的代码正常工作。
1 月 27 日 T-Mobile 发布了 iOS 10.2.1 Carrier 27.2 的运营商更新:
https://support.t-mobile.com/docs/DOC-32574
尝试更新您的运营商设置,它可能会解决 T-Mobile 问题。
- 在主屏幕上,点击“设置”。
- 点击常规
- 点击关于,然后查看运营商更新字段。
如果您还没有更新,此时应该会提示您进行更新。看看这是否解决了 T-Mobile 的问题。他们添加了 "Adds dual stack to improve app compatibility issues with iOS 10.2".
的更新
我正在使用 Restund for WebRTC。我的 Restund 服务器目前使用 IPv4。我正在尝试更新我的 Restund 服务器以同时使用 IPv4 和 IPv6。我遇到了一些麻烦,需要一些帮助。
我的困境是,自从 10.2 更新(使用 T-Mobile 和 Sprint 时。注意:Verizon 仍在工作)后,我的 Restund turn 服务器不再与 iOS 设备上的 Cell Service 一起工作。据我了解,这些运营商现在仅在 IPv6 上进行通信。其他运营商已宣布他们将很快转换。
我注意到的一件事是需要使用来自我的 eth0 网络设备的 "Local" IPv4 地址,如 ifconfig 中所列。因此,我还添加了 [::1] 条目,以防 IPv6 情况需要它。我还添加了完整的 IPv6 地址。所以 udp_listen、tcp_listen 和 tls_listen 有 3 个条目。
在下面的示例中,我已将真实地址更改为示例地址。
我在下面包含了我的 /etc/restund.conf 文件。
daemon yes
debug no
realm HOST
syncinterval 600
udp_listen 192.168.1.100:3478
udp_listen [::1]:3478
udp_listen [AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA]:3478
udp_sockbuf_size 524288
tcp_listen 192.168.1.100:3478
tcp_listen [::1]:3478
tcp_listen [AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA]:3478
tls_listen 192.168.1.100:3479,/etc/cert.pem
tls_listen [::1]:3479,/etc/cert.pem
tls_listen [AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA]:3479,/etc/cert.pem
# modules
module_path /usr/local/lib/restund/modules
module stat.so
module binding.so
module auth.so
module turn.so
module syslog.so
module status.so
# auth
auth_nonce_expiry 3600
auth_shared_expiry 86400
# share this with your prosody server
auth_shared yoursecretthing
#auth_shared_rollover incaseyouneedtodokeyrollover
# turn
turn_max_allocations 512
turn_max_lifetime 600
turn_relay_addr 192.168.1.100
#turn_relay_addr6 ::1
turn_relay_addr6 AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA
turn_relay_addr6 ::1
# syslog
syslog_facility 24
# status
# 2/2/2017 Apparently only the first status is used, the second one is ignored.
# I verified this by going to:
# http://[AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA]:8080
# http://PUBLIC_IPV4_ADDR:8080/
# Only one would work at a time.
# So I commented the IPv6 Addresses.
status_udp_addr 192.168.1.100
#status_udp_addr AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA
status_udp_port 33000
status_http_addr 192.168.1.100
#status_http_addr AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA
status_http_port 8080
在验证 Restund 运行 没有错误之后,我验证了适当的 TCP/UDP 端口现在正在使用 netstat -nlp 进行侦听。
我在 netstat 结果中发现的一个问题是,完整的 IPv6 地址仅显示 8 组中的 4 组(AAAA:AAAA:AAAA:AAAA 而不是 AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA)。我想知道这是否是我应该关心的事情。
netstat -nlp
IPv4 && IPv6 [Full Address and ::1]
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 192.168.1.100:8080 0.0.0.0:* LISTEN 11442/restund
tcp 0 0 192.168.1.100:3478 0.0.0.0:* LISTEN 11442/restund
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1321/sshd
tcp 0 0 192.168.1.100:3479 0.0.0.0:* LISTEN 11442/restund
tcp6 0 0 AAAA:AAAA:AAAA:AAAA:3478 :::* LISTEN 11442/restund
tcp6 0 0 ::1:3478 :::* LISTEN 11442/restund
tcp6 0 0 :::22 :::* LISTEN 1321/sshd
tcp6 0 0 AAAA:AAAA:AAAA:AAAA:3479 :::* LISTEN 11442/restund
tcp6 0 0 ::1:3479 :::* LISTEN 11442/restund
udp 0 0 192.168.1.100:33000 0.0.0.0:* 11442/restund
udp 0 0 192.168.1.100:3478 0.0.0.0:* 11442/restund
udp 0 0 0.0.0.0:68 0.0.0.0:* 927/dhclient
udp6 0 0 AAAA:AAAA:AAAA:AAAA:3478 :::* 11442/restund
udp6 0 0 ::1:3478 :::* 11442/restund
在我的 /etc/restund.conf 文件中添加了所有这些 IPv6 之后,我仍然无法通过 IPv6 进行通信。在此先感谢您的任何输入!
这不会解决您的 IPv6 问题,但现在应该可以使您的代码正常工作。
1 月 27 日 T-Mobile 发布了 iOS 10.2.1 Carrier 27.2 的运营商更新: https://support.t-mobile.com/docs/DOC-32574
尝试更新您的运营商设置,它可能会解决 T-Mobile 问题。
- 在主屏幕上,点击“设置”。
- 点击常规
- 点击关于,然后查看运营商更新字段。
如果您还没有更新,此时应该会提示您进行更新。看看这是否解决了 T-Mobile 的问题。他们添加了 "Adds dual stack to improve app compatibility issues with iOS 10.2".
的更新