Skip to content
This repository has been archived by the owner on Mar 17, 2024. It is now read-only.

使用DNS OVER TLS时 空指针闪退[Bug] #96

Closed
QuietStone opened this issue May 15, 2022 · 13 comments
Closed

使用DNS OVER TLS时 空指针闪退[Bug] #96

QuietStone opened this issue May 15, 2022 · 13 comments
Labels
bug Something isn't working

Comments

@QuietStone
Copy link

QuietStone commented May 15, 2022

Describe the bug【描述 bug】
使用tls:// 来解析域名IP 提示错误

To Reproduce【如何复现该bug】
在client.toml文件[dns]配置中使用tls://dns.google

Expected behavior【预期的行为】

可以正常使用

Envs (please complete the following information):【系统环境】

windows 和 Android使用verysimple做客户端时

Config file 【配置文件,客户端服务端配置都提供】

Debug Log 【Debug日志, 客户端 和 服务端 的 日志 都提供】
Screenshot_2022-05-15-14-58-47-81_84d3000e3f4017145260f7618db1d683

Other 【其他】

【注意,配置文件和客户端服务端配置 太长的话,前后加上三个 ```】
对不起 我没有说清楚 在dns.google后加端口853或443程序直接出现错误退出。是我提问题不够严谨,没有完全说清楚。
Screenshot_2022-05-15-15-19-13-61

@QuietStone QuietStone added the bug Something isn't working label May 15, 2022
@e1732a364fed
Copy link
Owner

都告诉你了 missing port.

那么你就用 tls://dns.google:443

multi.client.toml 里的示例 不就是加了port吗,你没看?

@e1732a364fed e1732a364fed added invalid This doesn't seem right and removed bug Something isn't working labels May 15, 2022
@e1732a364fed
Copy link
Owner

而且也不一定是443端口,一般是 853端口。具体你要看那个 dns 服务器 监听的事哪个端口

@QuietStone
Copy link
Author

QuietStone commented May 15, 2022

而且也不一定是443端口,一般是 853端口。具体你要看那个 dns 服务器 监听的事哪个端口

对不起是我提出问题的时候没有说清楚,在提问前dns.google后面加端口我试了的。不管是853还是443运行程序后直接报错退出。错误截图我放在提出的Issue里面了。再次打扰深感抱歉 E大

@e1732a364fed
Copy link
Owner

不早说清楚,

@e1732a364fed e1732a364fed reopened this May 15, 2022
@e1732a364fed e1732a364fed added bug Something isn't working and removed invalid This doesn't seem right labels May 15, 2022
@e1732a364fed
Copy link
Owner

这种错误是空指针闪退,明显不是仅局限于 某个域名的问题,似乎是更大的问题。

当时 tls功能只测了一遍,然后后来各种改动代码后就没再测tls,所以可能是遗留了很长时间的bug? 还要仔细查看是什么问题。

@e1732a364fed e1732a364fed changed the title 使用DNS OVER TLS时 dns.google无法连接[Bug] 使用DNS OVER TLS时 空指针闪退[Bug] May 15, 2022
@e1732a364fed
Copy link
Owner

我现在有了一定的推测,但是你不听话,没按bug模板 提交 配置文件,现在请求你上传 配置文件,以及完整的日志。配置文件上传 配置 dns 一端 的文件即可。

@e1732a364fed
Copy link
Owner

现在的推测是,一个配置 所给出的 “默认dns” 必须是能连上的。

就是说,如果该dns配置是你 dns 的 servers 列表中的 第一个 ,它就是 默认 dns;它必须能连上,也就是说它必须不被墙。

如果被墙,可能会有这种情况:无法拨通。在无法拨通时,是会有一个空指针存在的。

@e1732a364fed
Copy link
Owner

如果是我推测的这种情况的话,补救措施就是,按 multi.client.toml 的 指导 去设置 dokodemo , 然后 通过你的节点 来请求dns。

@QuietStone
Copy link
Author

如果是我推测的这种情况的话,补救措施就是,按 multi.client.toml 的 指导 去设置 dokodemo , 然后 通过你的节点 来请求dns。

配置文件
Screenshot_2022-05-15-19-26-42-62

debug日志
Screenshot_2022-05-15-19-25-40-95

@QuietStone
Copy link
Author

如果是我推测的这种情况的话,补救措施就是,按 multi.client.toml 的 指导 去设置 dokodemo , 然后 通过你的节点 来请求dns。

使用dokodemo target参数不能使用tls吧 我好像试过不行的

@e1732a364fed
Copy link
Owner

嗯,你的配置文件正好符合我的推测。

我在最新代码里应该解决了闪退问题。但是 你依然要保证 默认dns服务器真实有效。

dokodemo的问题吗,我思考一下

@QuietStone
Copy link
Author

现在的推测是,一个配置 所给出的 “默认dns” 必须是能连上的。

就是说,如果该dns配置是你 dns 的 servers 列表中的 第一个 ,它就是 默认 dns;它必须能连上,也就是说它必须不被墙。

如果被墙,可能会有这种情况:无法拨通。在无法拨通时,是会有一个空指针存在的。

经测试本地网络ping dns.google解析成了8.8.4.4 使用tls://8.8.4.4:853可以使用DOT

@e1732a364fed
Copy link
Owner

e1732a364fed commented May 15, 2022

另外日志和配置文件不要发截图,直接全选拷贝文字,发文字。

现在的推测是,一个配置 所给出的 “默认dns” 必须是能连上的。
就是说,如果该dns配置是你 dns 的 servers 列表中的 第一个 ,它就是 默认 dns;它必须能连上,也就是说它必须不被墙。
如果被墙,可能会有这种情况:无法拨通。在无法拨通时,是会有一个空指针存在的。

经测试本地网络ping dns.google解析成了8.8.4.4 使用tls://8.8.4.4:853可以使用DOT

哦?难道是需要配置ip,不能配置 域名,我再看看代码。

还真是。最新代码应该修复了。

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants