我正尝试通过我主机上的端口 8000 访问 vagrant box(Laravel Homestead)上的网站,但它总是在 Chrome 和 IE 上出现 ERR_CONNECTION_REFUSED 错误。
我尝试了多种设置,更改了主机和客户机配置(NIC、防火墙等),但我越来越绝望了!我知道我前段时间在 Windows 7 机器上成功过,但现在我记不清是怎么做到的了。
无论如何,如果有帮助的话,我会尽力描述我当前的家庭网络。我有两个路由器 A 和 B。路由器 A 是 ISP 的路由器,具有 DHCP 服务(192.168.1.50 - 192.168.1.254)和中等设置的防火墙。路由器 B 在我的卧室里,通过以太网电缆与路由器 A 连接。它关闭了 DHCP,网关是路由器 A 的 IP。我的主机可以通过以太网或无线连接到路由器 B。在路由器方面,我仅尝试使用我尝试过的一些设置禁用防火墙。
我的主机运行的是 Windows 8.1 64 位,客户机操作系统是 Ubuntu Server 14.10 64 位。vagrant box 为我配置了 NIC。NIC 1 是 NAT,具有各种端口转发配置(特别是 ssh->2222->22、tcp8000->8000->80)。NIC 2 是仅主机,IP 地址为 192.168.10.10,子网掩码为 255.255.255.0。
一切正常(SSH),直到我尝试通过主机浏览器中的端口 8000 访问已配置的网站(http://192.168.10.10:8000)它总是出现那个错误。
我检查了 Virtualbox 的配置(最初 vagrant 或 virtualbox 有个 bug,其中 NIC 2 的 IP 被错误地设置为 192.168.10.1,我之后更正了这个问题但仍然没有效果)。我已经测试了不同的子网掩码(255.255.0.0)。我禁用了所有路由器防火墙,也检查了 Windows 的防火墙。我在 Google 上到处搜索过这个问题。尝试了不同的私有网络 IP。我已经编辑了客户机上的 etc/network/interfaces 配置文件,尝试进行故障排除或检查:iptables、route -n、netstat -rn... 可以从主机到客户机 Ping 一次,反之亦然。但从主机 telnet 192.168.10.10 8000 说连接被拒绝。
我甚至尝试禁用我的 wifi 并通过以太网电缆连接我的机器,如果我错了请纠正我,但我的家庭网络应该与这种情况无关,对吧?
我真的开始对此失去希望了,这真是令人沮丧!
欢迎任何帮助!
答案1
一分钟前我在两台计算机(Windows 8 和 Windows 10)上遇到了同样的问题,我所做的是运行“vagrant up && vagrant ssh”,然后:
netstat -ntlp | grep LISTEN
将此与 Laravel 的 IRC 频道上的某人进行比较,首先引起我注意的是我缺少 netstat 输出中的这个 nginx 条目:
tcp 0 0 0.0.0.0:80 0.0.0.0:* 4/nginx: worker
我做错的是,我用的是流浪汉命令(可能不正确),所以对我有用的是使用家园命令如下:
homestead init
homestead up
homestead ssh
#homestead halt, homestead provision, homestead destroy, etc...
遵循这些命令你应该没问题,还可以从你的 virtualbox 应用程序中删除所有旧的 vagrant 和 homestead 框。
如果一切顺利本地主机:8000和192.168.10.10应该显示:“未指定输入文件”
编辑1:我发现问题与 Vagrantfile 有关,尽管我运行了:
rm Vagranfile
vagrant init laravel/homestead
vagrant up
不知何故,配置缺少端口转发,可能还缺少许多其他配置。
编辑2:我还发现“homestead ssh”似乎有缺陷,可能会导致退格问题,这些问题会被捕获为空格,如果这个问题影响到您,请使用以下命令登录:
ssh vagrant@localhost -p 2222
请告知我我的回复是否有助于解决您的问题