You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux下Phoenix LiveView服务无法被iPad的lvn go应用访问

Phoenix LiveView Native 无法通过iPad连接(Linux环境,已开放UFW 4000端口)

我在Linux系统上搭建了用于测试LiveView Native的Phoenix LiveView应用,尝试用iPad设备连接。已通过ufw开放4000端口,但使用lvn go应用连接时失败,抛出的错误信息如下:

initialFetchError(Error Domain=NSURLErrorDomain Code=-1004 "Could not connect to the server." UserInfo={_kCFStreamErrorCodeKey=61, NSUnderlyingError=0x30177dbf0 {Error Domain=kCFErrorDomainCFNetwork Code=-1004 "(null)" UserInfo={_NSURLErrorNWPathKey=satisfied (Path is satisfied), viable, interface: en0[802.11], ipv4, ipv6, dns, uses wifi, _kCFStreamErrorCodeKey=61, _kCFStreamErrorDomainKey=1}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <04A35415-75B1-4226-9096-BFB3FE59C8E7>.<9>, _NSURLErrorRelatedURLSessionTaskErrorKey=(  "LocalDataTask <04A35415-75B1-4226-9096-BFB3FE59C8E7>.<9>" ), NSLocalizedDescription=Could not connect to the server., NSErrorFailingURLStringKey=http://192.168.1.140:4000/?_interface%5Btarget%5D=ipados&_interface%5Bbundle_id%5D=com.dockyard.LiveViewNativeGo&_interface%5Bapp_version%5D=0.3.1&_interface%5Bos%5D=iOS&_interface%5Bi18n%5D%5Btime_zone%5D=Europe/Paris&_interface%5Bos_version%5D=17.7.1&_interface%5Bapp_build%5D=1&_interface%5Bl10n%5D%5Blocale%5D=en_FR&_format=swiftui, NSErrorFailingURLKey=http://192.168.1.140:4000/?_interface%5Btarget%5D=ipados&_interface%5Bbundle_id%5D=com.dockyard.LiveViewNativeGo&_interface%5Bapp_version%5D=0.3.1&_interface%5Bos%5D=iOS&_interface%5Bi18n%5D%5Btime_zone%5D=Europe/Paris&_interface%5Bos_version%5D=17.7.1&_interface%5Bapp_build%5D=1&_interface%5Bl10n%5D%5Blocale%5D=en_FR&_format=swiftui, _kCFStreamErrorDomainKey=1})

排查与解决步骤

  • 确认Phoenix应用的绑定地址:默认情况下Phoenix可能仅绑定127.0.0.1,导致局域网设备无法访问。启动应用时需指定绑定所有网卡:

    mix phx.server --hostname 0.0.0.0
    

    或者修改配置文件(如config/dev.exs)中的http配置:

    config :your_app, YourAppWeb.Endpoint,
      http: [ip: {0, 0, 0, 0}, port: 4000],
      # 其他配置...
    
  • 验证UFW规则有效性:用命令确认4000端口确实对局域网开放:

    ufw status verbose
    

    确保存在类似4000/tcp ALLOW IN 192.168.1.0/24的规则(替换为你的局域网网段),如果是允许所有来源则为4000/tcp ALLOW IN Anywhere。

  • 测试基础连通性:在iPad的浏览器中直接访问http://192.168.1.140:4000。如果浏览器也无法连接,说明问题出在服务器端;如果浏览器能正常访问,再检查lvn go应用的连接参数是否正确。

  • 检查端口监听状态:在Linux上执行以下命令,确认4000端口被正确监听且绑定地址不是仅127.0.0.1:

    netstat -tulpn | grep 4000
    

    输出应包含0.0.0.0:4000或你的局域网IP192.168.1.140:4000。

  • 确认设备在同一局域网:检查iPad和Linux机器的IP地址是否处于同一网段(如均为192.168.1.x),避免跨网段、VPN或防火墙隔离导致的连接问题。

内容的提问来源于stack exchange,提问作者SevB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 09:05:07