如何从Mac OSX连接到Vagrant中的服务器?

时间:2015-10-16 13:55:43

标签: macos vagrant virtualbox

我正在尝试在运行Yosemite的Mac OSX上使用Vagrant运行我们的构建服务器(Jenkins)的本地设置。我一直在环顾四周,我已经看到服务必须要监听所有接口(0.0.0.0或::::)的要求。

我让Vagrant启动并运行,Jenkins也在运行。以下是sudo netstat -tulpn的输出:

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      965/sshd        
tcp        0      0 0.0.0.0:57349           0.0.0.0:*               LISTEN      653/rpc.statd   
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      591/rpcbind     
tcp6       0      0 :::22                   :::*                    LISTEN      965/sshd        
tcp6       0      0 :::57689                :::*                    LISTEN      2205/java       
tcp6       0      0 :::35586                :::*                    LISTEN      2205/java       
tcp6       0      0 :::33991                :::*                    LISTEN      653/rpc.statd   
tcp6       0      0 :::111                  :::*                    LISTEN      591/rpcbind     
tcp6       0      0 :::8080                 :::*                    LISTEN      2205/java       
udp        0      0 0.0.0.0:111             0.0.0.0:*                           591/rpcbind     
udp        0      0 0.0.0.0:60038           0.0.0.0:*                           653/rpc.statd   
udp        0      0 0.0.0.0:6057            0.0.0.0:*                           496/dhclient    
udp        0      0 0.0.0.0:765             0.0.0.0:*                           591/rpcbind     
udp        0      0 127.0.0.1:829           0.0.0.0:*                           653/rpc.statd   
udp        0      0 0.0.0.0:68              0.0.0.0:*                           496/dhclient    
udp6       0      0 :::111                  :::*                                591/rpcbind     
udp6       0      0 :::57046                :::*                                653/rpc.statd   
udp6       0      0 :::5353                 :::*                                2205/java       
udp6       0      0 :::765                  :::*                                591/rpcbind     
udp6       0      0 :::52531                :::*                                496/dhclient    
udp6       0      0 :::33848                :::*                                2205/java

Jenkins正在侦听端口8080并正在侦听::::(IPv6全部)。我可以curl localhost:8080在虚拟机内部获得响应,但是从我的主机上得到以下内容:

* Rebuilt URL to: localhost:8080/
*   Trying ::1...
* connect to ::1 port 8080 failed: Connection refused
*   Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 8080 (#0)
> GET / HTTP/1.1
> Host: localhost:8080
> User-Agent: curl/7.43.0
> Accept: */*
> 
* Empty reply from server
* Connection #0 to host localhost left intact
curl: (52) Empty reply from server 

我也尝试过让Java使用IPv4绑定地址,以便监听地址为0.0.0.0但是我得到了相同的结果。

以下是我的/etc/hosts文件的输出:

127.0.0.1 localhost

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

从我到目前为止所读到的一切都是应有的设置,但我必须做错事。你能帮助我帮忙吗?

如果您需要更多信息,请告诉我,我会在此发布。

干杯, 阿列克谢蓝。

1 个答案:

答案 0 :(得分:3)

您需要forward port从访客到主机,因此请在您的Vagrantfile中添加

config.vm.network "forwarded_port", guest: 8080, host: 8080

确保按vagrant reload重新加载您的虚拟机才能生效,您将可以从您的主机访问