最近有个需求,要解析域名背后的 ip ,用 go 原生库的 net.LookupIP 函数就能做到,但是对国外的域名解析的不知道正不正确,我试了几个像 twitter.com ,facebook.com 解析出的 ip 地址,用在线网站 ip 反查域名,发现对应的域名都是些奇怪的网站,不是 twitter.com 。有人知道有什么第三方库能做到吗?

cdn 和 dns 负载均衡了解下

做不到

这和语言就什么关系?
完全是 dns 的问题。
1 ,翻墙,防止 dns 投毒
2 ,使用 doh/dot

找个国外的 dns 服务器,然后用 doh ,dot 或者 doq 去解析

被局域网耽误的萌新啊,一个新世界的大门正在向你打开

国内有骨干网 DNS 投毒污染,用国外的网络就正常了

可是,你是怎么上的 v2……

楼主是肉身国外还是用着什么公司内网?不知道墙的存在还能来 v2 提问?

首先你得确保 dns 是可靠的

go 调用的是本地 dns ,你要保证结果正确,首先要找个国外 vps 然后放上去跑

你自己指定使用国外的 dns 就行了

DNS over HTTPS
developers.cloudflare.com/1.1.1.1/encryption/dns-over-https/

用这方案解析吧

上面说的 DNS over HTTPS 是正解。
但是国内的 doh 还是不干净,所以需要你在墙外弄一个反代到 quad9 或者 cloudflare 的 doh 服务,
然后给自己的服务申请好 IP 证书,直接通过 IP 访问反代服务 (e.g. 1.2.3.4)。

关键词: doh, reverse proxy, ip cert

P.S. IP 证书可以用 www1.hi.cn 或者我写的这个小工具 github.com/tinkernels/zerossl-ip-cert

可以啊,180 天后面也可以续是吧

强啊大佬,IP 证书还是用的 zero ssl 吗?

这个世界的 bug 终于还是被你发现了

这都不知道是怎么上的 V 站呢🤔

通过

net.resolver
prefergo

自定义 dns server 即可

因为 DNS 通常使用裸奔的 UDP 用户层协议,加密一下就可以啦,Rust 实现: github.com/develon2015/dnsd

建议楼主找几个 doh 库来解析海外域名的 IP

curl -H 'accept: application/dns-json' ' cloudflare-dns.com/dns-query?name=p00q.cn'

你知道的太多了,peng ~~~

www1.hi.cn 的证书可是以直接用 acme.sh 申请并添加定时任务更新, zerossl 目前 ip 证书没有开放 acme 所以我才写了工具。

有几个 IP 在用 zerossl 的证书,目前均可自动更新

方便请教一下如何污染 DNS 吗 ? 真的一点思路都没有
DNS 是一台服务器,无非就是自己维护了一张键值表给网民解析 ip ,污染不等于你都直接怼到人家数据库修改了数据吗 ?还是有别的方式 ?

大佬方便看一下 25 楼我提的问题吗 ?不干净和污染到底如何造成的 ?或者是我想得太复杂 等于 DNS 本来就是本身控制 运维自己把数据搞脏 ?

DNS 协议起初是明文 UDP 的, 而 UDP 包本身就容易被伪造 (甚至可直接伪造来源 IP),何况还是明文。
想想当年的运营商 HTTP 劫持加广告的事都出现了就好理解了。

我回忆了一下,我注意到这个问题大概是二十几年前

大神 有点点悟到了 可是还有个小问题:中间人劫持的话 他怎么做到监听用户呢 ? 不管 TCP/UDP 都是基于 IP 协议,路由的路径是不一定的,所以如何做到劫持如此大量的用户 ?

BTW:ISP 劫持 HTTP 加入广告就是因为所有人都是通过他进出口,等于可以监听所有他的所属用户群体,很容易去做这件事情