Board logo

標題: 【官网V2Ray - 技术跟踪】—— v4.15 [打印本頁]

作者: 角色    時間: 2019-2-7 12:09     標題: 【官网V2Ray - 技术跟踪】—— v4.15

Source:https://v2ray.com/chapter_00/01_versions.html
v4.15

今天发现官网V2Ray有出现新的东西,预计是明白发布,但是还没有写全。

是一个outbound protocol,没有inbound,估计inbound是用Dokodemo做inbound,然后outbound用这个DNS,然后转发内部的DNS object去处理。看看过几天有什么新的进展。
作者: 角色    時間: 2019-2-8 12:41

https://v2ray.com/chapter_02/protocols/dns.html,昨天都是
  1. OutboundObject
複製代碼
.

今天改为跟其他outbound的术语一致
  1. OutboundConfigurationObject
複製代碼
.

那么在 https://v2ray.com/chapter_02/01_overview.html
的OutboundObject就可以用了
  1. OutboundObject
  2. 出站连接用于向远程网站或下一级代理服务器发送数据,可用的协议请见协议列表。

  3. {
  4.   "sendThrough": "0.0.0.0",
  5.   "protocol": "协议名称",
  6.   "settings": {},
  7.   "tag": "标识",
  8.   "streamSettings": {},
  9.   "proxySettings": {
  10.     "tag": "another-outbound-tag"
  11.   },
  12.   "mux": {}
  13. }
複製代碼

作者: 角色    時間: 2019-2-8 23:07

本帖最後由 角色 於 2019-2-10 20:56 編輯

V2Ray/Core里都有讨论这个问题[1,2]:

怎样用?怎样在rule里加一句[1]
[code]
{
  "type": "field",
  "network": "udp",
  "port": 53,
  "protocol": ["dns"],
  "outboundTag": "dns_outbound"
}
/code]

References:
[1] https://github.com/v2ray/v2ray-core/issues/1401
[2] https://github.com/v2ray/discussion/issues/24
作者: kingwilliam    時間: 2019-2-12 15:11

v2ray 官網 blog, 細說dns的用法

https://steemit.com/cn/@v2ray/dns
作者: 角色    時間: 2019-2-12 15:35

本帖最後由 角色 於 2019-2-12 16:16 編輯

谢谢CHing,上次关于透明代理一事,V2Ray有监听port 53,Linux系统都有自己的DNS, 当时说两只都有强者回答,看看谁能先回答。这个问题还没能切地明白DNS request怎样处理!?

难度因为我们不知道V2Ray的发展史?就是最初没有dokodemo protocol,只有socks and http inbounds。而V2Ray的dns object是服务于socks and https inbounds是的DNS requests用。

而你说systemd-resolved service与V2Ray server listening port 53一样(不过他们是否有先后,如果一齐起是否系统会提示有冲突?)看谁先起来就用谁?
作者: 角色    時間: 2019-2-12 16:23

我看过有些用dokodemo,port number用5353,就是要避开systemd-resolved service(port 53)抢!一般device的DNS查询都是port 53,这需要一个device(MikroTik router)把53转成5353去做也可以。

像你那样说,停用systemd-resolved service是一种方法,但是我估计是否可能用iptables方法,把port 53的查询撞到dokodemo port 53?
作者: kingwilliam    時間: 2019-2-12 16:30

本帖最後由 kingwilliam 於 2019-2-12 16:32 編輯

回復 5# 角色


    先不要理會 v2ray內的dns設定, 同時假設 v2ray 是一個dns 服務, 這樣會好理解點.

因linux系統內原生會有一個systemd-resolved的dns服務是用端口udp53,是給linux 自用的.
但如果啟動v2ray服務, 同時也會用udp53的話, 就會做成兩個服務互搶udp53端口.
如這時有一個客戶問這台linux udp53取dns資料, 因有兩個服務互搶udp53端口, 就要看誰回答快,
客戶就會一時用了v2ray的回應,就可上網, 一時系統systemd-resolved回應, 就出現沒有回應.

解決方法跟之前說的一樣
1. 是v2ray內不用dns服務, 客戶直接用 8.8.8.8 或 1.1.1.1
2. 是啟動v2ray內的dns, 但就停用linux系統內的systemd-resolved.
2a. 須然在(2)說停用linux系統內的systemd-resolved. 但不會對系統做成不能訪問互聯網, 因停了systemd-resolved後, 要給回系統一個dns server 如114.114.114.114.這樣系統就可正常訪問戶聯網, 又可給回udp53.
作者: kingwilliam    時間: 2019-2-12 16:43

本帖最後由 kingwilliam 於 2019-2-12 16:48 編輯

回復 6# 角色


    用iptables轉發53到5353當然也一個方案. 視每個人的系統設定.

Remarks
我也曾經了解過, 最後還是沒用, 原因就是我不太會用linux, iptables更甚,
另一些原因是 我的ubuntu只安裝v2ray 沒有其他, 所以systemd-resolved服務對我沒用.
所以我選擇了對自己來說簡單一點的方案, 停用systemd-resolved.
作者: 角色    時間: 2019-2-12 16:50

本帖最後由 角色 於 2019-2-13 11:21 編輯

谢谢CHing的信息,今天我再看V2Ray官网和白话文,我现在可以明白整个故事。

他们(官网和白话文)是这样做的,当packets进入network interface后,先经过firewall(用iptables去configure),然后才进入local process(systemd-resolved,v2ray的list port 53 dokodemo),如果在firewall里已经把packets (包括DNS request port 53)转到V2Ray的port 12345 dokodemo,那么 V2Ray就会通过outboud出去remote server(Freeworld Internet including DNS request)需求答案和浏览网页!!!!




歡迎光臨 電訊茶室 (http://telecom-cafe.com/forum/) Powered by Discuz! 7.2