您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

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

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

platform / google_appengine / google / appengine / api / remote_socket / _remote_socket_stub.py ,它在常量_MOCK_SOCKET_OPTIONS中找到了一些 模拟 的(级别,选项)套接字对,它们缺少(1、3)对,因此,我的意思是下面的级别和选项(我猜星号是所需的值):

级别(值:1):

选项(值:3):

因此,通过设置代理,我想我要的是 组,但是 值又如何呢? 值是与十六进制二进制相关的字符串,如“ 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值是上面我的小端模拟的实际值,因此我将组更改为:“ SOL_SOCKET:SO_TYPE = 01000000”,这可以识别socket.soCK_STREAM套接字类型,该套接字类型实际上仅用于此检查,但随后又,它会崩溃,因为ssl无法理解GAE的自定义套接字对象:https//pastebin.com/t2pUuW2V(<google.appengine.api.remote_socket._remote_socket.socket object at 0x7f0cd037f690>)。在有和没有requests猴子修补的情况下尝试了此操作。

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

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

Go 2022/1/1 18:35:49 有426人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶