繁体   English   中英

从其他网络连接与本地网络通信

[英]communication with local network from other network connection

首先,我对那些互联网连接属性真的很陌生,我会尽力解释我面临的问题,希望你们能帮助解决这个问题。

所以一开始我的网络公网IP是[175.139.xx]。 在这个网络上,我有一个 IP [192.168.x.xxx] 的 NAS 我已经在 NAS 中设置了 MySQL 服务器,它将运行 phpMyAdmin 数据库。

现在到了重点,我已经开发了一个 IOS 应用程序,在 expo 零食中反应原生。 该应用程序将更新或插入数据到数据库中。 因此,为了执行该操作,我在 NAS [192.168.x.xxx] 的 WEB 文件夹中创建了一些 php 脚本,因此当我尝试获取 API 时,在反应本机代码中我会这样做fetch(http://192.168.x.xxx/api/insert.php) ,当用户连接到具有公共IP [175.139.xx] 的本地网络时,所有此功能将完美运行。 但是当用户使用其他互联网连接或使用自己的移动数据时,数据不会发送到数据库。 我已经尝试对许多文章和网站进行研究,但我找不到可以克服这个问题的方法。 这是我的代码的链接https://snack.expo.dev/KUjWAk491

任何指导将不胜感激。 提前致谢

这看起来像是 Destination NAT 的典型用法。 我希望您确实有权限(否则让您的网络管理员这样做)来配置 WAN 路由器。 基本上,您希望路由器将原本发往您公共地址的某个 tcp 端口的数据包传递,例如 175.139.xx:8080 ,而不是您的 LAN 地址 192.168.x.xxx 的 tcp 端口 80 (作为 url 中的 http http://192.168.x.xxx/api/insert.php使用默认的 tcp 端口 80 )。 也就是说,让路由器执行从 175.139.xx:8080 到 192.168.x.xxx:80 的目标网络地址转换。 当然,您必须将 fetch 更改为 ( http://175.139.xx:8080/api/insert.php )。
请注意,在某些情况下,来自内部网络的人访问 LAN 服务器仍然更愿意使用公共地址 + 端口 (DNAT) 让 WAN 路由器将流量传播回目标 LAN 服务器,以确保地址一致性,无论在哪里连接已启动。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM