【问题标题】:node.js and npm has no network access in windows 7 64 bit ultimatenode.js 和 npm 在 windows 7 64 位终极版中没有网络访问权限
【发布时间】:2012-03-02 13:17:37
【问题描述】:

注意:对于遇到此问题的其他人,我尝试了所有建议和所有研究。最后我格式化了硬盘并重新安装了windows。尽管从一开始就是全新安装,但某些 Windows 安装似乎根本无法与节点一起使用。据我所知,这是唯一的解决方案。

首先,我已经找到了类似的问题: Basic Node.js examples not working on Windows 7 这似乎是同一个问题,但没有解决方案。我还发现网上论坛帖子没有解决方案,但很多人都发布了相同的问题。

Node.exenpm 似乎都没有网络访问权限。 npm install 发送获取请求,但从未得到响应。访问 mongodb 的节点脚本从不发送连接请求。我将此代码从旧机器复制到新机器。这是我放在新机器上的第一件事。旧机器运行的是 windows 7 64 家庭高级版和新的 windows 7 64 终极版。我已经尝试了所有兼容模式,以管理员身份运行,禁用 Windows 防火墙,还没有防病毒软件,我卸载/重新安装,并且我尝试更改版本,即使从旧计算机到新计算机的版本相同。我搜索了 stackoverflow 和互联网,发现其他人有问题但没有解决方案。我有一个可以成功运行节点的虚拟机 ubuntu vm,但是如果可能的话,我希望能够在没有 vm 的情况下运行它,而且我似乎找不到任何问题的原因。甚至两台计算机之间的 OEM 软件也几乎相同,因为旧的是外星人 m15x,而新的是 m14x。任何帮助表示赞赏。

编辑:

我目前使用的是最新版本 (0.6.10)。运行 npm install 并挂起后,我使用netstat 并在 node.exe 下得到以下结果:

 [node.exe]
   TCP    10.20.21.225:49690     ec2-107-20-159-167.compute-1.amazonaws.com:https                       ESTABLISHED
  [node.exe]
   TCP    10.20.21.225:49691     nuq04s08-in-f31.1e100.net:https  TIME_WAIT
   TCP    10.20.21.225:49692     fa-in-f94.1e100.net:https  TIME_WAIT
   TCP    10.20.21.225:49693     nuq04s08-in-f19.1e100.net:http  TIME_WAIT
   TCP    10.20.21.225:49696     nuq04s08-in-f25.1e100.net:http  TIME_WAIT
   TCP    10.20.21.225:49702     nuq04s08-in-f6.1e100.net:http  TIME_WAIT
   TCP    10.20.21.225:49703     nuq04s08-in-f25.1e100.net:http  TIME_WAIT
   TCP    10.20.21.225:49704     nuq04s08-in-f25.1e100.net:http  TIME_WAIT
   TCP    10.20.21.225:49706     nuq04s08-in-f26.1e100.net:http  TIME_WAIT
   TCP    10.20.21.225:49707     nuq04s08-in-f26.1e100.net:http  TIME_WAIT
   TCP    10.20.21.225:49708     nuq04s08-in-f26.1e100.net:http  TIME_WAIT
   TCP    10.20.21.225:49709     nuq04s08-in-f26.1e100.net:http  TIME_WAIT

现在,当我在 node.js 主页上运行示例服务器时,我无法在浏览器中获取 hello world,但是连接在 netstat 中:

  [node.exe]
   TCP    127.0.0.1:1337         Robbie-PC:49805        ESTABLISHED
  [node.exe]
   TCP    127.0.0.1:7789         Robbie-PC:49158        ESTABLISHED

但是当我稍等片刻时,它会变成:

  [node.exe]
   TCP    127.0.0.1:1337         Robbie-PC:49805        CLOSE_WAIT
  [node.exe]
   TCP    127.0.0.1:7789         Robbie-PC:49158        ESTABLISHED

编辑 2:

所以我尝试禁用所有其他连接.. 不走运。然后我尝试在eclipse中使用调试器,甚至eclipse都找不到在端口5858上广播的vm调试器。它实际上只是没有连接。因此,除非有人最终除了擦除硬盘驱动器和重新安装 Windows 之外还有其他想法,否则我认为这台计算机将回到 Alienware 作为 DOA。希望下一个没有这个问题。感谢所有在 cmets 中提出建议的人,以及所有试图为我研究解决方案的人。

【问题讨论】:

  • 什么版本的 Node.js?
  • node.js 的哪个版本?当您在链接问题中运行简单的 HTTP 服务器小脚本时会发生什么? netstat(或 Windows 等价物,如果未命名为 netstat)是否显示服务器正在侦听?哪些客户端不工作?您可以使用telnetnc 或类似程序连接到假服务器吗?是只对http 模块失败还是对其他预打包的node.js 服务器失败?
  • 我遇到了这个确切的问题。在完全相同的网络上运行 Windows XP 的 PC 可以正常工作。
  • 您尝试过内部 node.js 调试器:nodejs.org/docs/latest/api/debugger.html 吗? (注意:我有 Windows 7 64 Ultimate 和 node.js 对我来说很好)
  • 您是否有多个可用的网络点?像无线和以太网一样,节点可能会感到困惑?那些也启用了 ipv6?

标签: node.js windows-7 npm


【解决方案1】:

如果您位于可能需要在节点上设置代理配置的公司网络后面。它运行类似这样的东西

npm config set proxy http://proxy.company.com:8080
npm config set https-proxy http://proxy.company.com:8080

将代理公司名称替换​​为您的网络使用的任何名称。

【讨论】:

  • 我没有落后,但感谢您的建议。从头开始重新安装操作系统为我解决了这个问题。
【解决方案2】:

使用相同的操作系统我没有这个问题,但我已经在下载一些包时遇到了问题(我想要节点 mysql)。为了解决这个问题,我必须从github 下载源代码,将其解压缩到 node_modules 存储库中并将其重命名为“mysql”。

现在我可以制作var mysql = require('mysql');

【讨论】:

  • 这对我来说可以获取包,但包仍然没有网络连接。启动一个基本的 http 服务器只使用内部节点包,应该开箱即用,所以我的问题比这要复杂一些。
【解决方案3】:

甚至可以尝试 cygwin。它从纯虚拟 Linux 和让它在 Windows 7 上运行都退了一步。就我个人而言,我在 64 位上安装了 Cygwin 和 Windows 7 的 node.js(虽然不是最终的)。

由于写保护和安全设置,我只需要将节点安装到“程序文件”之外的目录。仍然必须以管理员身份运行命令控制台以确保一切正常。 Cygwin 没有这些问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-19
    • 1970-01-01
    • 2019-02-16
    • 2018-11-23
    相关资源
    最近更新 更多