我正在从 vagrant 运行虚拟盒,并尝试访问由客户 apache 服务器提供的网页。
当我wget http://dev.test.com/index.html
在客户机上执行时,一切正常,但是当我wget http://dev.test.com:8080/index.html
在主机上执行时,一段时间后出现错误:
--2013-08-09 12:04:25-- http://dev.test.com:8080/index.html
Resolving dev.test.com (dev.test.com)... 127.0.0.1
Connecting to dev.test.com (dev.test.com)|127.0.0.1|:8080... connected.
HTTP request sent, awaiting response... Read error (Connection reset by peer) in headers.
Retrying.
我已经启用从客户机 80 到主机 8080 的端口转发,并将其添加127.0.0.1 dev.test.com
到客户机和主机的 /etc/hosts 文件,并禁用客户机防火墙,service iptables stop
但仍然出现相同的错误。
有人能告诉我如何正确配置吗?
流浪者设置:
我的主机:Ubuntu 13.04 32位,Vagrant 1.0.3,virtual box 4.2.10
我已经像这样设置了 vagnrant box:
vagrant box add centos64_64 http://puppet-vagrant-boxes.puppetlabs.com/centos-64-x64-vbox4210.box
vagrant init centos64_64
mkdir manifests
mkdir modules
cd modules
wget http://forge.puppetlabs.com/puppetlabs/apache/0.8.1.tar.gz
tar zxf 0.8.1.tar.gz
rm 0.8.1.tar.gz
mv puppetlabs-apache-0.8.1 apache
wget http://forge.puppetlabs.com/puppetlabs/stdlib/4.1.0.tar.gz
tar zxf 4.1.0.tar.gz
rm 4.1.0.tar.gz
mv puppetlabs-stdlib-4.1.0 stdlib
wget https://forge.puppetlabs.com/ripienaar/concat/0.2.0.tar.gz
tar zxf 0.2.0.tar.gz
rm 0.2.0.tar.gz
mv ripienaar-concat-0.2.0 concat
将 Vagrantfile 内容更改为:
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant::Config.run do |config|
config.vm.box = "centos64_64"
config.vm.provision :puppet do |puppet|
puppet.manifests_path = "manifests"
puppet.manifest_file = "setup.pp"
puppet.module_path = "modules"
end
config.vm.forward_port 80, 8080
end
并创建了包含以下内容的 setup.pp 文件:
class{ "apache": }
apache::vhost { 'dev.test.com':
port => '80',
docroot => '/var/www/html/test.com',
}
编辑
网络状态监测
客人:
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
tcp 0 0 :::80 :::* LISTEN
tcp 0 0 :::22 :::* LISTEN
tcp 0 0 ::1:25 :::* LISTEN
tcp 0 0 :::443 :::* LISTEN
主持人:
tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:995 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:2222 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
tcp 0 0 127.0.1.1:53 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:4190 0.0.0.0:* LISTEN
tcp6 0 0 :::993 :::* LISTEN
tcp6 0 0 :::995 :::* LISTEN
tcp6 0 0 :::110 :::* LISTEN
tcp6 0 0 :::143 :::* LISTEN
tcp6 0 0 :::80 :::* LISTEN
tcp6 0 0 ::1:631 :::* LISTEN
tcp6 0 0 :::25 :::* LISTEN
tcp6 0 0 :::4190 :::* LISTEN
编辑2
问题似乎与 CentOS 6.3/6.4 64 位客户机有关。我试了几个,转发不起作用。现在我试了 CentOS 5.9 64 位(http://puppet-vagrant-boxes.puppetlabs.com/centos-59-x64-vbox4210.box) 使用相同的 Puppet 脚本和端口转发功能。
以下是该客户的 netstat -tnl 输出:
tcp 0 0 0.0.0.0:808 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
tcp 0 0 :::80 :::* LISTEN
tcp 0 0 :::22 :::* LISTEN
tcp 0 0 :::443 :::* LISTEN
我现在会坚持使用旧版本,但仍然想知道它不能与新版本兼容的原因。