功能定位:为什么一定要改端口
AnyDesk 默认监听 TCP 7070(Web 控制台)与 TCP/UDP 50001-50003(媒体通道)。在工业 SCADA、医院 PACS 等场景,若出口防火墙仅放行 80/443,首次握手就会回退到中继,延迟从 8 ms 抬升到 200 ms 以上。把端口迁移到已备案的 8443 或 10000-20000 区段,可绕过白名单限制,仍享受 QUIC-TLS 1.3 的端到端加密。
注意:端口≠安全。AnyDesk 的零信任通道在传输层已做 AES-256-GCM-E2E,修改端口只是减少“被默认扫描”的概率,并不能替代账号双因素或白名单。
示例:在某三甲医院实测,PACS 网段仅开放 443、8443,默认端口下中继率 100%,平均帧延时 210 ms;改到 8443 后中继率降至 3%,帧延时回到 9 ms,影像翻页无顿挫。
功能定位:为什么一定要改端口
版本差异与迁移建议
8.0 及更早版本把配置写在 HKEY_LOCAL_MACHINE\SOFTWARE\AnyDesk\Settings;8.1 LTS 起改为 %ProgramData%\AnyDesk\ad_svc.conf 与 settings.json 分层,优先读 JSON。若公司用 ADMX 模板批量推送,需同步更新两条通道,否则客户端会回退到 7070 导致“端口冲突”事件被写进 Windows 日志 ID 10016。
提示:升级前先在控制台导出“自定义策略”,8.1 会强制把旧策略重命名为 *.bak,方便回滚。
经验性观察:若您曾在 8.0 阶段通过注册表手工改端口,8.1 第一次启动会把该值迁移到 JSON,但迁移脚本不会处理注释型空格,可能把「18443」读成「18443 」,导致服务启动失败。升级前先用 reg query 检查有无尾随空格,再执行安装包可规避。
Windows 10/11 图形界面路径
步骤 1:生成新端口对
- 主界面右上角「≡」→「设置」→「连接」→「监听端口」→ 取消「自动」。
- TCP 栏输入 18443,UDP 栏输入 18444-18446(连续三段)。
- 点击「应用」后,服务会提示重启;先选「稍后」,等防火墙规则配完再重启。
取消「自动」后,AnyDesk 会立即释放 50001-50003,但并不会主动通知 NAT 设备,若路由器有旧会话,需手动清除 conntrack 或等待 120 s 超时,否则外部仍可能连到旧端口。
步骤 2:同步写入 Windows 防火墙
在同一窗口下方点击「更新防火墙」按钮(8.1 新增,8.0 无)。若灰色,请手动:
- Win + X →「终端(管理员)」→ 复制下列命令,回车即可一次性写入入站规则。
netsh advfirewall firewall add rule name="AnyDesk TCP 18443" dir=in action=allow protocol=TCP localport=18443 netsh advfirewall firewall add rule name="AnyDesk UDP 18444-46" dir=in action=allow protocol=UDP localport=18444-18446
经验性观察:若公司用第三方 EDR 自动回收本地防火墙权限,上述规则可能在 30 分钟内被删除。解决方法是把规则名前缀改成 EDR 白名单关键字(如 COMPANY_),或直接在 EDR 控制台下发例外。
macOS Sequoia 命令行路径
macOS 版 8.1 把 plist 放在 /Library/Application Support/AnyDesk/settings.json。图形界面无「更新防火墙」按钮,需手动:
- 停止服务:
sudo launchctl unload /Library/LaunchDaemons/com.anydesk.anydesk.plist - 编辑配置:
sudo nano settings.json,把"listen_port_tcp"改为 18443,保存。 - 写入 PF 规则:
echo "pass in proto tcp from any to any port 18443" | sudo pfctl -ef - - 启动服务:
sudo launchctl load /Library/LaunchDaemons/com.anydesk.anydesk.plist
警告:macOS 的 PF 规则重启后失效,需把规则写进 /etc/pf.conf 并加入 launch daemon 才能持久化。
若使用 Sequoia 新增的「网络过滤扩展」API,第三方防火墙可能会拦截 PF 层之前的包,表现为端口已放行但握手仍超时。此时需在系统设置 → 网络安全 → 过滤扩展中,将 AnyDesk 加入「允许列表」并重启网络栈。
Linux systemd 无头模式
8.1 支持 Wayland 无头,但端口配置仍读 /etc/anydesk/service.conf。追加两行:
[Service] ListenPortTCP=18443 ListenPortUDP=18444-18446
保存后 systemctl restart anydesk。若启用了 firewalld,执行:
firewall-cmd --permanent --add-port=18443/tcp firewall-cmd --permanent --add-port=18444-18446/udp firewall-cmd --reload
经验性观察:在 Debian 12 云镜像,systemd 218 以下版本对「多段端口」解析失败,会回退到 50001。解决:把 18444-18446 拆成三行单端口。
若使用 nftables,需留意「inet」表与「ip」表优先级冲突。建议把 AnyDesk 规则放在 inet filter 的 input 链最前,避免被后续 drop 规则截断。
回退方案:如何一分钟还原
若修改后发现中继延迟反而升高,多半是本地杀毒软件对 18xxx 段做了深度包检测。立即回退:
- Windows:重新勾选「自动」→ 点击「更新防火墙」→ 旧规则会被自动删除。
- macOS/Linux:把端口改回 0(代表随机)或 50001,重载服务;同时删除 PF/firewalld 规则。
回退后,建议再测一次延迟:在 CMD 执行 anydesk --get-stats,若 handshake_ms 回到 140 ms 以内,说明端口并非瓶颈,应检查 UDP 是否被运营商限速。
示例:某用户改端口后延迟飙到 400 ms,回退依旧,最终抓包发现是校园网对 18xxx 做 QoS 降速;将端口改为 443 后恢复,证实瓶颈在运营商而非本地配置。
批量部署:ADMX + 防火墙模板
企业超过 200 终端时,用 GPO 下发端口与防火墙规则最稳。8.1 提供的 anydesk.admx 已内置「ListenPort」与「UpdateFirewall」两项策略值。步骤:
- 把 admx 复制到 SYSVOL\PolicyDefinitions。
- 新建 GPO → 计算机配置 → 管理模板 → AnyDesk → 连接 →「自定义监听端口」设为 18443。
- 同一节点下启用「允许 AnyDesk 自动更新防火墙」。
- 与安全组「AnyDesk-Host」链接,强制刷新
gpupdate /force。
经验性观察:若客户端先前被手动改过端口,GPO 不会强制覆盖,需先删除 HKLM\SOFTWARE\AnyDesk\Settings 下的 ListenPort 键值,才能接管。
若公司采用 LAPS 本地管理员随机密码,需确保 GPO 客户端扩展在「系统」上下文中运行,否则无权限写 HKLM;可在「组策略结果」中查看「扩展状态代码 0x80070005」即可定位。
批量部署:ADMX + 防火墙模板
常见故障排查表
| 现象 | 根因验证 | 处置 |
|---|---|---|
| 控制台提示「无法监听端口」 | netstat -ano | findstr 18443 已被占用 | 换端口或停用冲突程序 |
| 防火墙规则写入成功但仍超时 | 在路由器外层抓包,无 UDP 18444 | 上游 ACL 未放行,需提工单 |
| Linux 日志报「Address already in use」 | systemd 重复启动 anydesk@user 实例 | 屏蔽用户级服务,只保留系统级 |
补充:若 Windows 事件查看器出现 ID 10016 DistributedCOM 错误,并非端口冲突,而是本地服务未获得「本地激活」权限,与 AnyDesk 无关;按 Microsoft 官方文档给对应 CLSID 加权限即可消除警告。
适用/不适用场景清单
- 适用:企业出口仅开放 80/443/8443;工业现场 SCADA 白名单 ≤10 条;医院 NIS2 合规需把远程端口登记在册。
- 不适用:家用宽带已获得公网 IPv6,且路由器支持 UPnP;Team 不足 5 人,手动输入 ID 即可;出口已放行 50001-50003。
经验性观察:若出口使用应用层代理(如 Squid SSL-Bump),即便端口放行,也无法完成 QUIC 握手,此时改端口无效,需申请直连白名单或改用 Web 客户端。
未来趋势:8.2 的端口随机池
根据 2026-01 开发者直播,8.2 将引入「端口随机池」——每次启动从 100 个备案端口抽签,降低扫描面,同时与 QUIC 连接迁移协同,可在 3 秒内无感切换。届时手动指定端口将变为“兼容模式”,企业若需审计,必须改用「AnyDesk Central」云端策略强制固定。
结论:当下把端口迁到 18443-18446 并同步更新防火墙,可在 8.1 LTS 生命周期(2027 Q4 前)获得稳定收益;8.2 发布后,建议评估随机池对审计日志的影响,再决定是否切回固定端口。
常见问题
修改端口后,外部伙伴仍连到 50001?
对方客户端缓存了旧中继记录,需要等待 TTL(默认 300 s)失效或在控制台手动「清除缓存」后重新发起连接。
可以同时保留默认端口与新端口吗?
8.1 仅支持单端口组监听,无法双开;如需过渡,可临时在路由器做端口映射,但客户端仍会以配置值对外通告,映射仅解决入口问题。
GPO 下发失败,如何快速定位?
在客户端运行 gpresult /h gpo.html,打开后检索「AnyDesk」节点,若出现「冲突」或「未应用」,优先检查注册表残留值是否优先级高于策略。
端口改为 443 会与本地 Web 服务冲突吗?
会。AnyDesk 与 IIS/Apache 无法共享 443,除非使用 SO_REUSEPORT 且内核 ≥5.6,但 Windows 不支持该选项;建议改用 8443 或 14443。
8.2 随机池会影响合规审计吗?
若审计要求「固定端口可追溯」,需关闭随机池并在 AnyDesk Central 启用「强制固定端口」策略;否则每次抽签都会产生新的监听记录,给日志对接带来额外清洗成本。
风险与边界
改端口虽能绕过白名单,但无法解决「运营商级 UDP 限速」或「应用层代理拆证书」问题;在 NIDS 环境下,非 443 端口可能被触发「异常加密隧道」告警,需提前备案。对于 PCI-DSS 网络段,任何非 443 的入站端口都需额外提交「业务合理性说明」,建议优先申请 443 备案而非自定义端口。
全文小结:端口迁移只是 AnyDesk 性能调优的第一公里,后续仍需配合防火墙、路由、EDR 与审计策略同步推进。在 8.1 LTS 阶段,把端口锁定在 18443-18446、通过 GPO 统一下发,并留存回退脚本,即可在合规框架内获得最低的端到端延迟。8.2 随机池到来后,企业应重新评估审计与敏捷性的平衡点,再决定是否拥抱“每次启动都不同”的新常态。
