开发者社区> 问答> 正文

ECS 中使用 Python 开启服务 socket.errorErrno 99Cannot assign requested address

各位好,


    如题,我用 ECS 单独创建的 Service 使用 RPC Thrift 框架,在启动服务的时候,使用 `公网IP` 会报以下如图错误,但如果使用 `私有IP` 是没问题的,但我此服务是方便在其他服务器访问,所以一定要是 `公网IP`,不知道有没有遇到过该问题的朋友,又是怎么解决的呢,可否指点一二,感激。

展开
收起
迈骐 2017-11-14 16:03:11 5303 0
3 条回答
写回答
取消 提交回答
  • 我也是遇到相同的问题,思维上总是认为使用公网IP(或内网IP)启动服务,就需要使用公网IP(或内网IP)去访问接口,因此就遇到了相当尴尬的局面,使用内网IP启动服务,外网服务器或者主机无法进行接口访问,使用公网IP服务启动失败,真实尴尬,看到你的帖子,居然可以使用内网IP启动服务,使用外网IP进行调用,然后尝试一番,果然可以,真是解决了我的大问题啊,谢谢!!另外补充一点,我之前使用的是平安云服务器,无论内网IP,还是外网IP均可以启动服务,调用接口,但是使用内网IP启动服务,使用外网IP调用接口的情况就失效了,如果涉及其他服务器调用则必须使用外网IP启动服务,且使用外网IP调用接口。

    2019-10-17 11:24:14
    赞同 展开评论 打赏
  • ReECS 中使用 Python 开启服务 socket.errorErrno 99Cannot assign requested address

    这里自问自答了,原来使用 `私有IP` 建立的服务,是可以用 `公网IP` 来访问的。但是不要忘记了添加对应的安全组规则,(RPC 是基于 TCP 协议,所以协议类型是 TCP)

    -------------------------

    回 1楼dongshan8的帖子
    原来 `内网IP` 启的服务可以用 `公网IP` 访问,之前没试过,以为不行,`0.0.0.0` 也是可以的
    2017-11-15 13:37:26
    赞同 展开评论 打赏
  • 旺旺:nectar2。
    版主回复:

    请在您的python程序启动参数中,不写公网IP,也不写内网IP,请用 0.0.0.0 这样的IP试试哩。

    -------------------------

    回 3楼(迈骐) 的帖子
    版主回复:

    很高兴听到您已经解决了问题,且提供了参考的解决方法。

    欢迎有空时,再来转转喔。
    2017-11-14 18:39:01
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
如何运维千台以上游戏云服务器 立即下载
网站/服务器取证 实践与挑战 立即下载
ECS计算与存储分离架构实践 立即下载