標題:
V2Ray —— An intelligent DNS server (没有污染、人性化DNS服务器)
[打印本頁]
作者:
角色
時間:
2019-2-19 01:03
標題:
V2Ray —— An intelligent DNS server (没有污染、人性化DNS服务器)
本帖最後由 角色 於 2019-2-19 11:12 編輯
在大陆如果用国内的DNS servers,如114.114.114.114,国内的hostnames解到IP是没有问题的,99.99%都正确,国外大部分都是可以,但是我们常看如Facebook,YouTube,Twitter等等一定不可以,而他们有一个大清单[1], 经常污染国内的大型DNS servers,所以有的时候是可以连到,但是有的时候就连不上。就算我们采用国外的DNS servers,如8.8.8.8 and 1.1.1.1等,在离开你家里的路由器,这样的DNS IP被转到大陆的DNS servers,看看你的需要解开什么hostname,例如
www.facebook.com
,大陆系统会给你一个美国别家公司的IP给你,其他不在他们的黑名单里就放行到8.8.8.8的server。
那么我们怎么办呢?
坊间有不少方法解决这个问题,而今天我和大家分享就是利用V2Ray,把它变成一个由智能的DNS server。
在V2Ray最初开发期间,开发dokodemo的inbound,就是把“所有”DNS port 53的访问都撞到国外的DNS server,如8.8.8.8,在经过V2Ray的outbound (proxy)到国外的V2Ray节点[2]。这个方法有一个不好的地方,就是把所有DNS requets都100%传到海外的服务器,就算国内的hostnames都一样,例如
www.cctv.com
,大陆和国外都有当地IP地址,意思如果大陆解是大陆的IP,国外解救是国外的IP,因为你在大陆用,最好DNS回来都是大陆IP,而不是国外IP。这对于需要上的大陆IP的CCTV,爱奇艺就会不让你看。那么这样的DNS server不够人性化。
最近V2Ray在v4.15 and v4.16提出了出站dns和有关连接方式,那么V2Ray就可以变成一个非常intelligent的DNS server,意思就是如果大陆的hostnames就通过大陆的DNS去解,而大陆以外的hostname就通过dokodemo(via V2Ray outboud proxy)到国外的DNS server。
References:
[1] 想知道你的hostnames是否在黑名单上?
Link
[2]
https://v2ray.com/chapter_02/protocols/dokodemo.html
作者:
角色
時間:
2019-2-19 01:08
本帖最後由 角色 於 2019-2-19 11:46 編輯
The local node (v2ray client) configuration file /etc/v2ray/config.json contains
{
"dns": {
"servers": [
"8.8.8.8",
{
"domains": ["geosite:cn"],
"port": 53,
"address": "114.114.114.114"
},
"localhost"
]
},
"inbounds": [
{
"port": 1081,
"listen": "192.168.55.22",
"protocol": "socks",
"sniffing": {
"enabled": true,
"destOverride": ["http","tls"]
},
"settings": {
"udp,tcp": true
}
},
{
"protocol": "dokodemo-door",
"port": 53,
"tag": "dns-in",
"listen": "192.168.55.22",
"settings": {
"address": "8.8.8.8",
"port": 53,
"network": "udp,tcp"
}
}
],
"outbounds": [
{
"protocol": "vmess",
"settings": {
"vnext": [
{
"address": "123.123.123.123", #你的大陆地区以外V2Ray节点(server)
"port": 10086,
"users": [
{"id": "UUID"}
]
}
]
}
},
{
"protocol": "freedom",
"tag": "direct",
"settings": {}
},
{
"protocol": "dns",
"tag": "dns-out"
}
],
"routing": {
"domainStrategy": "IPIfNonMatch",
"rules": [
{
"type": "field",
"inboundTag": "dns-in",
"outboundTag": "dns-out"
},
{
"type": "field",
"outboundTag": "direct",
"domain": [ "geosite:cn" ]
},
{
"type": "field",
"ip": ["geoip:private"],
"ip": ["geoip:cn"],
"outboundTag": "direct"
}
]
}
}
複製代碼
作者:
角色
時間:
2019-2-19 01:11
因为我把上面的configuration file放入Raspberry Pi的Raspbian,default settings不要port 53,所以我提供的port 53 dokodemo就不会受到任何影响。如果你的server有DNS server,那么你需要把它关掉,不然会产生冲突!
作者:
角色
時間:
2019-2-19 01:18
本帖最後由 角色 於 2019-2-19 10:06 編輯
我们通过socks proxy或http proxy接入V2Ray的node(client),所有DNS request都是通过socks 或http proxy,然后转到远方的V2Ray node(server)去解hostname。只有port 80和port 443需要用到programs才有用,例如我们用browsers上网才有用,其他如ping,nslookup,dig,winbox login等等要resolve hostnames就没有用!但是有了上面的intelligent DNS server,所有系统需要resolve hostnames的DNS request都可以用到。
作者:
角色
時間:
2019-2-19 11:08
在大陆怎样使用这智能化的DNS server呢?
在你大陆的router,一般设定都是你router的IP,但是只要你把router里DNS设为你Intelligent DNS server IP就可以。那么自动自动连接的devices(通过DHCP server派发)就可以自动驱动DNS的IP,使用上就非常方便。
歡迎光臨 電訊茶室 (http://telecom-cafe.com/forum/)
Powered by Discuz! 7.2