python When use vpn, urllib3 connect raise a error “SSLEOFError: EOF occurred in violation of protocol (_ssl.c:1129)”
python When use vpn, urllib3 connect raise a error “SSLEOFError: EOF occurred in violation of protocol (_ssl.c:1129)”
我正在使用 ccxt 将 biance 连接到获取市场,然后引发错误
SSLEOFError Traceback (most recent call last)
E:\Anaconda3\envs\quant\lib\site-packages\urllib3\connectionpool.py in urlopen(self, method, url, body, headers, retries, redirect, assert_same_host, timeout, pool_timeout, release_conn, chunked, body_pos, **response_kw)
695 if is_new_proxy_conn and http_tunnel_required:
--> 696 self._prepare_proxy(conn)
697
E:\Anaconda3\envs\quant\lib\site-packages\urllib3\connectionpool.py in _prepare_proxy(self, conn)
963
--> 964 conn.connect()
965
E:\Anaconda3\envs\quant\lib\site-packages\urllib3\connection.py in connect(self)
363 if self.tls_in_tls_required:
--> 364 conn = self._connect_tls_proxy(hostname, conn)
365 tls_in_tls = True
E:\Anaconda3\envs\quant\lib\site-packages\urllib3\connection.py in _connect_tls_proxy(self, hostname, conn)
500 # certificate validation
--> 501 socket = ssl_wrap_socket(
502 sock=conn,
E:\Anaconda3\envs\quant\lib\site-packages\urllib3\util\ssl_.py in ssl_wrap_socket(sock, keyfile, certfile, cert_reqs, ca_certs, server_hostname, ssl_version, ciphers, ssl_context, ca_cert_dir, key_password, ca_cert_data, tls_in_tls)
452 else:
--> 453 ssl_sock = _ssl_wrap_socket_impl(sock, context, tls_in_tls)
454 return ssl_sock
E:\Anaconda3\envs\quant\lib\site-packages\urllib3\util\ssl_.py in _ssl_wrap_socket_impl(sock, ssl_context, tls_in_tls, server_hostname)
494 else:
--> 495 return ssl_context.wrap_socket(sock)
E:\Anaconda3\envs\quant\lib\ssl.py in wrap_socket(self, sock, server_side, do_handshake_on_connect, suppress_ragged_eofs, server_hostname, session)
499 # ctx._wrap_socket()
--> 500 return self.sslsocket_class._create(
501 sock=sock,
E:\Anaconda3\envs\quant\lib\ssl.py in _create(cls, sock, server_side, do_handshake_on_connect, suppress_ragged_eofs, server_hostname, context, session)
1039 raise ValueError("do_handshake_on_connect should not be specified for non-blocking sockets")
-> 1040 self.do_handshake()
1041 except (OSError, ValueError):
E:\Anaconda3\envs\quant\lib\ssl.py in do_handshake(self, block)
1308 self.settimeout(None)
-> 1309 self._sslobj.do_handshake()
1310 finally:
SSLEOFError: EOF occurred in violation of protocol (_ssl.c:1129)
我的环境是基于Anaconda的,我创建了一个环境来开发,这是细节,python 3.9.7.
enter image description here
我已经尝试了 this,但是没有用,我的 tls 是 1.3,下面的也不行,我已经坚持了好几天了。有人可以帮我吗?谢谢!
pip install ndg-httpsclient
pip install pyopenssl
pip install pyasn1
我不知道这是什么 VPN,但看起来它在干扰流量。
这种行为在使用公司 VPN 时很典型,这也意味着在访问 Internet 时使用公司过滤。通常在此处实施深度包检测以控制和限制访问,这可能会导致故意中断传出连接。
我把urllib3版本降到1.25.11,然后就解决了。我读了 here 并且有效。
我正在使用 ccxt 将 biance 连接到获取市场,然后引发错误
SSLEOFError Traceback (most recent call last)
E:\Anaconda3\envs\quant\lib\site-packages\urllib3\connectionpool.py in urlopen(self, method, url, body, headers, retries, redirect, assert_same_host, timeout, pool_timeout, release_conn, chunked, body_pos, **response_kw)
695 if is_new_proxy_conn and http_tunnel_required:
--> 696 self._prepare_proxy(conn)
697
E:\Anaconda3\envs\quant\lib\site-packages\urllib3\connectionpool.py in _prepare_proxy(self, conn)
963
--> 964 conn.connect()
965
E:\Anaconda3\envs\quant\lib\site-packages\urllib3\connection.py in connect(self)
363 if self.tls_in_tls_required:
--> 364 conn = self._connect_tls_proxy(hostname, conn)
365 tls_in_tls = True
E:\Anaconda3\envs\quant\lib\site-packages\urllib3\connection.py in _connect_tls_proxy(self, hostname, conn)
500 # certificate validation
--> 501 socket = ssl_wrap_socket(
502 sock=conn,
E:\Anaconda3\envs\quant\lib\site-packages\urllib3\util\ssl_.py in ssl_wrap_socket(sock, keyfile, certfile, cert_reqs, ca_certs, server_hostname, ssl_version, ciphers, ssl_context, ca_cert_dir, key_password, ca_cert_data, tls_in_tls)
452 else:
--> 453 ssl_sock = _ssl_wrap_socket_impl(sock, context, tls_in_tls)
454 return ssl_sock
E:\Anaconda3\envs\quant\lib\site-packages\urllib3\util\ssl_.py in _ssl_wrap_socket_impl(sock, ssl_context, tls_in_tls, server_hostname)
494 else:
--> 495 return ssl_context.wrap_socket(sock)
E:\Anaconda3\envs\quant\lib\ssl.py in wrap_socket(self, sock, server_side, do_handshake_on_connect, suppress_ragged_eofs, server_hostname, session)
499 # ctx._wrap_socket()
--> 500 return self.sslsocket_class._create(
501 sock=sock,
E:\Anaconda3\envs\quant\lib\ssl.py in _create(cls, sock, server_side, do_handshake_on_connect, suppress_ragged_eofs, server_hostname, context, session)
1039 raise ValueError("do_handshake_on_connect should not be specified for non-blocking sockets")
-> 1040 self.do_handshake()
1041 except (OSError, ValueError):
E:\Anaconda3\envs\quant\lib\ssl.py in do_handshake(self, block)
1308 self.settimeout(None)
-> 1309 self._sslobj.do_handshake()
1310 finally:
SSLEOFError: EOF occurred in violation of protocol (_ssl.c:1129)
我的环境是基于Anaconda的,我创建了一个环境来开发,这是细节,python 3.9.7.
enter image description here
我已经尝试了 this,但是没有用,我的 tls 是 1.3,下面的也不行,我已经坚持了好几天了。有人可以帮我吗?谢谢!
pip install ndg-httpsclient
pip install pyopenssl
pip install pyasn1
我不知道这是什么 VPN,但看起来它在干扰流量。
这种行为在使用公司 VPN 时很典型,这也意味着在访问 Internet 时使用公司过滤。通常在此处实施深度包检测以控制和限制访问,这可能会导致故意中断传出连接。
我把urllib3版本降到1.25.11,然后就解决了。我读了 here 并且有效。