【问题标题】:Accessing localhost from outside从外部访问本地主机
【发布时间】:2016-06-09 14:05:57
【问题描述】:

我一直在寻找在我的 android 设备上运行 node.js 服务器的方法。我找到了一些描述它的好文章:https://medium.freecodecamp.com/building-a-node-js-application-on-android-part-1-termux-vim-and-node-js-dfa90c28958f#.xrh3v0du1。我已经按照教程在我的设备上安装了 linux vm 并安装了 node.js。我已成功运行我的 node.js 脚本并从 android 浏览器访问它。但是我找不到任何方法可以通过 ip 地址在我的 android 设备之外打开此页面。

【问题讨论】:

  • 你找到你的安卓设备的IP地址了吗?当您尝试使用正确的端口访问它时会发生什么?
  • 是的,在 whatismyip.com 上。什么都没有,找不到
  • 如何连接到互联网。如果你在 wifi 上,你可能有一个内部 ip,由你的路由器提供。 android.stackexchange.com/questions/2984/…
  • 我尝试了 2 种方法:通过 wifi 和 3G。一样,没什么
  • 当您使用 3G 时,您的电信公司可能会阻塞该端口。通过 wifi,您可能有一个不会从 whatsmyip 获得的内部 IP。您需要在您的设备上列出它。你在哪个端口上运行?

标签: android node.js


【解决方案1】:

如果您的 TelCo 允许,您可以按照以下步骤访问运行 Node 的 localhost android。 注意:这仅在您的手机使用手机数据计划(2-3-4-5...G 数据)连接时有效,而使用 Wi-Fi 连接。需要明确的是:如果此移动设备使用 wi-fi 数据,则您的移动设备上的应用仅通过以下方法提供内容。

1 - 在动态 dns 提供商网站上设置一个帐户(好的计划总是有偿的)。在那里,您将配置一个类似 http://muhlinin.mydyndns.com 的 URL,它将指向一个动态 IP 号码;

2 - 将相应的动态 dns 应用程序安装到您的手机中,此应用程序会将您当前的 IP 号码转发到您的动态 dns 帐户,这样可以确保对http://muhlinin.mydyndns.com 的每个请求始终会找到您的手机来响应该请求,无论如何您的手机在请求时拥有的 IP;

3 - 在你的 android 上,运行(例如)Termux 和 Node,让你的 .js 服务器脚本 监听一个非默认端口(因为默认端口 80,可能会被你的 TelCo 关闭),例如,8000,在您在上面显示的第 1 项和第 2 项之后获得的动态 url 上。像这样的东西:http://muhlinin.mydyndns.com:8000

当然,如果您的手机关闭,或者相应的 dyn dns 应用程序关闭或未启动,或者您的 Node 服务器已关闭或未启动,则每次调用 http://muhlinin.mydyndns.com:8000 都会导致错误。因此,为了让一切正常运行,您必须正确完成前 3 个步骤 全部在您的移动服务器上打开并启动:

1 - 动态 dns 应用程序;

2 - Node.js 运行时;

3 - 您的 serverscript.js(您将从在 Termux 上执行一个简单的“节点 serverscript.js”开始。

【讨论】:

    【解决方案2】:

    尝试在终端中运行ifconfig 并查看wlan0 条目的inet addr: 字段以在您的wifi 上找到您的IP。

    【讨论】:

    • Ipconfig for wlan0 返回 192.168.1.11
    猜你喜欢
    • 2016-08-04
    • 2012-04-07
    • 2021-07-16
    • 1970-01-01
    • 2015-06-06
    • 2011-02-12
    • 1970-01-01
    • 2020-03-27
    相关资源
    最近更新 更多