如何让 Firefox 使用 TCP 进行 DNS

min*_*ill 4 linux firefox dns tcp

我想将 TCP 用于 DNS,以绕过我的 ISP 缓慢且损坏的 DNS 服务器。我没有使用(也不想使用)代理。

注意:我想通过 TCP 使用 DNS,因为如果我通过 udp 使用它,无论我设置什么服务器,我都会从 ISP 的 DNS 获得答案。

请注意,我会强烈反对任何建议的人:

  • 通过 DNS 执行 TCP 的程序,
  • about:config使 DNS 也通过代理的设置:我没有使用代理,
  • 使用另一个 DNS:我已经将 Google 设置为我的 DNS,但我被拦截了。

我所说的拦截的意思的例子:

$ dig @8.8.8.8 thepiratebay.se

; <<>> DiG 9.8.1 <<>> @8.8.8.8 thepiratebay.se
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24385
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;thepiratebay.se.               IN      A

;; ANSWER SECTION:
thepiratebay.se.        28800   IN      A       83.224.65.41

;; Query time: 50 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sun Sep 16 22:51:06 2012
;; MSG SIZE  rcvd: 49

$ dig +tcp @8.8.8.8 thepiratebay.se

; <<>> DiG 9.8.1 <<>> +tcp @8.8.8.8 thepiratebay.se
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15131
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;thepiratebay.se.               IN      A

;; ANSWER SECTION:
thepiratebay.se.        436     IN      A       194.71.107.15

;; Query time: 61 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sun Sep 16 22:51:10 2012
;; MSG SIZE  rcvd: 49
Run Code Online (Sandbox Code Playgroud)

如果重要的话,我在 Gentoo Linux 上使用 Firefox 14。

小智 7

安装Unbound,然后在 unbound.conf 配置文件中将“tcp-upstream: no”更改为“yes”。

# upstream connections use TCP only (and no UDP), "yes" or "no"
# useful for tunneling scenarios, default no.
# tcp-upstream: no
Run Code Online (Sandbox Code Playgroud)

为了通过上游解析器解析所有内容,添加如下内容:

forward-zone:
    name: "."
    forward-addr: 213.154.224.3
Run Code Online (Sandbox Code Playgroud)

您还可以使用dnssec-trigger,这是 Unbound 的便捷用户界面,可将其配置为通过 SSL 连接隧道传输所有内容。