facebookarchive/doh-proxy

[client] query google's doh failed

Closed this issue · 1 comments

try the following command and get errors:

doh-client --domain dns.google.com --uri "resolve?" --qname www.youtube.com
2019-03-30 12:58:32,947: DEBUG: Opening connection to dns.google.com
2019-03-30 12:58:34,004: DEBUG: Query parameters: {'dns': 'AAABAAABAAAAAAAAA3d3dwd5b3V0dWJlA2NvbQAAHAAB'}
2019-03-30 12:58:34,005: DEBUG: Stream ID: 1 / Total streams: 0
2019-03-30 12:58:34,156: DEBUG: Response headers: [(':status', '404'), ('content-type', 'text/html; charset=UTF-8'), ('referrer-policy', 'no-referrer'), ('content-length', '1561'), ('date', 'Sat, 30 Mar 2019 04:58:34 GMT'), ('alt-svc', 'quic=":443"; ma=2592000; v="46,44,43,39"')]
2019-03-30 12:58:34,160: ERROR: Exception in callback _SelectorSocketTransport._read_ready()
handle: <Handle _SelectorSocketTransport._read_ready()>
Traceback (most recent call last):
File "D:\Soft\Python3\Lib\asyncio\events.py", line 127, in _run
self._callback(*self._args)
File "D:\Soft\Python3\Lib\asyncio\selector_events.py", line 731, in _read_ready
self._protocol.data_received(data)
File "D:\Soft\Python3\Lib\asyncio\sslproto.py", line 516, in data_received
self._app_protocol.data_received(chunk)
File "d:\tools\dos.venv\lib\site-packages\aioh2\protocol.py", line 259, in data_received
self._event_received(event)
File "d:\tools\dos.venv\lib\site-packages\aioh2\protocol.py", line 268, in _event_received
self._event_handlerstype(event)
KeyError: <class 'h2.events.PingReceived'>
Traceback (most recent call last):
File "D:\Soft\Python3\Lib\runpy.py", line 193, in _run_module_as_main
"main", mod_spec)
File "D:\Soft\Python3\Lib\runpy.py", line 85, in run_code
exec(code, run_globals)
File "D:\tools\dos.venv\Scripts\doh-client.exe_main
.py", line 9, in
File "d:\tools\dos.venv\lib\site-packages\dohproxy\client.py", line 63, in main
main_sync(args)
File "d:\tools\dos.venv\lib\site-packages\dohproxy\client.py", line 58, in main_sync
loop.run_until_complete(client.make_request(None, build_query(args)))
File "D:\Soft\Python3\Lib\asyncio\base_events.py", line 466, in run_until_complete
return future.result()
File "d:\tools\dos.venv\lib\site-packages\dohproxy\client_protocol.py", line 140, in make_request
dnsr = self.on_message_received(stream_id, resp)
File "d:\tools\dos.venv\lib\site-packages\dohproxy\client_protocol.py", line 66, in on_message_received
return dns.message.from_wire(msg)
File "d:\tools\dos.venv\lib\site-packages\dns\message.py", line 823, in from_wire
reader.read()
File "d:\tools\dos.venv\lib\site-packages\dns\message.py", line 746, in read
self._get_question(qcount)
File "d:\tools\dos.venv\lib\site-packages\dns\message.py", line 621, in _get_question
(qname, used) = dns.name.from_wire(self.wire, self.current)
File "d:\tools\dos.venv\lib\site-packages\dns\name.py", line 988, in from_wire
raise BadLabelType
dns.name.BadLabelType: The label type in DNS name wire format is unknown.

Google's RFC8484 DoH endpoint is currently under /experimental:

doh-client  --domain dns.google.com --uri /experimental --qname www.youtube.com

That should work for you :)