在公司或学校网络中远程控制家里的电脑
安全策略严格的网络常常阻止设备之间直接通信。经由你的中继服务器就能连上。
中继服务器(TURN)会在两台设备无法直接互连时,在它们之间代为转发画面、声音和输入。Any Display 通常让设备直接连接,但在公司、学校网络或部分移动数据网络等会阻止直连的环境中,远程控制和远程摄像头需要中继服务器才能连上。
为什么需要它?在互联网上,每台设备通常都位于各自的路由器或运营商设备之后,因此两台设备不一定能直接找到对方的地址。大多数情况下 Any Display 仍能找到直连路径,但安全策略严格的网络会阻止这种方式。这时准备一台双方都能访问的中继服务器,两台设备就会经由它连接。画面在设备之间保持加密传输,服务器无法看到内容。本指南将依次介绍如何在 Mac、Linux 或 Windows 上安装免费的 TURN 服务器 coturn,设置用户名和密码,并填入应用。
安全策略严格的网络常常阻止设备之间直接通信。经由你的中继服务器就能连上。
部分运营商网络很难直接连接。即使经由家里的中继服务器,延迟通常也接近实时。
如果同一账户的设备在远程连接时一直等待,可能是直接连接被阻止了。
把中继服务器装在一台一直开着的电脑上:Mac mini、Linux 迷你主机、Windows PC 或云服务器(VPS)都可以。先记下两个地址。公网 IP:在这台电脑的终端里运行 curl -4 ifconfig.me。内网 IP:Mac 运行 ipconfig getifaddr en0,Linux 运行 hostname -I,Windows 运行 ipconfig(例如 192.168.0.20)。
在路由器的 DHCP 设置中为这台电脑保留(固定)内网 IP,之后端口转发就不会失效。
三种系统都使用如下的一个 turnserver.conf 文件。user= 这一行就是要填入 Any Display 的用户名和密码。格式为 user=用户名:密码,把 myname 和 CHANGE-THIS-LONG-PASSWORD 换成你自己的值。请使用较长的随机密码,在终端运行 openssl rand -base64 24 即可生成一个。密码中不要使用冒号(:)。
如果服务器在路由器后面,external-ip 按 公网IP/内网IP 的格式填写上一步确认的值。如果是公网 IP 直接配置在服务器上的 VPS,可以删掉这一行。min-port 到 max-port 是用于中继的 UDP 端口范围。个人使用 41 个端口就足够,多人同时使用时再扩大。
listening-port=3478
fingerprint
lt-cred-mech
realm=anydisplay
user=myname:CHANGE-THIS-LONG-PASSWORD
min-port=49160
max-port=49200
external-ip=203.0.113.10/192.168.0.20
no-tls
no-dtls
no-cli
no-multicast-peers装好 Homebrew 后,在终端中依次运行下面的命令。第二条命令会打开配置文件:粘贴上一步的配置内容并保存(在 nano 中按 Control+O、Enter、Control+X)。Intel Mac 的路径是 /usr/local/etc/turnserver.conf。
sudo brew services start coturn 会让中继服务器在 Mac 开机时自动启动,即使没有用户登录。如果 系统设置 › 网络 › 防火墙 已开启,请允许 turnserver 的传入连接。
brew install coturn
nano /opt/homebrew/etc/turnserver.conf
sudo brew services start coturn用下面的命令安装 coturn,并把前面步骤的配置内容写入 /etc/turnserver.conf。较旧的 Debian、Ubuntu 软件包需要删除 /etc/default/coturn 中 TURNSERVER_ENABLED=1 一行前面的 # 才能启动。systemctl enable --now 会立即启动,并在每次重启后自动启动。
如果不使用 ufw 防火墙,可以跳过最后两行。Fedora、RHEL 使用 sudo dnf install coturn 安装,配置文件是 /etc/coturn/turnserver.conf。如果是云服务器,还要在服务商的安全组(防火墙)中放行 UDP 3478 和 49160–49200。
sudo apt update && sudo apt install coturn
sudo nano /etc/turnserver.conf
sudo systemctl enable --now coturn
sudo ufw allow 3478/udp
sudo ufw allow 49160:49200/udpcoturn 没有官方的 Windows 安装程序,因此用免费的 Docker Desktop 运行官方 coturn 镜像。安装 Docker Desktop,并在设置中开启“Start Docker Desktop when you sign in”(登录时启动)。然后在 PowerShell 中依次运行下面的命令。记事本打开后,粘贴前面步骤的配置内容并保存。
在 Windows 上,external-ip 只填公网 IP,例如 external-ip=公网IP。最后一条防火墙命令请在以管理员身份运行的 PowerShell 中执行。有了 --restart unless-stopped,电脑重启后只要 Docker 启动,中继服务器也会重新运行。
mkdir C:\coturn
notepad C:\coturn\turnserver.conf
docker run -d --name coturn --restart unless-stopped -p 3478:3478/udp -p 49160-49200:49160-49200/udp -v C:\coturn\turnserver.conf:/etc/coturn/turnserver.conf coturn/coturn
New-NetFirewallRule -DisplayName "Any Display TURN" -Direction Inbound -Protocol UDP -LocalPort 3478,49160-49200 -Action Allow在路由器管理页面的端口转发(端口映射、虚拟服务器)菜单中,向服务器电脑的内网 IP 添加两条规则:UDP 3478 → 3478,UDP 49160–49200 → 49160–49200。协议必须包含 UDP。
如果你的路由器后面还有一层运营商的光猫路由,或者运营商不分配公网 IP(CGNAT),家里的服务器就无法从外部访问。这时请在云服务器(VPS)上用 Linux 安装。
要修改用户名或密码,编辑 turnserver.conf 中的 user= 行,然后重启中继服务器。添加多行 user= 可以给每个人分配不同的账户;删除的账户在重启后失效。各系统的重启命令如下。
如果改了密码,也要把 Any Display 中保存的密码改成新值。
# macOS
sudo brew services restart coturn
# Linux
sudo systemctl restart coturn
# Windows (Docker)
docker restart coturn在 Mac 或 Windows 上的 Any Display 中打开 设置 › 网络 › 中继服务器(TURN)。开启“使用中继服务器”,在“服务器地址”中按 turn:公网IP:3478 的格式填写(见下方示例)。没有固定地址的话,也可以使用路由器的 DDNS 域名,例如 turn:myhome.example.com:3478。在“用户名”和“密码”中填入 user= 行中的值。
点击“测试连接”,显示“连接成功,可以通过此服务器中继。”后点击“保存”。填写“服务器名称”并点击“保存到列表”,它会保留在“已保存的服务器”中,下次可以直接载入。
turn:203.0.113.10:3478在 iPhone、iPad 或 Android 上的 Any Display 中打开 设置 › 中继服务器(TURN),填入与电脑相同的服务器地址、用户名和密码,然后点按“测试连接”和“保存”。只设置一端就够了,但如果你经常在外面用移动数据连接,设置在手机上会更方便。
如果提示“服务器没有响应”,请检查地址和端口、服务器电脑是否开机、路由器的 UDP 3478 转发以及服务器防火墙。如果在同一网络内用公网 IP 测试没有响应,可能是路由器不支持 NAT 回环(hairpin NAT);请切换到移动数据后再测试。
如果提示登录失败,说明已连到服务器,但用户名或密码不对。请检查是否与 user= 行完全一致(包括大小写),修改配置后重启服务器。如果测试通过但远程画面一直不出现,请检查 49160–49200 的转发。
2026 年 10 月 8 日使用 macOS 中继服务器(Homebrew coturn 4.18.0)和 Any Display 远程摄像头连接进行了确认。Linux 和 Windows 的步骤依据 coturn 官方软件包和 Docker 镜像文档编写。