如何用宿主机访问部署在虚拟机上的OpenStack Swift服务?

环境:
虚拟机软件:VMware Workstation 12 Pro
虚拟机:Ubuntu 12.04.2 LTS (NAT连接)
宿主机:Win7 64bit
SAIO部署教程:http://docs.openstack.org/developer/swift/development_saio.html

问题描述:
1、在虚拟机中运行教程最后的一些示例能正常返回结果,虚拟机和宿主机能互相Ping通;
2、尝试在虚拟机中安装apache2,并在宿主机的浏览器地址栏输入虚拟机ip,访问成功;
3、尝试在虚拟机的浏览器地址栏输入宿主机ip(宿主机安装了wamp),访问成功;
4、尝试在宿主机通过curl访问虚拟机的Swift服务,失败:
图片描述
5、尝试在虚拟机中通过curl命令重新访问Swift服务(使用虚拟机的ip地址,不用127.0.0.1),失败:
图片描述

问题提出:
1、为什么只能通过127.0.0.1访问Swift服务,使用虚拟机的ip地址不行?
2、如何让宿主机访问虚拟机的Swift服务?

阅读 4.6k
2 个回答

建议使用swift的API访问,看下不部署的swift API 服务使用的是哪个IP,在想办法把API的IP与宿主机打通,然后就可以使用了

新手上路,请多包涵

可能是因为你在配置文件里面配置的也都是127.0.0.1(完全按照官方文档来的话)。这样当你尝试使用其他机器访问虚拟机上面的swift时,他是无法找访问到这个服务的。
我自己的解决方式是将配置文件里头的ip地址配成虚拟机的地址。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进