我无法保留我通过/etc/resolv.conf
. 每次我设置该值时,网络管理器都会在重新启动时使用默认网关覆盖它。
如何正确设置?
除了在路由器中更改名称服务器之外,我更喜欢一种方法。
我正在运行 Ubuntu 12.04,我正在尝试 ping 以下系统:
我的resolv.conf
# internal dns servers
nameserver 1.1.1.151
nameserver 1.1.1.152
search oldcompany.com fing.oldcompany.com newcompany.com thing.newcompany.com
#domain thing.newcompany.com
domain oldcompany.com
#domain fing.oldcompany.com
#domain newcompany.com
#nameserver 8.8.8.8 #commented out due to other issues
Run Code Online (Sandbox Code Playgroud)
如果我不注释所有这些行,我将无法 ping system0 或 system1。如何设置它以便仅使用其域名就可以 ping 所有 4 个系统?在 Windows 中,它解析每个系统。
ping system0
ping: unknown host system0
ping system1
ping: unknown host system1
Run Code Online (Sandbox Code Playgroud)
我一直在尝试阅读resolv.conf 上的手册页,但在解决此问题时仍然遇到问题。不幸的是,我公司没有人使用 Linux,所以我只能靠自己。
编辑:更新了搜索,所以它只有 1 行,现在我可以 ping system0 但仍然无法 ping system1。但是,我可以 ping system1.fing 因为它在 oldcompany 域上。
在 Wireshark 中查看我的网络适配器的 DNS 和 SNI,我看到的只是域名和子域名,但斜杠后面没有任何内容,例如没有提及example.com/page
或twitter.com/mypage
所以,我想知道,应用程序或浏览器如何知道在正斜杠之后要访问哪个页面?
浏览器或应用程序是否只需要知道/查询主域或子域的IP地址,然后在其后面简单地添加斜杠?比如192.168.1.1/mypage
Twitter?
我认为这是可行的,但如果斜杠后面的地址有不同的 IP 地址怎么办?例如,Twitter.com
位于192.168.1.1
但Twitter.com/mypage
位于192.168.2.1
?这样做甚至是主流吗?
最后但也是最重要的一点是,如果 DNS 请求/响应和 TLS SNI 字段仅包含网站的子域和主域,这是否意味着我的 ISP 无法确切知道我访问了哪些 Twitter 或 Instagram 页面,只能看到我访问 Twitter.com 和 Instagram.com,只要连接是 HTTPS 即可?
PS 请考虑仅在端口 53 上使用纯文本 DNS,根本不考虑 DoH 或 DoT 等安全 DNS。
更新:阅读此服务器故障帖子中所选答案下的评论回答了我的第一个问题。
在 Windows 中最多可以输入多少个名称服务器?不同版本有区别吗?Linux 最多三个,设置在/usr/include/resolv.h
:
# define MAXNS 3 /* max # name servers we'll track */
Run Code Online (Sandbox Code Playgroud) 我最近意识到我的 VPN 的 DNS 请求被传输到我的 ISP 的 DNS 服务器(即使我的 HTTP 和 HTTPS 请求是通过 VPN 正确传输的)。
我做了一些研究,对 ISP 能够记录的详细程度有几个问题。
我的问题特别是关于 DNS 请求。我知道在这个论坛和相关论坛上还有其他关于 ISP 可以从 HTTP 和 HTTPS 流量中收集的详细信息的问题。
在隐私方面,ISP 将用户的 DNS 请求记录到:
https://www.google.com/
Run Code Online (Sandbox Code Playgroud)
并要求:
https://www.google.com/search?source=hp&q=ultra+left+wing+support
Run Code Online (Sandbox Code Playgroud)
ISP录音之间有区别:
https://www.reddit.com/
Run Code Online (Sandbox Code Playgroud)
和:
https://www.reddit.com/r/hot-babes
Run Code Online (Sandbox Code Playgroud)
我的理解是,从用户到(ISP 的)DNS 服务器的 DNS 查询将显示主机(https://www.google.com/),但不会显示特定搜索词或 TLD 之后的 URL 的任何部分(例如 .com )。这样对吗?
我在询问 HTTP 和 HTTPS,尽管我看不出 DNS 请求会有什么不同。
换句话说,ISP 可以记录用户访问的站点(通过他们的 DNS 查找日志),但不能记录用户在搜索引擎中进行的搜索查询或用户访问的站点的特定页面. 为此,当用户直接访问网站页面时,ISP 必须记录 URL。这是正确的吗?
这个问题来自这个话题。当我这样做时,我会得到剩余的秒数,直到查询的名称服务器中的 A 记录过期:
dig stackexchange.com
Run Code Online (Sandbox Code Playgroud)
但是,如果我这样做,我会得到权威的 TTL 值:
dig any stackexchange.com
Run Code Online (Sandbox Code Playgroud)
所以,我不明白为什么dig any stackexchange.com
当我真正进行递归查询时,我得到所有 TTL 值,就好像我做了一个权威问题一样。
为我们的名称服务器切换主机。DNS 记录在旧名称服务器和新名称服务器上都设置。我想在切换 SOA 之前测试新的,并想知道在提交之前测试它们的最佳方法是什么?
我的dig
技能很弱。理想情况下,我会强制我的本地机器为我们的域使用新的名称服务器,以便我可以检查 HTTP 和 HTTPS 服务是否正常工作。
我试图了解公共 DNS 名称服务器的用途(公共而不是 SOA;例如 8.8.8.8)。
我执行了一个dig +trace
命令,据我所知,唯一使用名称服务器的时间是在查找根域的 SOA 时.
。之后,查询层次结构中每个域的 SOA。
我的假设是公共名称服务器用于:
我有3个问题:
我的假设正确吗?
如果这些真的是名称服务器所做的唯一事情,如果我不需要缓存并且愿意自己进行递归查询,我可以停止使用名称服务器吗?
在我的 PC 中,我使用 Google 公共 DNS 作为我的 DNS 服务器。在 Internet 协议 (TCP/IP) 属性中,我将首选 DNS 服务器设置为 8.8.4.4,将备用 DNS 服务器设置为 8.8.8.8。
根据我的说法,这个 DNS 服务器应该用于通过使用这个 DNS 服务器来解析对网站的任何请求到它的 IP(请参阅Google DNS和域名服务器如何工作)。
但是当我在我的 PC 中检查到一个网站的跟踪路由时,我得到了以下输出:
Tracing route to www.google.com [74.125.236.80] over a maximum of 30 hops:
1 <1 ms <1 ms <1 ms 192.168.1.201
2 360 ms 349 ms 292 ms 122.178.216.1
3 145 ms 107 ms 148 ms 122.166.32.121
4 32 ms 53 ms 120 ms 122.166.32.9
5 45 ms 42 …
Run Code Online (Sandbox Code Playgroud) nameserver ×10
dns ×9
networking ×3
linux ×2
dig ×1
domain ×1
ip-address ×1
macos ×1
privacy ×1
router ×1
search ×1
security ×1
vpn ×1
webserver ×1
windows ×1