我需要在 DNS 中为我的主机设置 SSHFP 记录。我已经做了一些搜索,但我还没有找到任何好的例子。
--helpcurl的输出列出了一个--resolve选项,其中指出
--resolve <host:port:address> Force resolve of HOST:PORT to ADDRESS
Run Code Online (Sandbox Code Playgroud)
尽管如此,我没有任何运气让它工作。我试图运行的基本命令是
curl --resolve foo.example.com:443:localhost https://foo.example.com:443/
Run Code Online (Sandbox Code Playgroud)
我不断收到回应Couldn't resolve host 'foo.example.com'。我想这样做是因为我正在测试 foo.example.com 的证书,但我没有在实际服务器上测试它。相反,我在一个虚拟机器上测试它。我知道我可以编辑/etc/hosts以便 foo.example.com 解析为 localhost,但是如果我可以使它工作,这种 curl 方法似乎是“正确”的方法。
有人看到我在这里做错了吗?
我试图检查我的 DNS 解析器是什么,我注意到了这一点:
user@ubuntu:~$ cat /etc/resolv.conf
nameserver 127.0.0.53
options edns0
Run Code Online (Sandbox Code Playgroud)
我期待192.168.1.1,这是我的默认网关,我的路由器。
我不明白为什么它指向127.0.0.53. 当我点击那个 ip 时,apache2 会为我提供它的内容。有人可以帮我解决这个问题吗?文件不应该直接指向我作为 DNS 解析器的默认网关 - 或者甚至更好地直接指向我首选的 DNS1.1.1.1吗?
PS:当我在端口 53 上使用 wireshark 捕获 DNS 数据包时,我看到的只是192.168.1.1和 不是127.0.0.53,正如它应该的那样。
据我所知,该hosts文件是帮助在计算机网络中寻址网络节点的几种系统工具之一。但里面应该有什么?当我默认安装 Ubuntu 时
127.0.0.1 localhost
Run Code Online (Sandbox Code Playgroud)
将在那里。为什么?
/etc/hosts在 Cassandra 等 JVM 系统的情况下如何工作?如何清除路由器上 DD-WRT 中的 DNS 缓存?
DD-WRT 使用 dnsmasq 守护进程。
我发现我的 ISP (verizon) 正在拦截端口 53 上的所有 DNS 流量。
使用 iptables,我想将所有 DNS 查找流量重定向到特定的 IP 和端口 (5353)。我的计算机在端口 53 上连接到另一台计算机的任何尝试都应重定向到 23.226.230.72:5353。
为了验证我尝试使用的 DNS 服务器和端口,我运行了这个命令。
~$ dig +short serverfault.com @23.226.230.72 -p5353
198.252.206.16
Run Code Online (Sandbox Code Playgroud)
这是我尝试使用的 iptables 规则。
iptables -t nat -A OUTPUT -p udp -m udp --dport 53 -j DNAT --to-destination 23.226.230.72:5353
Run Code Online (Sandbox Code Playgroud)
添加该规则后,未找到所有 DNS 查找。网站 ping 返回unknown host。网页显示“找不到服务器”。
~$ mtr serverfault.com
Failed to resolve host: Name or service not known
Run Code Online (Sandbox Code Playgroud)
我希望我的 DNS 查询从 23.226.230.72:5353 中提取。如何使 iptables 规则起作用?
编辑
我的 ISP 拦截 DNS(端口 53)的演示。通过端口 5353 …
我知道我们可以dig -x用来执行反向 DNS 查询。
我面前有一本教科书,上面说dig ptr和dig -x都是有效的语法。
dig -x绝对适合我,但我没有得到答案dig ptr:
~ $ dig ptr 216.239.34.10
; <<>> DiG 9.8.3-P1 <<>> ptr 216.239.34.10
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 41447
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;216.239.34.10. IN PTR
;; AUTHORITY SECTION:
. 10800 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2016113001 1800 900 604800 86400
;; …Run Code Online (Sandbox Code Playgroud) 我使用 Chromium 并且遇到了 DNS 没有在我期望的时间内被缓存的问题。以 example.com 域为例。根据 DNS 设置,此域应再缓存 26151 秒:
$ dig example.com
;; ANSWER SECTION:
example.com. 26151 IN A 93.184.216.34
Run Code Online (Sandbox Code Playgroud)
但是,当我在 Chromium 中打开 example.com 并打开 chrome://net-internals/#dns 时,IP 会在一分钟内忘记!
为什么 Chromium 不遵守域的 DNS 设置的 TTL?如何强制它缓存 DNS 数据直到它们过期?
有一个网站 www.example.com,我试图阻止自己访问,因为它浪费了我太多的时间。所以我配置了我的 /etc/hosts文件。我添加了以下几行,以阻止 IPv4 和 IPv6 上的网站:
127.0.0.1 www.example.com
::1 www.example.com
127.0.0.1 http://www.example.com
::1 http://www.example.com
127.0.0.1 example.com
::1 example.com
Run Code Online (Sandbox Code Playgroud)
我重新启动了我的电脑,但我不能wget www.example.com,pingwww.example.com工作正常,但我的浏览器实际上并没有阻止该网站!我仍然可以在 Firefox 28 和 Chromium 中访问它。