Vagrant 运行 DSTK 拒绝端口 8080 的连接

Vagrant running DSTK refuses connections at port 8080

我对虚拟机和 vagrant 领域还很陌生,所以请原谅我对这一切的普遍无知。

前几天,我下载了 DSTK vagrant box,并按照文档页面上的说明进行了设置,这样我就可以 运行 在我的本地服务器上通过它发出成千上万的请求机器而不是轰炸 public 服务器(而且,它应该更快;而且,DSTK 目前已关闭,所以它是唯一的选择)。

在等待 vagrant addinit 我疲惫的旧硬盘上的盒子后,它成功了!我使用 curl 发出了一些请求,得到了预期的响应,并拍了拍自己的背。我关上终端,收起电脑,喝了啤酒。

... 然后,第二天早上,发生了这样的事情:

$ curl -d "Joe Biden" "localhost:8080/text2people"
curl: (7) Failed to connect to localhost port 8080: Connection refused

我不明白为什么。我试过了vagrant suspend; vagrant up。一样。 vagrant halt; vagrant up。一样。当我再次停止 vagrant 和 运行 'vagrant up' 时,这会出现在读数中,这让我认为它应该工作。

==> default: Forwarding ports...
default: 80 => 8080 (adapter 1)
default: 22 => 2222 (adapter 1)

我可以 运行 vagrant ssh 进去,环顾四周,我发现所有文件都在正确的位置。

我想我可以移除盒子并重新添加它,但 addinit 确实需要几个小时,现在我 运行我需要它工作的最后期限,我想有一个我不知道的非常简单的事情导致了我的问题。 Google 到目前为止没有帮助,可能是因为我对 vagrant 总体上很陌生。

所以这根本不是 vagrant 或 virtualbox 的问题。

事实证明,我只是没有停下来思考 curl 是否是罪魁祸首,当我再次想到这个问题时,修复它就像 curl "127.0.0.1:8080/..." 一样简单。显然 curl(或至少本机 Mac OSX 实现)不喜欢 localhost.

不过,我确实尝试 Google 讨论了几分钟,然后我遇到了我自己未回答的问题,这有点令人失望——以防其他人遇到这个问题,这是您的解决方法。

curl "localhost:8080/text2people" -d "Joe Biden"
curl: (7) Failed to connect to localhost port 8080: Connection refused

curl "127.0.0.1:8080/text2people" -d "Joe Biden"
[
  {
    "title": "",
    "gender": "m",
    "start_index": 0,
    "first_name": "Joe",
    "end_index": 9,
    "surnames": "Biden",
    "ethnicity": {
      "percentage_american_indian_or_alaska_native": 0.0,
      "rank": 114852,
      "percentage_two_or_more": 0.0,
      "percentage_of_total": 5.0e-05,
      "percentage_hispanic": 0.0,
      "percentage_white": 96.45,
      "percentage_black": 0.0,
      "percentage_asian_or_pacific_islander": 0.0
    },
    "matched_string": "Joe Biden"
  }
]

我刚刚遇到了同样的问题,在我的情况下,解决方案是确保 Vagrantfile 中没有注释以下行:

config.vm.network "forwarded_port",访客:80,主机:8080,host_ip:“127.0.0.1”