宝塔无法配置腾讯云COS的解决方法
遇到了一个奇怪的问题,宝塔安装腾讯云COS以后,无法配置COS信息,报错信息如下:
qcloud_cos.cos_exception.CosClientError: HTTPConnectionPool(host='xxx.cos.ap-shanghai.myqcloud.com', port=80): Max retries exceeded with url: /?prefix=&delimiter=%2F&marker=&max-keys=1000&encoding-type=url (Caused by NewConnectionError(': Failed to establish a new connection: [Errno -2] Name or service not known'))Traceback (most recent call last):
File "class/panelPlugin.py", line 3796, in a
return p.exec_fun(get)
File "class/pluginAuth.py", line 67, in exec_fun
raise public.PanelError(res['msg'])
public.PanelError: 面板运行时发生错误: Traceback (most recent call last):
File "/www/server/panel/pyenv/lib/python3.7/site-packages/urllib3/connection.py", line 175, in _new_conn
(self._dns_host, self.port), self.timeout, **extra_kw
File "/www/server/panel/pyenv/lib/python3.7/site-packages/urllib3/util/connection.py", line 72, in create_connection
for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
File "/www/server/panel/pyenv/lib/python3.7/site-packages/gevent/_socketcommon.py", line 247, in getaddrinfo
addrlist = get_hub().resolver.getaddrinfo(host, port, family, type, proto, flags)
File "/www/server/panel/pyenv/lib/python3.7/site-packages/gevent/resolver/thread.py", line 63, in getaddrinfo
return self.pool.apply(_socket.getaddrinfo, args, kwargs)
File "/www/server/panel/pyenv/lib/python3.7/site-packages/gevent/pool.py", line 161, in apply
return self.spawn(func, *args, **kwds).get()
File "src/gevent/event.py", line 329, in gevent._gevent_cevent.AsyncResult.get
File "src/gevent/event.py", line 359, in gevent._gevent_cevent.AsyncResult.get
File "src/gevent/event.py", line 347, in gevent._gevent_cevent.AsyncResult.get
File "src/gevent/event.py", line 327, in gevent._gevent_cevent.AsyncResult._raise_exception
File "/www/server/panel/pyenv/lib/python3.7/site-packages/gevent/_compat.py", line 66, in reraise
raise value.with_traceback(tb)
File "/www/server/panel/pyenv/lib/python3.7/site-packages/gevent/threadpool.py", line 173, in __run_task
thread_result.set(func(*args, **kwargs))
socket.gaierror: [Errno -2] Name or service not known
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/www/server/panel/pyenv/lib/python3.7/site-packages/urllib3/connectionpool.py", line 710, in urlopen
chunked=chunked,
File "/www/server/panel/pyenv/lib/python3.7/site-packages/urllib3/connectionpool.py", line 398, in _make_request
conn.request(method, url, **httplib_request_kw)
File "/www/server/panel/pyenv/lib/python3.7/site-packages/urllib3/connection.py", line 244, in request
super(HTTPConnection, self).request(method, url, body=body, headers=headers)
File "/www/server/panel/pyenv/lib/python3.7/http/client.py", line 1281, in request
self._send_request(method, url, body, headers, encode_chunked)
File "/www/server/panel/pyenv/lib/python3.7/http/client.py", line 1327, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "/www/server/panel/pyenv/lib/python3.7/http/client.py", line 1276, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/www/server/panel/pyenv/lib/python3.7/http/client.py", line 1036, in _send_output
self.send(msg)
File "/www/server/panel/pyenv/lib/python3.7/http/client.py", line 976, in send
self.connect()
File "/www/server/panel/pyenv/lib/python3.7/site-packages/urllib3/connection.py", line 205, in connect
conn = self._new_conn()
File "/www/server/panel/pyenv/lib/python3.7/site-packages/urllib3/connection.py", line 187, in _new_conn
self, "Failed to establish a new connection: %s" % e
urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno -2] Name or service not known
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/www/server/panel/pyenv/lib/python3.7/site-packages/requests/adapters.py", line 499, in send
timeout=timeout,
File "/www/server/panel/pyenv/lib/python3.7/site-packages/urllib3/connectionpool.py", line 788, in urlopen
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
File "/www/server/panel/pyenv/lib/python3.7/site-packages/urllib3/util/retry.py", line 592, in increment
raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='xxx.cos.ap-shanghai.myqcloud.com', port=80): Max retries exceeded with url: /?prefix=&delimiter=%2F&marker=&max-keys=1000&encoding-type=url (Caused by NewConnectionError(': Failed to establish a new connection: [Errno -2] Name or service not known'))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/www/server/panel/pyenv/lib/python3.7/site-packages/qcloud_cos/cos_client.py", line 421, in send_request
res = self._session.get(url, timeout=timeout, proxies=self._conf._proxies, **kwargs)
File "/www/server/panel/pyenv/lib/python3.7/site-packages/requests/sessions.py", line 600, in get
return self.request("GET", url, **kwargs)
File "/www/server/panel/pyenv/lib/python3.7/site-packages/requests/sessions.py", line 587, in request
resp = self.send(prep, **send_kwargs)
File "/www/server/panel/pyenv/lib/python3.7/site-packages/requests/sessions.py", line 701, in send
r = adapter.send(request, **kwargs)
File "/www/server/panel/pyenv/lib/python3.7/site-packages/requests/adapters.py", line 565, in send
raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='xxx.cos.ap-shanghai.myqcloud.com', port=80): Max retries exceeded with url: /?prefix=&delimiter=%2F&marker=&max-keys=1000&encoding-type=url (Caused by NewConnectionError(': Failed to establish a new connection: [Errno -2] Name or service not known'))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/www/server/panel/plugin/txcos/txcos_main.py", line 1634, in set_config
if _client.get_list():
File "/www/server/panel/plugin/txcos/txcos_main.py", line 1254, in get_list
Prefix=path)
File "/www/server/panel/pyenv/lib/python3.7/site-packages/qcloud_cos/cos_client.py", line 1496, in list_objects
auth=CosS3Auth(self._conf, params=params))
File "/www/server/panel/pyenv/lib/python3.7/site-packages/qcloud_cos/cos_client.py", line 451, in send_request
raise CosClientError(str(e))
qcloud_cos.cos_exception.CosClientError: HTTPConnectionPool(host='xxx.cos.ap-shanghai.myqcloud.com', port=80): Max retries exceeded with url: /?prefix=&delimiter=%2F&marker=&max-keys=1000&encoding-type=url (Caused by NewConnectionError(': Failed to establish a new connection: [Errno -2] Name or service not known'))从报错日志上看是解析到cos.ap-shanghai.myqcloud.com域名的时候无法解析造成的,通过多次尝试,发现是服务器开启了IPV6造成的,于是暂时关闭IPV6,重新配置腾讯云COS,就可以正常配置成功,然后再开启服务器IPV6,不影响正常的使用。
不明觉历呀。
应该是腾讯云COS配置的时候走的是IPV6,但是这个COS的域名没有解析IPV6造成的。关闭宝塔的IPV6,就可以正常配置,配置以后重新开启IPV6就好了。