栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Google App Engine-开发服务器上的代理/隧道权限被拒绝

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Google App Engine-开发服务器上的代理/隧道权限被拒绝

进一步研究了这个问题,似乎在这个文件中:

platform / google_appengine / google / appengine / api / remote_socket /
_remote_socket_stub.py
,它在常量

_MOCK_SOCKET_OPTIONS
中找到了一些 模拟
的(级别,选项)套接字对,它们缺少(1、3)对,因此,我的意思是下面的级别和选项(我猜星号是所需的值):

级别(值:1):

  • SOCKET_TCP_NODELAY
  • SOCKET_IP_TOS
  • SOCKET_SOL_SOCKET *
  • SOCKET_SO_DEBUG

选项(值:3):

  • SOCKET_IP_HDRINCL
  • SOCKET_SO_TYPE *
  • SOCKET_TCP_CORK

因此,通过设置代理,我想我要的是 SOL_SOCKET:SO_TYPE 组,但是 模拟 值又如何呢? 模拟
值是与十六进制二进制相关的字符串,如“ 00000000”(用于keepalive)和“ 01000000”(reuseaddr):https
://github.com/GoogleCloudPlatform/python-compat-runtime/blob/master/appengine-
compat/exported_appengine_sdk/google/appengine/api/remote_socket/_remote_socket_stub.py#L97

在哪里可以找到(1,3)缺失对的类似值?


以后编辑:

我添加了“ SOL_SOCKET:SO_TYPE =
80000000”组,现在它在ssl模块上中断(为了支持https而必须启用该模块;无需修补,只需在app.yaml中启用它):https:/
/pastebin.com/9KQjdEgL 通过识别套接字类型为 128
,我猜这可能是以下常量之一:

  • socket.MSG_EOR
  • SOMAXCONN套接字
  • socket.TIPC_SRC_DROPPABLE

后来…

因此我意识到128值是上面我的小端模拟的实际值,因此我将组更改为:“ SOL_SOCKET:SO_TYPE =
01000000”,这可以识别

socket.SOCK_STREAM
套接字类型,该套接字类型实际上仅用于此检查,但随后又,它会崩溃,因为
ssl
无法理解GAE的自定义套接字对象:https://pastebin.com/t2pUuW2V(
<google.appengine.api.remote_socket._remote_socket.socketobject at 0x7f0cd037f690>
)。在有和没有
requests
猴子修补的情况下尝试了此操作。

我的结论

关于dev_appserver沙箱,GAE自定义

socket
不能完全与SSL(在隧道上)一起使用,Python标准
socket
不能与GAE(我想是不可补丁的)
select
模块一起使用。

解决方案:将远程部署的相同行为引入本地开发环境。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/659623.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号