本帖最後由 kingwilliam 於 2019-11-12 11:10 編輯
回復 40# harold
前置:
1. 你的router已安裝有dns服務, 而port是用5301
2. 你的router dns服務會forward到你ISP提供給你的 DNS服務器(可能是114.114.114.114)
3. 假設你的router IP 是 192.168.0.254
4. 假設你network client
ip : 192.168.0.101
nm : 255.255.255.0
gw : 192.168.0.254
dns : 192.168.0.254
這樣設定的話, 你的router會有2個dns服務
192.168.0.254:53 (v2ray提供)
192.168.0.254:5301 -> 114.114.114.114 (系統設定)- "dns": {
- "servers": [
- {
- "address": "223.5.5.5",
- "port": 53,
- "domains": ["geosite:cn"]
- },
- "8.8.8.8","1.1.1.1"
- ]
- },
- "rounting: [
- "rules: [
- {
- "type": "field",
- "inboundTag": "dns-in",
- "outboundTag": "dns-out"
- }
- ]
- ],
- "inbounds": [
- {
- "tag": "dns-in",
- "port": 53,
- "protocol": "dokodemo-door",
- "settings": {
- "address": "127.0.0.1",
- "port": 5301,
- "network": "udp,tcp"
- }
- }
- ],
- "outbounds": [
- {
- "tag": "dns-out",
- "protocol": "dns"
- }
- ]
複製代碼 5. 上面的設定基本上是配合透明代理而設定, 在(4)的client設定都看到 dns都是指著v2ray. 但v2ray dns只能處理 A和AAAA 記錄, 但dns是一個非常大的系統 還有ns(name server), mx(mail exchange) 很多很多. 所以v2ray 內的dns 要先分流 A,AAAA 和其他的記錄處理.
6. 例A: client要看www.google.com,
- v2ray 流程是 [inbounds] -> [routing] -> [outbounds]
- client 會發出 dns 要求問 192.168.0.254:53 www.google.com的IP
- v2ray inbounds dns-in 53 會收到要求
- routing "inboundTag": "dns-in" -> "outboundTag": "dns-out"
- outbounds "dns-out" 分流 如要求A,AAAA紀錄 就用 v2ray dns
- v2ray dns 會看要求的 FQDN是否在 "domains": ["geosite:cn"] 如果是就用 223.5.5.5 不是就用 "8.8.8.8","1.1.1.1"
- 所以www.google.com ip就是由 "8.8.8.8","1.1.1.1" 回答的
- 當然, 如果要求是 www.taobao.com 就會由 223.5.5.5 回答
7. 例B: client要發電郵到 jd.com
- v2ray 流程是 [inbounds] -> [routing] -> [outbounds]
- client 會發出 dns 要求問 192.168.0.254:53 jd.com 的mx紀錄
- v2ray inbounds tag dns-in 53 會收到要求
- routing "inboundTag": "dns-in" -> "outboundTag": "dns-out"
- outbounds "dns-out" 分流 如要求A,AAAA紀錄 就用 v2ray dns, 如果要求是其他dns紀錄就會用原生帶來的dns服務器.
- 因在 inbounds dns-in 是帶來 127.0.0.1:5301, 所以v2ray 就會問127.0.0.1:5301取jd.com的mx紀綠
Q1:如果加咗啲句即是當連上v2ray, 所以DNS 都由"8.8.8.8","1.1.1.1" OR "223.5.5.5"走, port 5301 就唔會再forward, 我的想法正確嗎? 請指考!!
A1:就算只用來上網 也不能, 上面已輕輕帶過 dns是一個很大的系統, 就算只上網 除了A,AAAA紀錄外, 還有 cname, ns限多限多, 所以在7.例B會看到dns dokodem-door帶來的127.0.0.1:5301如何參與運作.
Q2:如果正確, 當我長期用v2ray, "tag": "dns-in", 是否可以不用指去5301? 直指8.8.8.8 會有乜結果?
A2:互聯網是一個全球系統.如果www.taobao.com只得1個伺服器在國內, 如在美國的客戶想采購, 就要越洋過來, 速度非常慢外, 也會另系統超負荷,所以就發展出geodns, 即你身在國內www.taobao.com會可能取到 4.5.6.7的國內ip, 如在美國去www.taobao.com 會取到美國16.17.18.19美國 ip. 簡單點講 就是 淘寶可在全球放上數個到數十個伺服器, 根據你在不用地方,就給你最近的伺服器. 如果你的vps在美國, 如沒了dns server geosite:cn分流, 全都用vps那邊的dns. 你就會發現, 就算你身在國內去淘寶都會非常慢, 看到的物品可能全是國外的物品, 愛奇藝會說你地區限制不能播放. 所以v2ray才有dns分流. 所以8.8.8.8,1.1.1.1,223.5.5.5和 127.0.0.1:5301最好全都保留.
最後 8.8.8.8 1.1.1.1只要留一個就可以. |