Fun-ASR远程访问配置教程:服务器IP如何正确填写
你已经成功启动了 Fun-ASR WebUI,本地打开http://localhost:7860一切正常——但当你想用手机、平板,或者让同事在另一台电脑上访问这个语音识别系统时,浏览器却提示“无法连接”?别急,这不是模型没跑起来,也不是网络坏了,大概率只是你填错了那个最关键的地址:服务器IP。
很多用户卡在这一步,反复检查端口、防火墙、Docker状态,最后发现——原来根本没搞懂“服务器IP”到底指哪台机器的哪个地址。它不是路由器后台看到的192.168.x.x,也不是云厂商控制台里写的公网IP,更不是本机WiFi名称。它是一个需要结合部署环境、网络拓扑和访问目标三者共同判断的动态值。
这篇教程不讲原理、不堆参数,只说人话、给实操、配截图、列避坑点。读完你能立刻判断出自己该填什么,并验证是否生效。我们从最常见也最容易出错的三种场景出发,手把手带你填对那个决定成败的IP。
1. 场景一:本地局域网内多设备访问(最常用)
1.1 你的真实使用场景是?
- 你在一台台式机或笔记本上运行了 Fun-ASR(通过
bash start_app.sh) - 你想用同一Wi-Fi下的手机、iPad、另一台笔记本访问它
- 你不需要外网访问,只要家里/办公室内能连上就行
这就是局域网共享访问,也是90%新手第一次尝试远程访问时的目标。
1.2 正确填写方式:查本机局域网IP,不是127.0.0.1,也不是localhost
http://localhost:7860只能在启动服务的这台机器上访问。要让其他设备访问,必须把localhost换成这台机器在局域网中的真实IP地址。
如何查?三步搞定(Windows/macOS/Linux通用)
第一步:打开终端(命令行)
- Windows:按
Win+R→ 输入cmd→ 回车 - macOS:打开“访达” → “应用程序” → “实用工具” → 双击“终端”
- Linux:Ctrl+Alt+T 或搜索“终端”
第二步:执行命令查IP
# Windows(cmd中运行) ipconfig | findstr "IPv4"# macOS / Linux(终端中运行) ifconfig | grep "inet " | grep -v 127.0.0.1 # 或更简洁(推荐) hostname -I第三步:识别并复制正确的IP
你会看到类似这样的输出:
IPv4 地址 . . . . . . . . . . . . : 192.168.3.105 ← 就是它! IPv4 地址 . . . . . . . . . . . . : 172.20.10.3 ← ❌ 这是Mac个人热点IP,别选或 macOS/Linux:
192.168.3.105 172.16.0.1 ← 取第一个(通常是主网卡)关键提醒:
- 绝对不要填
127.0.0.1或localhost—— 其他设备根本找不到这个“本机回环地址”- 不要填
0.0.0.0—— 这是服务监听的通配符,不是可访问地址- 不要填公网IP(如 114.114.xxx.xxx)—— 它需要额外端口映射,局域网内直接填局域网IP更快更稳
填写示例:
- 你的服务器IP是
192.168.3.105 - 访问地址就是:
http://192.168.3.105:7860 - 在手机浏览器、同事电脑浏览器中直接输入这个地址即可打开Fun-ASR界面
1.3 常见失败原因与自查清单
| 现象 | 可能原因 | 快速验证方法 |
|---|---|---|
| 手机打不开,显示“网页无法访问” | 防火墙拦截了7860端口 | 在服务器本机执行curl http://127.0.0.1:7860能通,但curl http://192.168.3.105:7860不通 → 防火墙问题 |
| 浏览器提示“连接已重置” | Fun-ASR未监听所有网卡 | 查看启动日志,确认是否含Running on public URL: http://0.0.0.0:7860(有则正常;若只有127.0.0.1则需改启动参数) |
| 能打开首页但上传失败/功能异常 | 浏览器跨域或HTTPS混合内容 | 用Chrome无痕窗口访问,禁用所有插件;确保地址是http://开头,不是https:// |
🔧 修复小技巧:如果确认IP正确但依然连不上,临时关闭防火墙测试(Windows:控制面板→Windows Defender防火墙→启用或关闭;macOS:系统设置→隐私与安全性→防火墙→关闭)。验证成功后再针对性放行7860端口。
2. 场景二:云服务器部署后外网访问(如阿里云/腾讯云)
2.1 你的真实使用场景是?
- 你在阿里云ECS、腾讯云CVM或华为云服务器上部署了 Fun-ASR
- 你想从家里、咖啡馆、甚至出差途中用手机访问它
- 你希望获得一个“随时随地都能用”的语音识别入口
这是典型的云服务公网访问,需要同时配置服务器、云平台安全组和Fun-ASR自身设置。
2.2 正确填写方式:公网IP + 安全组放行 + 启动参数调整
仅仅填对IP还不够,云服务器默认屏蔽所有非必要端口。你需要三步联动:
第一步:获取云服务器的公网IP
- 登录云厂商控制台(如阿里云ECS管理页)
- 找到你的实例 → 查看“公网IP地址”字段(形如
47.98.xxx.xxx) - 注意:不是“私有IP”,也不是“弹性公网IP”绑定前的临时IP
第二步:在云平台开放7860端口
- 进入“安全组”设置(通常在ECS实例详情页右侧菜单)
- 编辑入方向规则 → 添加新规则:
- 授权策略:允许
- 协议类型:TCP
- 端口范围:
7860/7860 - 授权对象:
0.0.0.0/0(允许所有IP访问)或指定IP段(更安全)
安全提醒:生产环境建议限制为你的办公IP或家庭宽带IP,避免暴露在全网扫描下。
第三步:确保Fun-ASR监听公网地址
默认start_app.sh可能只监听127.0.0.1。你需要修改启动方式,强制监听0.0.0.0:
# 方法1:临时修改启动脚本(推荐) # 编辑 start_app.sh,找到类似这一行: # python launch.py --server-name 127.0.0.1 --server-port 7860 # 改为: python launch.py --server-name 0.0.0.0 --server-port 7860 # 方法2:直接命令行启动(无需改脚本) bash stop_app.sh # 先停止 python launch.py --server-name 0.0.0.0 --server-port 7860验证是否生效:启动后查看日志,应出现
Running on public URL: http://0.0.0.0:7860和To create a public link, setshare=True(used for development and testing)字样。
填写示例:
- 你的云服务器公网IP是
47.98.123.45 - 访问地址就是:
http://47.98.123.45:7860 - 在任何有网络的地方,用手机浏览器打开即可
2.3 常见陷阱与绕过方案
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 填了公网IP仍打不开 | 云厂商默认禁用ICMP(ping不通),但HTTP也可能被拦截 | 重点检查安全组,而非ping;用telnet 47.98.123.45 7860测试端口连通性(Linux/macOS自带;Windows需安装) |
| 页面加载一半卡住 | 云服务器带宽不足或Fun-ASR前端资源加载慢 | 在launch.py启动参数中加--no-gradio-queue,或改用轻量前端(如有) |
| 上传大文件失败 | 云服务器默认Nginx/Apache未配置大文件上传限制 | 若使用反向代理,需在配置中添加client_max_body_size 512M; |
进阶建议:为便于记忆和安全,可为公网IP配置域名(如
asr.yourname.com),并在DNS解析后启用HTTPS(用Certbot自动签发),这样地址就变成https://asr.yourname.com,更专业也更安全。
3. 场景三:Docker容器化部署后的IP填写
3.1 你的真实使用场景是?
- 你用Docker运行Fun-ASR(如
docker run -p 7860:7860 ...) - 容器内服务正常,
docker logs显示已启动 - 但宿主机浏览器能访问,其他设备却连不上
这是Docker网络模式导致的典型问题。很多人以为-p 7860:7860就万事大吉,其实还取决于容器使用的网络驱动。
3.2 正确填写方式:区分bridge与host网络模式
Docker默认使用bridge网络,容器拥有独立IP(如172.17.0.2),这个IP宿主机以外的设备无法直接访问。你需要两种解法之一:
方案A:改用host网络(最简单,推荐开发/测试用)
# 停止原容器 docker stop funasr-container # 用host模式重新运行(--network host) docker run -d \ --name funasr-container \ --network host \ -v $(pwd)/webui:/app/webui \ your-funasr-image \ bash start_app.sh效果:容器直接使用宿主机网络栈,http://宿主机局域网IP:7860对所有局域网设备都有效。
方案B:保持bridge模式,但确保端口映射正确
# 必须显式绑定到0.0.0.0(而非127.0.0.1) docker run -d \ -p 0.0.0.0:7860:7860 \ -v $(pwd)/webui:/app/webui \ your-funasr-image \ bash start_app.sh注意:-p 7860:7860默认等价于-p 127.0.0.1:7860:7860,只允许宿主机访问。必须写成-p 0.0.0.0:7860:7860才对外可见。
验证容器端口是否真正暴露:
# 查看端口映射 docker port funasr-container # 正常输出应为:7860/tcp -> 0.0.0.0:7860 # 检查宿主机是否监听7860 netstat -tuln | grep :7860 # 应显示:tcp6 0 0 :::7860 :::* LISTEN3.3 Docker专属避坑指南
| 现象 | 根本原因 | 修复动作 |
|---|---|---|
docker ps显示容器运行中,但curl http://localhost:7860失败 | Fun-ASR应用本身监听的是127.0.0.1,而Docker bridge网络无法穿透 | 修改启动命令,在launch.py中强制--server-name 0.0.0.0 |
| 局域网设备能打开首页,但上传音频后无响应 | 容器内应用生成的回调URL仍是http://127.0.0.1:7860,导致前端请求发向自己 | 在launch.py中添加--root-path "/funasr"并配合反向代理,或直接使用host模式 |
频繁出现Connection refused | Docker资源限制(内存/CPU)导致服务崩溃重启 | docker stats funasr-container查看实时资源占用;增加--memory=4g --cpus=2参数 |
🐳 Docker最佳实践:将启动逻辑封装进自定义entrypoint脚本,自动注入
--server-name 0.0.0.0和--server-port 7860,避免每次手动改。
4. 终极验证法:三步确认IP填写100%正确
无论你处于哪种场景,都可以用这套标准化流程快速闭环验证:
第一步:本机验证(排除服务问题)
在运行Fun-ASR的机器上执行:
curl -I http://127.0.0.1:7860 # 应返回 HTTP/1.1 200 OK第二步:同网段验证(排除网络配置)
在局域网内另一台设备(如手机连同一Wi-Fi)执行:
# Android:用Termux或网络诊断工具 # iOS:用Shortcuts或第三方网络工具 # 或直接在浏览器访问 http://你的服务器IP:7860能打开首页即说明IP、端口、防火墙全部正确。
第三步:功能验证(排除前端异常)
在成功打开的页面中:
- 上传一个10秒内的WAV测试文件
- 点击“开始识别”
- 观察是否返回文本结果(而非报错、卡死、空白)
识别成功 = 远程访问链路完全打通。
如果第二步失败但第一步成功 → 100%是IP填错或网络策略问题;
如果第二步成功但第三步失败 → 问题在Fun-ASR内部配置(如模型路径错误、GPU未识别),与IP无关。
5. 总结:一张表记住所有IP填写规则
| 部署场景 | 你应该填的IP | 是否需要改启动参数 | 关键验证点 |
|---|---|---|---|
| 本地局域网共享(台式机/笔记本) | 本机局域网IP(192.168.x.x或10.x.x.x) | 否(默认监听0.0.0.0) | curl http://192.168.x.x:7860返回200 |
| 云服务器公网访问(阿里云/ECS) | 云平台分配的公网IP(47.xx.xxx.xxx) | 是(必须--server-name 0.0.0.0) | 安全组放行7860 +telnet 公网IP 7860通 |
| Docker bridge模式 | 宿主机局域网IP(同第一行) | 是(-p 0.0.0.0:7860:7860) | docker port显示0.0.0.0:7860 |
| Docker host模式 | 宿主机局域网IP(同第一行) | 否 | netstat -tuln | grep :7860显示:::7860 |
记住这个核心原则:“服务器IP”永远是你想让别人访问的那台机器,在对方设备网络视角下能直接路由到的那个地址。它不是模型地址,不是容器地址,更不是云控制台里的管理地址——它是网络世界的门牌号,填对了,门才真正为你敞开。
现在,打开你的终端,敲出那条查IP的命令,复制粘贴,输入浏览器。几秒钟后,你将看到熟悉的Fun-ASR界面在另一台设备上完整呈现。那一刻,你填的不再是一串数字,而是语音智能真正流动起来的第一道闸门。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。