curl:(7)无法连接到主机;连接在openstack swift上被拒绝

时间:2016-03-24 06:51:24

标签: openstack-swift

我正在尝试通过链接http://docs.openstack.org/developer/swift/development_saio.html在Ubuntu 12.04 VM上设置'Swift All In One'系统。
当我在VM上运行命令

curl -v -H 'X-Storage-User: test:tester' -H 'X-Storage-Pass: testing' http://127.0.0.1:8080/auth/v1.0

它运行良好,但是如果我将地址“127.0.0.1”更改为“192.168.254.129”(VM IP地址)并且仍然在VM上运行命令 ,如:

curl -v -H 'X-Storage-User: test:tester' -H 'X-Storage-Pass: testing' http://192.168.254.129:8080/auth/v1.0

它失败并暗示“拒绝连接”。
我试图关闭VM上的防火墙,它也不起作用。
在我看来,这两个命令应该成功或失败,因为“127.0.0.1”和“192.168.254.129”都指的是同一个VM机器。

1 个答案:

答案 0 :(得分:0)

您发布的示例存在一些潜在问题:

  1. 端口不是默认端口。根据您使用的中间件,更改端口可能会非常棘手并导致意外结果。所以不鼓励这样做。

  2. 您应该将VM配置为使用具有静态IP配置的专用“仅内部”接口。我不想更改虚拟化主机创建的接口,而是将VIP添加到为仅主机网络创建的接口(例如eth1:0)。

  3. 如果仍然没有连接,请(双)确保防火墙没有阻止该接口上的连接。 Ubuntu 12.04使用iptables作为默认防火墙。因此要么确保服务没有运行,要么刷新输入规则(sudo iptables -F INPUT)。如果可行,那么不要忘记保存iptables配置(sudo service iptables save),以便在重启时不会恢复。

  4. 您似乎尝试使用v1.0身份验证指定租户。这不受支持。如果您需要指定与用户分开的租户,则必须使用v2.0 authentication。另外,我发现您使用的是已弃用的“存储”标头。如果您想使用v1.0身份验证,则强烈建议您使用X-Auth-UserX-Auth-Key标头。

  5. 使用swift command-line client验证服务器设置是否正确也是一个好主意。一旦您知道这一点,那么使用curl可以帮助您更好地理解协议的工作原理。