无法从主机访问 vagrant vm
Cannot access vagrant vm from the host machine
我用 Puphpet 设置了一个 vagrant virtual box,它 运行 很好(在 Ubuntu 14.04 中),我可以通过 ssh 连接到它。我还使用 vagrant hostmanager 将虚拟机的 IP 自动添加到主机文件中。
这是主机文件:
127.0.0.1 localhost
127.0.1.1 pcuser-HP-EliteBook-8470p
# 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
## vagrant-hostmanager-start id: 2314dd30-24cf-4122-8779-8b755f5e6186
172.22.22.22 projectname.local
172.22.22.22 www.projectname.local
## vagrant-hostmanager-end
## vagrant-hostmanager-start id: c20d4d7f-3ada-4b2a-b142-e44826571754
192.168.56.101 machine1.puphpet
192.168.56.101 symfony.dev
## vagrant-hostmanager-end
问题是当我尝试通过 IP 地址或通过我设置的虚拟主机服务器名称 (symfony.dev) 从主机访问 VM 时。
每次都无法连接到它,尽管我已经从主机 ping 了机器 IP 并且它响应正常。
起初我没有安装 vagrant hostmanager,只是手动将 IP 和虚拟主机服务器名称 (symfony.dev) 添加到主机文件,但无法连接。
我检查了 config.yaml 文件中的设置,它们似乎都没有问题:
vagrantfile:
target: local
vm:
provider:
local:
box: puphpet/ubuntu1404-x64
box_url: puphpet/ubuntu1404-x64
box_version: '0'
chosen_virtualizer: virtualbox
virtualizers:
virtualbox:
modifyvm:
natdnshostresolver1: false
showgui: 0
vmware:
numvcpus: 1
parallels:
linked_clone: 0
check_guest_tools: 0
update_guest_tools: 0
machines:
vflm_zaw8al7jczu3:
id: machine1
hostname: machine1.puphpet
network:
private_network: 192.168.56.101
forwarded_port:
vflmnfp_67om22p4f0j3:
host: '5608'
guest: '22'
memory: '1024'
cpus: '1'
provision:
puppet:
manifests_path: puphpet/puppet/manifests
module_path:
- puphpet/puppet/modules
- puphpet/puppet/manifests
options:
- '--verbose'
- '--hiera_config /vagrant/puphpet/puppet/hiera.yaml'
synced_folder:
vflsf_y5mnuhi3ihqh:
source: ./
target: /var/www
sync_type: nfs
smb:
smb_host: ''
smb_username: ''
smb_password: ''
mount_options:
dir_mode: '0775'
file_mode: '0664'
rsync:
args:
- '--verbose'
- '--archive'
- '-z'
exclude:
- .vagrant/
- .git/
auto: 'true'
owner: www-data
group: www-data
usable_port_range:
start: 10200
stop: 10500
post_up_message: ''
我是否需要更改配置中的任何内容,或者我遗漏了什么或做错了什么?
非常感谢任何帮助。
您启动了您的服务器,但它绑定到 127.0.0.1 / 本地主机 IP,因此它只能从 VM 访问
您需要使用虚拟机的IP或0.0.0.0 IP启动它。像这样的东西应该工作
php bin/console server:start 0.0.0.0:8000
现在可以正常使用了。最后发现是我安装的PuphPet包的问题。我发现 Apache 没有安装在虚拟机上,尽管我已经在 Puphpet GUI 上的软件包构建中选择了它,而且它似乎也按照 config.yaml 文件安装了。
感谢助手 Frederic Henri!
我用 Puphpet 设置了一个 vagrant virtual box,它 运行 很好(在 Ubuntu 14.04 中),我可以通过 ssh 连接到它。我还使用 vagrant hostmanager 将虚拟机的 IP 自动添加到主机文件中。
这是主机文件:
127.0.0.1 localhost
127.0.1.1 pcuser-HP-EliteBook-8470p
# 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
## vagrant-hostmanager-start id: 2314dd30-24cf-4122-8779-8b755f5e6186
172.22.22.22 projectname.local
172.22.22.22 www.projectname.local
## vagrant-hostmanager-end
## vagrant-hostmanager-start id: c20d4d7f-3ada-4b2a-b142-e44826571754
192.168.56.101 machine1.puphpet
192.168.56.101 symfony.dev
## vagrant-hostmanager-end
问题是当我尝试通过 IP 地址或通过我设置的虚拟主机服务器名称 (symfony.dev) 从主机访问 VM 时。
每次都无法连接到它,尽管我已经从主机 ping 了机器 IP 并且它响应正常。
起初我没有安装 vagrant hostmanager,只是手动将 IP 和虚拟主机服务器名称 (symfony.dev) 添加到主机文件,但无法连接。
我检查了 config.yaml 文件中的设置,它们似乎都没有问题:
vagrantfile:
target: local
vm:
provider:
local:
box: puphpet/ubuntu1404-x64
box_url: puphpet/ubuntu1404-x64
box_version: '0'
chosen_virtualizer: virtualbox
virtualizers:
virtualbox:
modifyvm:
natdnshostresolver1: false
showgui: 0
vmware:
numvcpus: 1
parallels:
linked_clone: 0
check_guest_tools: 0
update_guest_tools: 0
machines:
vflm_zaw8al7jczu3:
id: machine1
hostname: machine1.puphpet
network:
private_network: 192.168.56.101
forwarded_port:
vflmnfp_67om22p4f0j3:
host: '5608'
guest: '22'
memory: '1024'
cpus: '1'
provision:
puppet:
manifests_path: puphpet/puppet/manifests
module_path:
- puphpet/puppet/modules
- puphpet/puppet/manifests
options:
- '--verbose'
- '--hiera_config /vagrant/puphpet/puppet/hiera.yaml'
synced_folder:
vflsf_y5mnuhi3ihqh:
source: ./
target: /var/www
sync_type: nfs
smb:
smb_host: ''
smb_username: ''
smb_password: ''
mount_options:
dir_mode: '0775'
file_mode: '0664'
rsync:
args:
- '--verbose'
- '--archive'
- '-z'
exclude:
- .vagrant/
- .git/
auto: 'true'
owner: www-data
group: www-data
usable_port_range:
start: 10200
stop: 10500
post_up_message: ''
我是否需要更改配置中的任何内容,或者我遗漏了什么或做错了什么?
非常感谢任何帮助。
您启动了您的服务器,但它绑定到 127.0.0.1 / 本地主机 IP,因此它只能从 VM 访问
您需要使用虚拟机的IP或0.0.0.0 IP启动它。像这样的东西应该工作
php bin/console server:start 0.0.0.0:8000
现在可以正常使用了。最后发现是我安装的PuphPet包的问题。我发现 Apache 没有安装在虚拟机上,尽管我已经在 Puphpet GUI 上的软件包构建中选择了它,而且它似乎也按照 config.yaml 文件安装了。
感谢助手 Frederic Henri!