我正在尝试在运行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
从我到目前为止所读到的一切都是应有的设置,但我必须做错事。你能帮助我帮忙吗?
如果您需要更多信息,请告诉我,我会在此发布。
干杯, 阿列克谢蓝。
答案 0 :(得分:3)
您需要forward port从访客到主机,因此请在您的Vagrantfile中添加
config.vm.network "forwarded_port", guest: 8080, host: 8080
确保按vagrant reload
重新加载您的虚拟机才能生效,您将可以从您的主机访问