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

如何使用公网IP实现跨设备跨网络访问React Native与PHP服务?

排查自有公网IP无法连接React Native与PHP服务器的解决方案

1. 确认公网IP有效性

  • 在服务器本地执行 curl ifconfig.me 或 curl ip.sb 获取当前实际公网IP,确保React Native请求使用的IP与该值完全一致(注意区分IPv4/IPv6,部分移动设备默认优先使用IPv6,若服务器仅开启IPv4端口会导致连接失败)
  • 切换至非本地网络(如手机流量),直接访问 http://[你的公网IP]:[服务器端口],先验证PHP服务器本身是否能被公网访问,排除React Native端的问题

2. 检查服务器防火墙与安全组

  • 本地防火墙:Ubuntu系统用 sudo ufw allow [端口号]/tcp 开放目标端口;CentOS系统执行 sudo firewall-cmd --add-port=[端口号]/tcp --permanent,再运行 sudo firewall-cmd --reload 重载规则
  • 云服务器安全组:若使用阿里云、腾讯云等服务商,需在控制台安全组规则中添加入站规则,允许目标端口的TCP流量,来源设为 0.0.0.0/0(允许所有公网IP访问)

3. 配置端口映射(家庭网络场景)

  • 若服务器处于家庭路由器下,需在路由器后台设置端口映射:将公网IP的目标端口,转发至服务器本地局域网IP的对应端口
  • 可临时开启路由器的「DMZ主机」功能,将服务器设为DMZ主机测试是否能访问(测试完成后务必关闭,避免安全风险)

4. 调整React Native端网络配置

  • 确保应用内请求地址为 http://[公网IP]:[端口],未使用localhost或局域网IP
  • 安卓端:Android 9及以上系统,需在AndroidManifest.xml中添加网络权限 <uses-permission android:name="android.permission.INTERNET" />,并在application标签内增加 android:usesCleartextTraffic="true"(若使用HTTP协议)
  • iOS端:在Info.plist中添加App Transport Security例外,允许访问目标公网IP:
    <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSExceptionDomains</key>
        <dict>
            <key>[你的公网IP]</key>
            <dict>
                <key>NSIncludesSubdomains</key>
                <true/>
                <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
                <true/>
            </dict>
        </dict>
    </dict>
    

5. 排查运营商网络限制

  • 部分运营商会屏蔽80、443等常用端口,或分配的是CGNAT内网型公网IP,此类情况无法直接通过公网IP访问,需联系运营商申请独立公网IP,或改用非标准端口(如8080、3000)测试
  • 用 nmap [公网IP] -p [端口] 扫描端口状态,若显示filtered说明端口被屏蔽或映射未成功

6. 验证PHP服务器监听地址

  • 确保PHP服务器(Apache、Nginx或内置服务器)监听地址为0.0.0.0而非127.0.0.1,仅监听本地回环地址会导致公网请求无法到达。例如使用PHP内置服务器时,需执行 php -S 0.0.0.0:[端口]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 05:46:06