Code Monkey home page Code Monkey logo

discussion's People

Contributors

darienraymond avatar kslr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

discussion's Issues

mkcp协议配置问题

From v2ray-core created by cjwddtc : v2ray/v2ray-core#1185

我对kcp不是非常了解,配置选项中的tti的含义让我十分困惑,我记得原版kcp协议是有控制多倍发包的选项的。我是用的线路是cn2 gia,几乎不存在丢包的问题,带宽固定(100mbps),如何配置kcp能够在这种情况下跑满带宽。

TLS配置在A网络可以用,换到B网络不能用,非issue

From v2ray-core created by lewisec : v2ray/v2ray-core#1214

  1. 你正在使用哪个版本的 V2Ray?(如果服务器和客户端使用了不同版本,请注明)
    服务器和客户端都是v3.22

  2. 你的使用场景是什么?比如使用 Chrome 通过 Socks/VMess 代理观看 YouTube 视频。
    chrome通过socks代理上google

  3. 你看到的不正常的现象是什么?(请描述具体现象,比如访问超时,TLS 证书错误等)
    在A网络下,一切正常。
    在B网络下,所有被墙的网站打不开。
    现在可以判断肯定是B网络有限制,但是无法确认是v2ray的哪部分流量触发了B网络的限制条件。
    已知B网络中对DNS有限制,只能DNS查询B网络中指定的DNS Server。

贴出来细节请各位指点迷津,究竟应该如何配置才能绕过B网络的限制。

  1. 你期待看到的正确表现是怎样的?
    在B网络下也能上google

  2. 请附上你的配置(提交 Issue 前请隐藏服务器端IP地址)。

    服务器端配置:

{
  "log": {
    "access": "/var/log/v2ray/access.log",
    "error": "/var/log/v2ray/error.log",
    "loglevel": "warning"
  },
  "inbound": {
    "port": 443,
    "protocol": "vmess",
    "settings": {
      "clients": [
        {
          "id": "2XXX-XX-XX-XX-XX",
          "alterId": 64
        }
      ]
    },
    "streamSettings": {
      "network": "tcp",
      "security": "tls",
      "tlsSettings": {
        "certificates": [
          {
            "certificateFile": "/etc/v2ray/v2ray.crt",
            "keyFile": "/etc/v2ray/v2ray.key"
          }
        ]
      }
    }
  },
  "outbound": {
    "protocol": "freedom",
    "settings": {}
  },
  "outboundDetour": [
    {
      "protocol": "blackhole",
      "settings": {},
      "tag": "blocked"
    }
  ],
  "routing": {
    "strategy": "rules",
    "settings": {
      "rules": [
        {
          "type": "field",
          "ip": [
            "0.0.0.0/8",
            "10.0.0.0/8",
            "100.64.0.0/10",
            "127.0.0.0/8",
            "169.254.0.0/16",
            "172.16.0.0/12",
            "192.0.0.0/24",
            "192.0.2.0/24",
            "192.168.0.0/16",
            "198.18.0.0/15",
            "198.51.100.0/24",
            "203.0.113.0/24",
            "::1/128",
            "fc00::/7",
            "fe80::/10"
          ],
          "outboundTag": "blocked"
        }
      ]
    }
  }
}
客户端配置:
 {
  "log": {
    "loglevel": "debug"
  },
  "inbound": {
    "domainOverride": [
      "http",
      "tls"
    ],
    "port": 1080,
    "listen": "127.0.0.1",
    "protocol": "socks",
    "settings": {
      "auth": "noauth",
      "udp": false,
      "ip": "127.0.0.1"
    }
  },
  "outbound": {
    "protocol": "vmess",
    "settings": {
      "vnext": [
        {
          "address": "my-server",
          "port": 443,
          "users": [
            {
              "id": "2XXX-XX-XX-XX-XX",
              "alterId": 64
            }
          ]
        }
      ]
    },
    "streamSettings": {
      "network": "tcp",
      "security": "tls"
    }
  },
  "mux": {
    "enabled": false,
    "concurrency": 8
  },
  "outboundDetour": [
    {
      "protocol": "freedom",
      "settings": {},
      "tag": "direct"
    }
  ],
  "dns": {
    "servers": [
      "8.8.8.8",
      "8.8.4.4",
      "localhost"
    ]
  },
  "routing": {
    "strategy": "rules",
    "settings": {
      "domainStrategy": "IPIfNonMatch",
      "rules": [
        {
          "type": "field",
          "domain": [
            "geosite:cn"
          ],
          "ip": [
            "geoip:cn",
            "geoip:private"
          ],
          "outboundTag": "direct"
        }
      ]
    }
  }
}
  1. 请附上出错时软件输出的错误日志。在 Linux 中,日志通常在 /var/log/v2ray/error.log 文件中。

    服务器端错误日志:

    服务器没有错误日志,error.log是空的,access.log也是空的。所以推断应该是B网络有限制,drop了所有请求的数据
客户端错误日志:

2018/07/30 16:02:08 [Info] [90697051] Proxy|Socks: TCP Connect request to tcp:clients1.google.com:443
2018/07/30 16:02:08 [Info] App|Router: looking for IP for domain: clients1.google.com
2018/07/30 16:02:08 [Debug] App|DNS: add pending request id 43256
2018/07/30 16:02:08 [Debug] Transport|Internet|UDP: dispatch request to: udp:8.8.8.8:53
2018/07/30 16:02:08 [Info] Transport|Internet|UDP: establishing new connection for udp:8.8.8.8:53
2018/07/30 16:02:08 [Info] App|Dispatcher: default route for udp:8.8.8.8:53
2018/07/30 16:02:08 [Info] Transport|Internet|TCP: dialing TCP to tcp:myserver:443
2018/07/30 16:02:08 tcp:127.0.0.1:1820 accepted tcp:clients1.google.com:443
2018/07/30 16:02:08 [Info] Proxy|VMess|Outbound: tunneling request to udp:8.8.8.8:53 via tcp:myserver:443
2018/07/30 16:02:08 [Info] App|Proxyman|Outbound: failed to process outbound traffic > Proxy|VMess|Outbound: connection ends > Proxy|VMess|Outbound: failed to read header > Proxy|VMess|Encoding: failed to read response header > EOF
2018/07/30 16:02:08 [Info] Transport|Internet|UDP: failed to handle UDP input > io: read/write on closed pipe
2018/07/30 16:02:09 [Debug] Transport|Internet|UDP: dispatch request to: udp:8.8.8.8:53
2018/07/30 16:02:09 [Info] Transport|Internet|UDP: establishing new connection for udp:8.8.8.8:53
2018/07/30 16:02:09 [Info] App|Dispatcher: default route for udp:8.8.8.8:53
2018/07/30 16:02:09 [Info] Transport|Internet|TCP: dialing TCP to tcp:myserver:443
2018/07/30 16:02:09 [Info] Proxy|VMess|Outbound: tunneling request to udp:8.8.8.8:53 via tcp:myserver:443
2018/07/30 16:02:09 [Info] App|Proxyman|Outbound: failed to process outbound traffic > Proxy|VMess|Outbound: connection ends > Proxy|VMess|Outbound: failed to read header > Proxy|VMess|Encoding: failed to read response header > EOF
2018/07/30 16:02:09 [Info] Transport|Internet|UDP: failed to handle UDP input > io: read/write on closed pipe
2018/07/30 16:02:10 [Debug] Transport|Internet|UDP: dispatch request to: udp:8.8.8.8:53
2018/07/30 16:02:10 [Info] Transport|Internet|UDP: establishing new connection for udp:8.8.8.8:53
2018/07/30 16:02:10 [Info] App|Dispatcher: default route for udp:8.8.8.8:53
2018/07/30 16:02:10 [Info] Transport|Internet|TCP: dialing TCP to tcp:security.lewisec.com:443
2018/07/30 16:02:10 [Info] Proxy|VMess|Outbound: tunneling request to udp:8.8.8.8:53 via tcp:myserver:443
2018/07/30 16:02:10 [Info] App|Proxyman|Outbound: failed to process outbound traffic > Proxy|VMess|Outbound: connection ends > Proxy|VMess|Outbound: failed to read header > Proxy|VMess|Encoding: failed to read response header > EOF
2018/07/30 16:02:10 [Info] Transport|Internet|UDP: failed to handle UDP input > io: read/write on closed pipe
2018/07/30 16:02:12 tcp:127.0.0.1:1819 rejected  Proxy|Socks: insufficient header > read tcp 127.0.0.1:1080->127.0.0.1:1819: i/o timeout
2018/07/30 16:02:12 [Info] [1620491254] App|Proxyman|Inbound: connection ends > Proxy|Socks: failed to read request > Proxy|Socks: insufficient header > read tcp 127.0.0.1:1080->127.0.0.1:1819: i/o timeout
2018/07/30 16:02:16 [Debug] App|DNS: add pending request id 59716
2018/07/30 16:02:16 [Debug] Transport|Internet|UDP: dispatch request to: udp:8.8.4.4:53
2018/07/30 16:02:16 [Info] Transport|Internet|UDP: establishing new connection for udp:8.8.4.4:53
2018/07/30 16:02:16 [Info] App|Dispatcher: default route for udp:8.8.4.4:53
2018/07/30 16:02:16 [Info] Transport|Internet|TCP: dialing TCP to tcp:myserver:443
2018/07/30 16:02:16 [Info] Proxy|VMess|Outbound: tunneling request to udp:8.8.4.4:53 via tcp:myserver:443
2018/07/30 16:02:16 [Info] App|Proxyman|Outbound: failed to process outbound traffic > Proxy|VMess|Outbound: connection ends > Proxy|VMess|Outbound: failed to read header > Proxy|VMess|Encoding: failed to read response header > EOF
2018/07/30 16:02:16 [Info] Transport|Internet|UDP: failed to handle UDP input > io: read/write on closed pipe
2018/07/30 16:02:16 [Info] [2616100705] Proxy|Socks: TCP Connect request to tcp:www.google.com:443
2018/07/30 16:02:16 [Info] App|Router: looking for IP for domain: www.google.com
2018/07/30 16:02:17 [Debug] App|DNS: add pending request id 41
2018/07/30 16:02:17 [Debug] Transport|Internet|UDP: dispatch request to: udp:8.8.8.8:53
2018/07/30 16:02:17 [Info] Transport|Internet|UDP: establishing new connection for udp:8.8.8.8:53
2018/07/30 16:02:17 [Info] App|Dispatcher: default route for udp:8.8.8.8:53
2018/07/30 16:02:17 [Info] Transport|Internet|TCP: dialing TCP to tcp:myserver:443
2018/07/30 16:02:17 [Info] Proxy|VMess|Outbound: tunneling request to udp:8.8.8.8:53 via tcp:myserver:443
2018/07/30 16:02:17 [Debug] Transport|Internet|UDP: dispatch request to: udp:8.8.4.4:53
2018/07/30 16:02:17 [Info] Transport|Internet|UDP: establishing new connection for udp:8.8.4.4:53
2018/07/30 16:02:17 [Info] App|Dispatcher: default route for udp:8.8.4.4:53
2018/07/30 16:02:17 [Info] Transport|Internet|TCP: dialing TCP to tcp:myserver:443
2018/07/30 16:02:17 [Info] Proxy|VMess|Outbound: tunneling request to udp:8.8.4.4:53 via tcp:myserver:443
2018/07/30 16:02:17 [Info] App|Proxyman|Outbound: failed to process outbound traffic > Proxy|VMess|Outbound: connection ends > Proxy|VMess|Outbound: failed to read header > Proxy|VMess|Encoding: failed to read response header > EOF
2018/07/30 16:02:17 [Info] Transport|Internet|UDP: failed to handle UDP input > io: read/write on closed pipe
2018/07/30 16:02:16 tcp:127.0.0.1:1827 accepted tcp:www.google.com:443
2018/07/30 16:02:17 [Info] App|Proxyman|Outbound: failed to process outbound traffic > Proxy|VMess|Outbound: connection ends > Proxy|VMess|Outbound: failed to read header > Proxy|VMess|Encoding: failed to read response header > EOF
2018/07/30 16:02:17 [Info] Transport|Internet|UDP: failed to handle UDP input > io: read/write on closed pipe
  1. 请附上访问日志。在 Linux 中,日志通常在 /var/log/v2ray/access.log 文件中。
    空的,没内容
  1. 其它相关的配置文件(如 Nginx)和相关日志。

安装配置完成后,不能连接网络,显示target machine actively refused it

From v2ray-core created by dancorpse : v2ray/v2ray-core#762

1提交 Issue 之前请先阅读 Issue 指引,然后回答下面的问题,谢谢。
除非特殊情况,请完整填写所有问题。不按模板发的 issue 将直接被关闭。

  1. 你正在使用哪个版本的 V2Ray?(如果服务器和客户端使用了不同版本,请注明)

    服务器系统 Centos 6 x 86 vr2ay 版本 v3.0
    客户端 v2ray core 版本 v3.0,windows v2rayN 1.20
    浏览器firefox, 代理勾选手动 socks5, 并且勾选 Proxy DNS when using SOCKS v5

  2. 你的使用场景是什么?比如使用 Chrome 通过 Socks/VMess 代理观看 YouTube 视频。

    使用firefox 通过socks/vmess ,任何网页都打不开, 比如试图打开google

  3. 你看到的不正常的现象是什么?(请描述具体现象,比如访问超时,TLS 证书错误等)

    The connection was reset

The connection to the server was reset while the page was loading.
The site could be temporarily unavailable or too busy. Try again in a few moments.
If you are unable to load any pages, check your computer’s network connection.
If your computer or network is protected by a firewall or proxy, make sure that Firefox is permitted to access the Web.

  1. 你期待看到的正确表现是怎样的?
    正确打开网页

  2. 请附上你的配置(提交 Issue 前请隐藏服务器端IP地址)。

    服务器端配置:

    // 在这里附上服务器端配置文件
{
    "log": {
        "access": "/var/log/v2ray/access.log",
        "error": "/var/log/v2ray/error.log",
        "loglevel": "warning"
    },
    "inbound": {
        "port": xxxx,
        "protocol": "vmess",
        "settings": {
            "clients": [
                {
                    "id": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxx",
                    "level": 1,
                    "alterId": 64
                }
            ]
        }
    },
    "outbound": {
        "protocol": "freedom",
        "settings": {}
    },
    "inboundDetour": [],
    "outboundDetour": [
        {
            "protocol": "blackhole",
            "settings": {},
            "tag": "blocked"
        }
    ],
    "routing": {
        "strategy": "rules",
        "settings": {
            "rules": [
                {
                    "type": "field",
                    "ip": [
                        "0.0.0.0/8",
                        "10.0.0.0/8",
                        "100.64.0.0/10",
                        "127.0.0.0/8",
                        "169.254.0.0/16",
                        "172.16.0.0/12",
                        "192.0.0.0/24",
                        "192.0.2.0/24",
                        "192.168.0.0/16",
                        "198.18.0.0/15",
                        "198.51.100.0/24",
                        "203.0.113.0/24",
                        "::1/128",
                        "fc00::/7",
                        "fe80::/10"
                    ],
                    "outboundTag": "blocked"
                }
            ]
        }
    }
}
客户端配置:
    // 在这里附上客户端配置
{
  "log": {
    "access": "Vaccess.log",
    "error": "Verror.log",
    "loglevel": "warning"
  },
  "inbound": {
    "port": 1080,
    "listen": "0.0.0.0",  // 这行我设置时是没有的,启动v2rayN以后才出现
    "protocol": "socks",
    "settings": {
      "auth": "noauth",
      "udp": true,       // 设置时这个值是false,可能我在客户端勾选了udp转发
      "ip": "127.0.0.1",
      "clients": null
    },
    "streamSettings": null
  },
  "outbound": {
    "tag": "agentout",   //这行我设置时是没有的,启动v2rayN以后才出现
    "protocol": "vmess",
    "settings": {
      "vnext": [              // 这行我设置时是没有的,启动v2rayN以后才出现
        {
          "address": "xxxxxx",
          "port": 8080,
          "users": [
            {
              "id": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxx"
              "alterId": 0,    //设置时填的是64, 启动v2rayN后变成了0
              "security": "aes-128-gcm"
            }
          ]
        }
      ]
    },
    "streamSettings": {         // 这行和以下5行我设置时是没有的,启动v2rayN以后才出现
      "network": "tcp",          
      "security": "",                  
      "tcpSettings": null,          
      "kcpSettings": null,          
      "wsSettings": null           
    },
    "mux": {
      "enabled": true
    }
  },
  "inboundDetour": null,
  "outboundDetour": [
    {
      "protocol": "freedom",
      "settings": {
        "response": null
      },
      "tag": "direct"
    },
    {
      "protocol": "blackhole",
      "settings": {
        "response": {
          "type": "http"
        }
      },
      "tag": "blockout"
    }
  ],
  "dns": {                            //这行和以下4行我设置时是没有的,启动v2rayN以后才出现
    "servers": [
      "8.8.8.8",
      "8.8.4.4",
      "localhost"
    ]
  },
  "routing": {
    "strategy": "rules",
    "settings": {
      "domainStrategy": "IPIfNonMatch",
      "rules": [
        {
          "type": "field",
          "port": null,                                          // 这行我设置时是没有的,启动v2rayN以后才出现
          "outboundTag": "direct",                    // 这行我设置时是没有的,启动v2rayN以后才出现
          "ip": [
            "0.0.0.0/8",
            "10.0.0.0/8",
            "100.64.0.0/10",
            "127.0.0.0/8",
            "169.254.0.0/16",
            "172.16.0.0/12",
            "192.0.0.0/24",
            "192.0.2.0/24",
            "192.168.0.0/16",
            "198.18.0.0/15",
            "198.51.100.0/24",
            "203.0.113.0/24",
            "::1/128",
            "fc00::/7",
            "fe80::/10"
          ],
          "domain": null
        }
      ]
    }
  }
}
  1. 请附上出错时软件输出的错误日志。在 Linux 中,日志通常在 /var/log/v2ray/error.log 文件中。

    服务器端错误日志:

    // 在这里附上服务器端日志
    2017/12/01 05:55:24 [Warning]Core: V2Ray started

这还是12月1日的记录,也就是今天根本没有记录。

客户端错误日志:
    // 在这里附上客户端日志
2017/12/04 18:03:54 [Warning]Core: V2Ray started
2017/12/04 18:04:04 [Warning]failed to handler mux client connection > Proxy|VMess|Outbound: failed to find an available destination > Retry: [dial tcp xx.xx.xx.xx:8080: connectex: No connection could be made because the target machine actively refused it.] > Retry: all retry attempts failed
  1. 请附上访问日志。在 Linux 中,日志通常在 /var/log/v2ray/error.log 文件中。(这里是不是应该为access.log ?)
    // 在这里附上服务器端日志
 空
  1. 其它相关的配置文件(如 Nginx)和相关日志。

服务器IP应该没问题,我配置ss/ssr都可以正常使用。
/etc/init.d/iptables status 命令显示 Firewall modules are not loaded.

Feature Request: TLS 1.3 Support with Encrypted SNI

Today, Encrypted SNI Comes to Firefox Nightly
And,
Every cloudflare site supports encrypted SNI

If a v2ray server behind Cloudflare uses encrypted SNI, it would be almost impossible to ban it.
But, of course, the implementation of this feature must be after the widespread of the ESNI(Which means chrome stable version would use ESNI for every Cloudflare website by default).

So please consider this issue carefully.

Reference:
https://tools.ietf.org/html/draft-ietf-tls-esni-01

Although TLS 1.3 [RFC8446] encrypts most of the handshake, including
the server certificate, there are several other channels that allow
an on-path attacker to determine the domain name the client is trying
to connect to, including:

o Cleartext client DNS queries.

o Visible server IP addresses, assuming the the server is not doing
domain-based virtual hosting.

o Cleartext Server Name Indication (SNI) [RFC6066] in ClientHello
messages.

DoH [I-D.ietf-doh-dns-over-https] and DPRIVE [RFC7858] [RFC8094]
provide mechanisms for clients to conceal DNS lookups from network
inspection, and many TLS servers host multiple domains on the same IP
address. In such environments, SNI is an explicit signal used to
determine the server's identity. Indirect mechanisms such as traffic
analysis also exist.

The TLS WG has extensively studied the problem of protecting SNI, but
has been unable to develop a completely generic solution.
[I-D.ietf-tls-sni-encryption] provides a description of the problem
space and some of the proposed techniques. One of the more difficult
problems is "Do not stick out" ([I-D.ietf-tls-sni-encryption];
Section 3.4): if only sensitive/private services use SNI encryption,
then SNI encryption is a signal that a client is going to such a
service. For this reason, much recent work has focused on concealing
the fact that SNI is being protected. Unfortunately, the result
often has undesirable performance consequences, incomplete coverage,
or both.

The design in this document takes a different approach: it assumes
that private origins will co-locate with or hide behind a provider
(CDN, app server, etc.) which is able to activate encrypted SNI
(ESNI) for all of the domains it hosts. Thus, the use of encrypted
SNI does not indicate that the client is attempting to reach a
private origin, but only that it is going to a particular service
provider, which the observer could already tell from the IP address.

关于流量统计的使用方法

按照官方文档上的理解,我认为是:
"stats": {
"user>>>[email]>>>traffic>>>uplink": "[email protected]" //clients里面也加上email这项
}
如果是这样的话,那我应该用什么命令查询这个统计?

非常容易出现“failed to transport all TCP response > io: read/write on closed pipe”

v2ray非常容易出现“failed to transport all TCP response > io: read/write on closed pipe”错误。
具体表现为:
1、网页打不开(Chrome回报“ERR_CONNECTION_CLOSED”)
2、有时Chrome会回报SSL Interference

奇怪的是,打不开的网页是随机的,比如有时谷歌打不开,但YouTube运行的很好,又有时YouTube卡住,奇它网页没有异常。

当“failed to transport all TCP response > io: read/write on closed pipe”错误出现后,卡住打不开的网页就会突然打开了,估计是新的连接被建立的关系。

建议在博客或文档中进一步说明domain socket用法。谢谢!

From v2ray-core created by LYU-Daliang : v2ray/v2ray-core#1228

Please skip to the English section below if you don't write Chinese.

中文:
提交 Issue 之前请先阅读 Issue 指引,然后回答下面的问题,谢谢。
除非特殊情况,请完整填写所有问题。不按模板发的 issue 将直接被关闭。

  1. 你正在使用哪个版本的 V2Ray?(如果服务器和客户端使用了不同版本,请注明)

  2. 你的使用场景是什么?比如使用 Chrome 通过 Socks/VMess 代理观看 YouTube 视频。

  3. 你看到的不正常的现象是什么?(请描述具体现象,比如访问超时,TLS 证书错误等)

  4. 你期待看到的正确表现是怎样的?

  5. 请附上你的配置(提交 Issue 前请隐藏服务器端IP地址)。

    服务器端配置:

    // 在这里附上服务器端配置文件
客户端配置:
    // 在这里附上客户端配置
  1. 请附上出错时软件输出的错误日志。在 Linux 中,日志通常在 /var/log/v2ray/error.log 文件中。

    服务器端错误日志:

    // 在这里附上服务器端日志
客户端错误日志:
    // 在这里附上客户端日志
  1. 请附上访问日志。在 Linux 中,日志通常在 /var/log/v2ray/access.log 文件中。
    // 在这里附上服务器端日志
  1. 其它相关的配置文件(如 Nginx)和相关日志。

  2. 如果 V2Ray 无法启动,请附上 --test 输出。

通常的命令为 /usr/bin/v2ray/v2ray --test --config /etc/v2ray/config.json。请按实际情况修改。

  1. 如果 V2Ray 服务运行不正常,请附上 journal 日志。

通常的命令为 journalctl -u v2ray

请预览一下你填的内容再提交。

如果你已经填完上面的问卷,请把下面的英文部份删除,再提交 Issue。
Please remove the Chinese section above.

English:
Please read the instruction and answer the following questions before submitting your issue. Thank you.
Please answer all the questions with enough information. All issues not following this template will be closed immediately.

  1. What version of V2Ray are you using (If you deploy different version on server and client, please explicitly point out)?

  2. What's your scenario of using V2Ray? E.g., Watching YouTube videos in Chrome via Socks/VMess proxy.

  3. What did you see? (Please describe in detail, such as timeout, fake TLS certificate etc)

  4. What's your expectation?

  5. Please attach your configuration file (Mask IP addresses before submit this issue).

    Server configuration:

    // Please attach your server configuration here.
Client configuration:
    // Please attach your client configuration here.
  1. Please attach error logs, especially the bottom lines if the file is large. Error log file is usually at /var/log/v2ray/error.log on Linux.

    Server error log:

    // Please attach your server error log here.
Client error log:
    // Please attach your client error log here.
  1. Please attach access log. Access log is usually at '/var/log/v2ray/access.log' on Linux.
    // Please attach your server access log here.

Please review your issue before submitting.

  1. Other configurations (such as Nginx) and logs.

  2. If V2Ray doesn't run, please attach output from --test.

The command is usually /usr/bin/v2ray/v2ray --test --config /etc/v2ray/config.json, but may vary according to your scenario.

  1. If V2Ray service doesn't run, please attach journal log.

Usual command is journalctl -u v2ray.

V2Ray 无法正常运行

From v2ray-core created by SpaceWalkerMan : v2ray/v2ray-core#1154

  1. 你正在使用哪个版本的 V2Ray?(如果服务器和客户端使用了不同版本,请注明)

服务器客户端均为 V2Ray v3.26

  1. 你的使用场景是什么?比如使用 Chrome 通过 Socks/VMess 代理观看 YouTube 视频。

同比如。

  1. 你看到的不正常的现象是什么?(请描述具体现象,比如访问超时,TLS 证书错误等)

无法访问此网站
facebook.com 意外终止了连接。
请试试以下办法:

检查网络连接
检查代理服务器和防火墙
运行 Windows 网络诊断
ERR_CONNECTION_CLOSED

  1. 你期待看到的正确表现是怎样的?

正常访问。

  1. 请附上你的配置(提交 Issue 前请隐藏服务器端IP地址)。

    服务器端配置:

{
	"log": {
		"access": "/var/log/v2ray/access.log",
		"error": "/var/log/v2ray/error.log",
		"loglevel": "debug"
	},
	"inbound": {
		"port": 80,
		"protocol": "vmess",
		"settings": {
			"clients": [
				{
					"id": "xxxxxxxxxxxx",
					"level": 1,
					"alterId": 64
				}
			]
		},
		"streamSettings": {
			"network": "tcp",
			"tcpSettings": {
				"connectionReuse": true,
				"header": {
					"type": "http",
					"request": {
						"version": "1.1",
						"method": "GET",
						"path": [
							"/"
						],
						"headers": {
							"Host": [
								"www.baidu.com",
								"www.taobao.com",
								"www.tmall.com",
								"www.jd.com",
								"www.qq.com",
								"www.youku.com"
							],
							"User-Agent": [
								"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36",
								"Mozilla/5.0 (iPhone; CPU iPhone OS 10_0_2 like Mac OS X) AppleWebKit/601.1 (KHTML, like Gecko) CriOS/53.0.2785.109 Mobile/14A456 Safari/601.1.46"
							],
							"Accept-Encoding": [
								"gzip, deflate"
							],
							"Connection": [
								"keep-alive"
							],
							"Pragma": "no-cache"
						}
					},
					"response": {
						"version": "1.1",
						"status": "200",
						"reason": "OK",
						"headers": {
							"Content-Type": [
								"application/octet-stream",
								"application/x-msdownload",
								"text/html",
								"application/x-shockwave-flash"
							],
							"Transfer-Encoding": [
								"chunked"
							],
							"Connection": [
								"keep-alive"
							],
							"Pragma": "no-cache"
						}
					}
				}
			}
		}
	},
	"outbound": {
		"protocol": "freedom",
		"settings": {
		}
	},
	"inboundDetour": [
		{
			"protocol": "shadowsocks",
			"port": 99,
			"settings": {
				"method": "aes-256-cfb",
				"password": "password",
				"udp": true,
				"level": 1
			}
		}
	],
	"outboundDetour": [
		{
			"protocol": "blackhole",
			"settings": {
			},
			"tag": "blocked"
		}
	],
	"routing": {
		"strategy": "rules",
		"settings": {
			"rules": [
				{
					"type": "field",
					"ip": [
						"0.0.0.0/8",
						"10.0.0.0/8",
						"100.64.0.0/10",
						"127.0.0.0/8",
						"169.254.0.0/16",
						"172.16.0.0/12",
						"192.0.0.0/24",
						"192.0.2.0/24",
						"192.168.0.0/16",
						"198.18.0.0/15",
						"198.51.100.0/24",
						"203.0.113.0/24",
						"::1/128",
						"fc00::/7",
						"fe80::/10"
					],
					"outboundTag": "blocked"
				}
			]
		}
	}
}
客户端配置:
{
	"log": {
		"loglevel": "debug"
	},
	"inbound": {
		"listen": "127.0.0.1",
		"port": 1080,
		"protocol": "socks",
		"settings": {
			"auth": "noauth",
			"udp": true,
			"ip": "127.0.0.1"
		}
	},
	"outbound": {
		"protocol": "vmess",
		"settings": {
			"vnext": [
				{
					"address": "xxxxxxxxxx",
					"port": 80,
					"users": [
						{
							"id": "xxxxxxxxxxxx",
							"level": 1,
							"alterId": 64
						}
					]
				}
			]
		},
		"streamSettings": {
			"network": "tcp",
			"tcpSettings": {
				"connectionReuse": true,
				"header": {
					"type": "http",
					"request": {
						"version": "1.1",
						"method": "GET",
						"path": [
							"/"
						],
						"headers": {
							"Host": [
								"www.baidu.com",
								"www.taobao.com",
								"www.tmall.com",
								"www.jd.com",
								"www.qq.com",
								"www.youku.com"
							],
							"User-Agent": [
								"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36",
								"Mozilla/5.0 (iPhone; CPU iPhone OS 10_0_2 like Mac OS X) AppleWebKit/601.1 (KHTML, like Gecko) CriOS/53.0.2785.109 Mobile/14A456 Safari/601.1.46"
							],
							"Accept-Encoding": [
								"gzip, deflate"
							],
							"Connection": [
								"keep-alive"
							],
							"Pragma": "no-cache"
						}
					},
					"response": {
						"version": "1.1",
						"status": "200",
						"reason": "OK",
						"headers": {
							"Content-Type": [
								"application/octet-stream",
								"application/x-msdownload",
								"text/html",
								"application/x-shockwave-flash"
							],
							"Transfer-Encoding": [
								"chunked"
							],
							"Connection": [
								"keep-alive"
							],
							"Pragma": "no-cache"
						}
					}
				}
			}
		},
		"mux": {
			"enabled": false
		}
	},
	"outboundDetour": [
		{
			"protocol": "freedom",
			"settings": {
			},
			"tag": "direct"
		}
	],
	"dns": {
		"servers": [
			"8.8.8.8",
			"8.8.4.4",
			"localhost"
		]
	},
	"routing": {
		"strategy": "rules",
		"settings": {
			"rules": [
				{
					"type": "chinasites",
					"outboundTag": "direct"
				},
				{
					"type": "chinaip",
					"outboundTag": "direct"
				},
				{
					"type": "field",
					"ip": [
						"0.0.0.0/8",
						"10.0.0.0/8",
						"100.64.0.0/10",
						"127.0.0.0/8",
						"169.254.0.0/16",
						"172.16.0.0/12",
						"192.0.0.0/24",
						"192.0.2.0/24",
						"192.168.0.0/16",
						"198.18.0.0/15",
						"198.51.100.0/24",
						"203.0.113.0/24",
						"::1/128",
						"fc00::/7",
						"fe80::/10"
					],
					"outboundTag": "direct"
				}
			]
		}
	}
}
  1. 请附上出错时软件输出的错误日志。在 Linux 中,日志通常在 /var/log/v2ray/error.log 文件中。

    服务器端错误日志:

access.log

2018/06/21 18:20:59 xxxxx:49040 rejected Proxy|VMess|Encoding: failed to read request header > read tcp IPAddress:Port->xxxxx:49040: i/o timeout
2018/06/21 18:25:15 xxxxx:62235 rejected Proxy|VMess|Encoding: failed to read request header > read tcp IPAddress:Port->xxxxx:62235: i/o timeout

error.log

2018/06/21 18:23:05 [Debug] App|Log: Logger started
2018/06/21 18:23:05 [Warning] Core: V2Ray v3.26 started
2018/06/21 18:24:53 [Debug] App|Log: Logger started
2018/06/21 18:24:53 [Warning] Core: V2Ray v3.26 started
2018/06/21 18:25:15 [Info] [2552770636] App|Proxyman|Inbound: connection ends > Proxy|VMess|Inbound: invalid request from xxxxx:62235 > Proxy|VMess|Encoding: failed to read request header > read tcp IPAddress:Port->xxxxx:62235: i/o timeout

客户端错误日志:

V2Ray v3.26 (die Commanderin) 20180614
A unified platform for anti-censorship.
2018/06/20 18:25:06 [Debug] App|Log: Logger started
2018/06/20 18:25:06 [Warning] Core: V2Ray v3.26 started
2018/06/20 18:25:11 [Info] [201449661] Proxy|Socks: TCP Connect request to tcp:facebook.com:443
2018/06/20 18:25:11 [Info] [201449661] App|Dispatcher: default route for tcp:facebook.com:443
2018/06/20 18:25:11 [Info] [201449661] Transport|Internet|TCP: dialing TCP to tcp:IPAddress:Port
2018/06/20 18:25:11 tcp:127.0.0.1:62232 accepted tcp:facebook.com:443
2018/06/20 18:25:11 [Info] [201449661] Proxy|VMess|Outbound: tunneling request to tcp:facebook.com:443 via tcp:IPAddress:Port
2018/06/20 18:25:11 [Info] [201449661] App|Proxyman|Outbound: failed to process outbound traffic > Proxy|VMess|Outbound: connection ends > Proxy|VMess|Outbound: failed to read header > Proxy|VMess|Encoding: failed to read response header > EOF
2018/06/20 18:25:11 [Info] [201449661] App|Proxyman|Inbound: connection ends > Proxy|Socks: connection ends > Proxy|Socks: failed to transport all TCP response > io: read/write on closed pipe
2018/06/20 18:25:11 [Info] [2419378399] Proxy|Socks: TCP Connect request to tcp:facebook.com:443
2018/06/20 18:25:11 [Info] [2419378399] App|Dispatcher: default route for tcp:facebook.com:443
2018/06/20 18:25:11 [Info] [2419378399] Transport|Internet|TCP: dialing TCP to tcp:IPAddress:Port
2018/06/20 18:25:11 tcp:127.0.0.1:62234 accepted tcp:facebook.com:443
2018/06/20 18:25:11 [Info] [2419378399] Proxy|VMess|Outbound: tunneling request to tcp:facebook.com:443 via tcp:IPAddress:Port
2018/06/20 18:25:16 [Info] [2419378399] App|Proxyman|Outbound: failed to process outbound traffic > Proxy|VMess|Outbound: connection ends > Proxy|VMess|Outbound: failed to read header > Proxy|VMess|Encoding: failed to read response header > EOF
2018/06/20 18:25:16 [Info] [2419378399] App|Proxyman|Inbound: connection ends > Proxy|Socks: connection ends > Proxy|Socks: failed to transport all TCP response > io: read/write on closed pipe

tls + ws 经常断流

  1. 你正在使用哪个版本的 V2Ray? 3.35

  2. 你的使用场景是什么?使用 Chrome 通过 VMess 代理观看 YouTube 视频,刷reddit。

  3. 你看到的不正常的现象是什么?reddit有时会访问超时

  4. 请附上你的配置

服务器端配置: (点击展开)
{
    "log": {
        "access": "/var/log/v2ray/access.log",
        "error": "/var/log/v2ray/error.log",
        "loglevel": "warning"
    },
    "inbound": {
        "port": 20000,
        "protocol": "vmess",
        "settings": {
            "udp": true,
            "clients": [
                {
                    "id": "A725E273-7632-4E5C-BEEE-D314E10A6259",
                    "level": 1,
                    "alterId": 64
                }
            ]
        },
        "streamSettings": {
            "network": "ws",
            "security": "auto",
            "wsSettings": {
                "path": "/filews/"
          }
        }
    },
    "outbound": {
        "protocol": "freedom",
        "settings": {}
    },
    "outboundDetour": [
        {
            "protocol": "blackhole",
            "settings": {},
            "tag": "blocked"
        }
    ],
    "routing": {
        "strategy": "rules",
        "settings": {
            "rules": [
                {
                    "type": "field",
                    "ip": [
                        "0.0.0.0/8",
                        "10.0.0.0/8",
                        "100.64.0.0/10",
                        "127.0.0.0/8",
                        "169.254.0.0/16",
                        "172.16.0.0/12",
                        "192.0.0.0/24",
                        "192.0.2.0/24",
                        "192.168.0.0/16",
                        "198.18.0.0/15",
                        "198.51.100.0/24",
                        "203.0.113.0/24",
                        "::1/128",
                        "fc00::/7",
                        "fe80::/10"
                    ],
                    "outboundTag": "blocked"
                }
            ]
        }
    }
}
客户端配置: (点击展开)
{
    "inbound": {
        "port": 8087,
        "listen": "127.0.0.1",
        "protocol": "socks",
        "domainOverride": ["http", "tls"],
        "settings": {
            "udp": true
        }
    },
    "inboundDetour": [
        {
            "port": 8088,
            "listen": "127.0.0.1",
            "protocol": "http",
            "domainOverride": ["http", "tls"],
            "settings": {
                "udp": true
            }
        }
    ],
    "outbound": {
        "protocol": "vmess",
        "settings": {
            "vnext": [
                {
                    "address": "xxx"
                    "port": 443, 
                    "users": [{ "id": "xxx" }]
                },
                {
                    "address": "xxx"
                    "port": 443,
                    "users": [{ "id": "xxx" }]
                }
            ]
        },
        "streamSettings": {
            "network": "ws",
            "security": "tls",
            "wsSettings": {
                "path": "/filews/"
            }
        },
        "mux": {
            "enabled": true
        }
    },
    "outboundDetour": [{
        "protocol": "freedom",
        "tag": "direct",
        "settings": {}
    }],
    "dns": {
        "servers": [
            "8.8.8.8",
            "localhost"
        ]
    },
    "routing": {
        "strategy": "rules",
        "settings": {
            "domainStrategy": "AsIs",
            "rules": [
                {
                    "type": "field",
                    "domain": [
                        "baidu.com",
                        "qq.com",
                        "kodi.tv"
                    ],
                    "outboundTag": "direct"
                }
            ]
        }
    }
}
  1. 请附上出错时软件输出的错误日志。在 Linux 中,日志通常在 /var/log/v2ray/error.log 文件中。

服务器端错误日志:

客户端错误日志:

2018/08/26 20:24:45 tcp:127.0.0.1:13979 rejected  Proxy|Socks: insufficient header > read tcp 127.0.0.1:8087->127.0.0.1:13979: i/o timeout
  1. 请附上访问日志。在 Linux 中,日志通常在 /var/log/v2ray/access.log 文件中。
2018/08/22 11:42:33 tcp:36.110.118.69:51472 accepted udp:77.56.232.151:56553 
2018/08/22 11:42:38 tcp:36.110.118.69:51472 accepted udp:71.204.168.214:55231 
2018/08/22 11:42:43 tcp:36.110.118.69:51472 accepted udp:179.235.129.78:46800 
2018/08/22 11:42:48 tcp:36.110.118.69:51472 accepted udp:179.187.180.128:63828 
2018/08/22 11:42:53 tcp:36.110.118.69:51472 accepted udp:189.110.5.114:35191 
2018/08/22 11:42:57 tcp:36.110.118.69:51960 accepted udp:47.29.82.111:38290 
2018/08/22 11:42:57 tcp:36.110.118.69:51960 accepted udp:213.34.167.254:50239 
2018/08/22 11:42:57 tcp:36.110.118.69:51960 accepted udp:171.5.230.46:40225 
2018/08/22 11:42:57 tcp:36.110.118.69:51960 accepted udp:221.149.167.70:55382 
2018/08/22 11:42:57 tcp:36.110.118.69:51960 accepted udp:195.35.245.30:62384 
2018/08/22 11:42:57 tcp:36.110.118.69:51960 accepted udp:117.198.252.237:16096 
2018/08/22 11:42:57 tcp:36.110.118.69:51960 accepted udp:14.177.220.66:49265 
2018/08/22 11:42:57 tcp:36.110.118.69:51960 accepted udp:42.115.14.44:47783 
2018/08/22 11:42:58 tcp:36.110.118.69:51472 accepted udp:177.52.77.161:34455 
2018/08/22 11:43:00 tcp:36.110.118.69:51472 accepted tcp:steamcommunity.com:443 
2018/08/22 11:43:00 tcp:36.110.118.69:51472 accepted tcp:steamcommunity.com:443 
2018/08/22 11:43:03 tcp:36.110.118.69:51472 accepted udp:163.172.19.194:28021 
2018/08/22 11:43:08 tcp:36.110.118.69:51472 accepted udp:82.47.88.29:62348 
2018/08/22 11:43:13 tcp:36.110.118.69:51472 accepted udp:59.2.248.71:8999 
2018/08/22 11:43:15 tcp:36.110.118.69:51604 accepted udp:34.243.222.241:8108 
2018/08/22 11:43:18 tcp:36.110.118.69:51604 accepted udp:115.178.24.77:10621 
2018/08/22 11:43:23 tcp:36.110.118.69:51604 accepted udp:121.188.179.76:54641 
2018/08/22 11:43:28 tcp:36.110.118.69:51604 accepted udp:167.58.91.66:20591 
2018/08/22 11:43:33 tcp:36.110.118.69:51604 accepted udp:47.92.124.237:42260 
2018/08/22 11:43:38 tcp:36.110.118.69:51604 accepted udp:1.224.244.39:10132 
2018/08/22 11:43:43 tcp:36.110.118.69:51604 accepted udp:110.10.80.31:26155 
2018/08/22 11:43:48 tcp:36.110.118.69:51604 accepted udp:163.70.237.181:35589 
2018/08/22 11:43:49 tcp:36.110.118.69:51604 accepted tcp:lp-push-server-215.lastpass.com:443 
2018/08/22 11:43:53 tcp:36.110.118.69:51604 accepted udp:105.33.253.101:17944 
  1. 其它相关的配置文件(如 Nginx)和相关日志。
Caddyfile: (点击展开)
https://xxx {
  root /usr/local/caddy/www/file
  timeouts none
  tls [email protected]
  gzip
  proxy /filews/ localhost:20000 {
    websocket
    header_upstream -Origin
  }

  filemanager / /usr/local/caddy/www/file {
    database /usr/local/caddy/filemanager.db
  }
}

求API callLogService 部分示例或资料

已经用go写好了添加删除用户统计流量功能,但是对API log部分不是很清楚,官方也没有说明是具体什么log信息,请求提供功能说明,和调用示例。

希望监视TLS证书文件变动

最近突然用不了,发现v2ray抱怨证书过期拒绝连接。检查后发现证书已经正常更新过了,但v2ray应该只在启动后即加载,因此需要重启一下v2ray进程。

可否监视key file的变动,如果更新自动reload证书?

proto: textWriter unindented too far

Config.XXX_unrecognized
1、config.json的缩进有影响吗?
2、Config.sting结果中总是有unknown wire type 7和unexpected EOF。什么原因呢?

15 { 1:" "log": {\n "loglevel": "none"" 1:" },\n "inbound": {\n "port": 1" 6:56 6:44 1:" "listen": "127.0.0.1",\n "p"
14:"tocol": "socks",\n "settings": {\n "auth": "noauth",\n "udp": true\n }\n },\n "outbound": {\n "pr" 13:/* unknown wire type 7 / } 13:/ unknown wire type 7 / 12 { 13:/ unknown wire type 7 / } 4:" "shadowsocks",\n "settings": {\n "servers": [{\n " 4:32 4:32 4:"ethod": "chacha20",\n "port": port,\n "password": "123",\n "address": "ip"\n " 4:32 15:538970717 4:32 15:538970668 4:32 4:/ unexpected EOF / 14:540680824 15 { 1:" "concurrency": 8,\n "en" 12:7358945710511058018 12:2314885530453898092 15:538970668 4:32 4:/ unexpected EOF / 12:8030604377426895463 15:121 4:" }\n}\n\n\n\n\n" 1:"\n\n\n\n\n\n\n\n\n\n" 1:/ unexpected EOF / 1:/ unexpected EOF */

v2ctl应该怎么调用?

我在服务器端输入v2ctl会告诉我commend not found, 但是v2ray命令是有用的.
我是在想要查看流量统计时碰到的问题

请问游戏加速用什么配置最好?游戏延迟极大

From v2ray-core created by GenjiWu : v2ray/v2ray-core#1150

  1. 你正在使用哪个版本的 V2Ray?(如果服务器和客户端使用了不同版本,请注明)
    客户端3.25.1 服务端3.26

  2. 你的使用场景是什么?比如使用 Chrome 通过 Socks/VMess 代理观看 YouTube 视频。
    查看网页、DOTA2亚服游戏加速

  3. 你看到的不正常的现象是什么?(请描述具体现象,比如访问超时,TLS 证书错误等)
    DOTA2游戏延迟过高,直连200ms,开v2ray后500ms。
    我到韩国vps的延迟为47ms,下载速度和上传速度都是200M满速,应该不是vps的问题

  4. 你期待看到的正确表现是怎样的?
    80ms左右的延迟

  5. 请附上你的配置(提交 Issue 前请隐藏服务器端IP地址)。

    服务器端配置:

    // 在这里附上服务器端配置文件
客户端配置:
{
  "log": {
      "loglevel": "warning"
  },
  "inbound": {
      "listen": "127.0.0.1",
      "port": 1080,
      "protocol": "socks",
      "settings": {
          "auth": "noauth",
          "udp": true,
          "ip": "127.0.0.1"
      }
  },
  "outbound": {
      "protocol": "vmess",
      "settings": {
          "vnext": [
              {
                  "address": "IP",
                  "port": 35279,
                  "users": [
                      {
                          "id": "ID",
                          "level": 1,
                          "alterId": 100
                      }
                  ]
              }
          ]
      }
  },
  "outboundDetour": [
      {
          "protocol": "freedom",
          "settings": {},
          "tag": "direct"
      }
  ],
  "routing": {
      "strategy": "rules",
      "settings": {
          "rules": [
              {
                  "type": "field",
                  "port": "54-79",
                  "outboundTag": "direct"
              },
              {
                  "type": "field",
                  "port": "81-442",
                  "outboundTag": "direct"
              },
              {
                  "type": "field",
                  "port": "444-65535",
                  "outboundTag": "direct"
              },
              {
                  "type": "field",
                  "domain": [
                      "gc.kis.scr.kaspersky-labs.com"
                  ],
                  "outboundTag": "direct"
              },
              {
                  "type": "chinasites",
                  "outboundTag": "direct"
              },
              {
                  "type": "field",
                  "ip": [
                      "0.0.0.0/8",
                      "10.0.0.0/8",
                      "100.64.0.0/10",
                      "127.0.0.0/8",
                      "169.254.0.0/16",
                      "172.16.0.0/12",
                      "192.0.0.0/24",
                      "192.0.2.0/24",
                      "192.168.0.0/16",
                      "198.18.0.0/15",
                      "198.51.100.0/24",
                      "203.0.113.0/24",
                      "::1/128",
                      "fc00::/7",
                      "fe80::/10"
                  ],
                  "outboundTag": "direct"
              },
              {
                  "type": "chinaip",
                  "outboundTag": "direct"
              }
          ]
      }
  }
}

    // 在这里附上客户端配置

{
"log": {
"access": "/var/log/v2ray/access.log",
"error": "/var/log/v2ray/error.log",
"loglevel": "warning"
},
"inbound": {
"port": 35279,
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "ID",
"level": 1,
"alterId": 100
}
]
}
},
"outbound": {
"protocol": "freedom",
"settings": {}
},
"inboundDetour": [],
"outboundDetour": [
{
"protocol": "blackhole",
"settings": {},
"tag": "blocked"
}
],
"routing": {
"strategy": "rules",
"settings": {
"rules": [
{
"type": "field",
"ip": [
"0.0.0.0/8",
"10.0.0.0/8",
"100.64.0.0/10",
"127.0.0.0/8",
"169.254.0.0/16",
"172.16.0.0/12",
"192.0.0.0/24",
"192.0.2.0/24",
"192.168.0.0/16",
"198.18.0.0/15",
"198.51.100.0/24",
"203.0.113.0/24",
"::1/128",
"fc00::/7",
"fe80::/10"
],
"outboundTag": "blocked"
}
]
}
}
}

default里面写了alterId,是否还有必要在clients中写?

From v2ray-core created by wanzhiyu : v2ray/v2ray-core#1072

  1. 你正在使用哪个版本的 V2Ray?(如果服务器和客户端使用了不同版本,请注明)
    3.21

  2. 你看到的不正常的现象是什么?(请描述具体现象,比如访问超时,TLS 证书错误等)
    配置vmess协议时,我在default里面写了level和alterId,发现如果在clients中不写alterID,将无法正常使用。

  3. 你期待看到的正确表现是怎样的?
    只要在default里面写了level和alterId,就算在clients中不写alterID,也能使用我在default中设置的alterID。

  4. 请附上你的配置(提交 Issue 前请隐藏服务器端IP地址)。

    服务器端配置(关键部分):
    "clients": [
    {
    "id": "27848739-7e62-4138-9fd3-098a63964b6b",
    //"level": 0,
    //"alterId": 32
    "email": "whatever"
    }
    ],
    "default": {
    "level": 0,
    "alterId": 32
    },

  5. 请附上出错时软件输出的错误日志。在 Linux 中,日志通常在 /var/log/v2ray/error.log 文件中。
    1、error.log
    2018/04/24 07:58:06 [Warning] Core: V2Ray v3.21 started
    2018/04/24 07:58:10 [Warning] Transport|Internet|WebSocket: failed to serve http for WebSocket > accept tcp [::]:10086: use of closed network connection
    2、access.log
    2018/04/24 07:58:07 127.0.0.1:35226 rejected Proxy|VMess|Encoding: invalid user

路由器科学上网插件里面的V2ray,速度比在手机和电脑上慢了很多。

From v2ray-core created by asp250 : v2ray/v2ray-core#1248

插件配置文件如下
路由器连接的是猫,
VPS是bbr加速的。插件说利用配置文件只抽取outbound的内容,支持所有协议,但是我用配置文件和不使用配置文件速度都没有变化,应该是没有支持SOCK的原因。配置文件除了outbound之外的肯定都没有用上。但是路由器开三个终端看YouTube,速度基本都一样。我用SS+KCP加速,速度能提升一倍,我就很是不解了,本来SS+KCP是没有v2ray+bbr速度快的。
{
"log": {
"error": "error.log",
"loglevel": "warning"
},
"inbound": {
"port": 23456,
"listen": "0.0.0.0",
"protocol": "socks",
"domainOverride": ["tls", "http"],
"settings": {
"auth": "noauth",
"udp": true,
"ip": "0.0.0.0"
}
},
"outbound": {
"protocol": "vmess",
"settings": {
"vnext": [{
"address": "101.0.0.1",
"port": 12456,
"users": [{
"id": "11111-1111-1111-111-111111",
"alterId": 111,
"security": "auto"
}]
}]
},
"mux": {
"enabled": true
}
},
"inboundDetour": [{
"domainOverride": ["tls", "http"],
"port": 23456,
"listen": "0.0.0.0",
"protocol": "http",
"settings": {
"auth": "noauth",
"udp": true,
"ip": "0.0.0.0"
}
}],
"outboundDetour": [{
"protocol": "freedom",
"settings": {},
"tag": "direct"
}],
"dns": {
"servers": ["8.8.8.8", "8.8.4.4", "localhost"]
},
"routing": {
"strategy": "rules",
"settings": {
"domainStrategy": "IPIfNonMatch",
"rules": [{
"type": "field",
"ip": ["0.0.0.0/8", "10.0.0.0/8", "100.64.0.0/10", "127.0.0.0/8", "169.254.0.0/16", "172.16.0.0/12", "192.0.0.0/24", "192.0.2.0/24", "192.168.0.0/16", "198.18.0.0/15", "198.51.100.0/24", "203.0.113.0/24", "::1/128", "fc00::/7", "fe80::/10", "geoip:cn"],
"domain": ["geosite:cn"],
"outboundTag": "direct"
},
{
"type": "chinasites",
"outboundTag": "direct"
},
{
"type": "chinaip",
"outboundTag": "direct"
}]
}
}
}

通过代理无法访问国内的网站 请教如何配置(非issue)

From v2ray-core created by kirkcola : v2ray/v2ray-core#1210

  1. 你正在使用哪个版本的 V2Ray?(如果服务器和客户端使用了不同版本,请注明)

    • 服务端及客户端均安装了 v3.31
    • 客户端使用的是V2RayN,并配置了PAC
  2. 你的使用场景是什么?比如使用 Chrome 通过 Socks/VMess 代理观看 YouTube 视频。

    由于运营商的问题 有些国内网站我并不能正常访问
    所以我想借助Chrome+SwitchyOmega对一些不能正常访问的国内网站使用V2Ray代理进行访问
    但是失败了。(同样的场景SSR客户端能正常代理)

  3. 你看到的不正常的现象是什么?(请描述具体现象,比如访问超时,TLS 证书错误等)
    访问超时

  4. 你期待看到的正确表现是怎样的?
    网站能被代理并访问

  5. 请附上你的配置(提交 Issue 前请隐藏服务器端IP地址)。

    服务器端配置:

    {
    "log": {
        "access": "/var/log/v2ray/access.log",
        "error": "/var/log/v2ray/error.log",
        "loglevel": "warning"
    },
    "inbound": {
        "port": 23333,
        "protocol": "vmess",
        "settings": {
            "udp": true,
            "clients": [
                {
                    "id": "####",
                    "level": 1,
                    "alterId": 233
                }
            ],
            "detour": {
                "to": "dynamic"
            }
        },
        "streamSettings": {
            "network": "kcp"
        }
    },
    "outbound": {
        "protocol": "freedom",
        "settings": {}
    },
    "inboundDetour": [
        {
            "protocol": "vmess",
            "port": "10000-20000",
            "tag": "dynamic",
            "settings": {
                "udp": true,
                "default": {
                    "level": 1,
                    "alterId": 32
                }
            },
            "allocate": {
                "strategy": "random",
                "concurrency": 2,
                "refresh": 5
            },
            "streamSettings": {
                "network": "kcp"
            }
        }
    ],
    "transport": {
        "kcpSettings": {
            "mtu": 1350,
            "tti": 50,
            "uplinkCapacity": 100,
            "downlinkCapacity": 100,
            "congestion": false,
            "readBufferSize": 2,
            "writeBufferSize": 2,
            "header": {
                "type": "utp"
            }
        }
    },
    "outboundDetour": [
        {
            "protocol": "blackhole",
            "settings": {},
            "tag": "blocked"
        }
    ],
    "routing": {
        "strategy": "rules",
        "settings": {
            "rules": [
                {
                    "type": "field",
                    "ip": [
                        "0.0.0.0/8",
                        "10.0.0.0/8",
                        "100.64.0.0/10",
                        "127.0.0.0/8",
                        "169.254.0.0/16",
                        "172.16.0.0/12",
                        "192.0.0.0/24",
                        "192.0.2.0/24",
                        "192.168.0.0/16",
                        "198.18.0.0/15",
                        "198.51.100.0/24",
                        "203.0.113.0/24",
                        "::1/128",
                        "fc00::/7",
                        "fe80::/10"
                    ],
                    "outboundTag": "blocked"
                }
            ]
        }
    }
}
客户端配置:
{
  "log": {
    "access": "",
    "error": "",
    "loglevel": "warning"
  },
  "inbound": {
    "port": 1089,
    "listen": "127.0.0.1",
    "protocol": "socks",
    "settings": {
      "auth": "noauth",
      "udp": true,
      "ip": "127.0.0.1",
      "clients": null
    },
    "streamSettings": null
  },
  "outbound": {
    "tag": "agentout",
    "protocol": "vmess",
    "settings": {
      "vnext": [
        {
          "address": "####",
          "port": 23333,
          "users": [
            {
              "id": "####",
              "alterId": 233,
              "email": "[email protected]",
              "security": "auto"
            }
          ]
        }
      ],
      "servers": null
    },
    "streamSettings": {
      "network": "kcp",
      "security": "",
      "tlsSettings": null,
      "tcpSettings": null,
      "kcpSettings": {
        "mtu": 1350,
        "tti": 50,
        "uplinkCapacity": 12,
        "downlinkCapacity": 100,
        "congestion": false,
        "readBufferSize": 2,
        "writeBufferSize": 2,
        "header": {
          "type": "utp",
          "request": null,
          "response": null
        }
      },
      "wsSettings": null,
      "httpSettings": null
    },
    "mux": {
      "enabled": true
    }
  },
  "inboundDetour": null,
  "outboundDetour": [
    {
      "protocol": "freedom",
      "settings": {
        "response": null
      },
      "tag": "direct"
    },
    {
      "protocol": "blackhole",
      "settings": {
        "response": {
          "type": "http"
        }
      },
      "tag": "blockout"
    }
  ],
  "dns": {
    "servers": [
      "8.8.8.8",
      "8.8.4.4",
      "localhost"
    ]
  },
  "routing": {
    "strategy": "rules",
    "settings": {
      "domainStrategy": "IPIfNonMatch",
      "rules": [
        {
          "type": "field",
          "port": null,
          "outboundTag": "direct",
          "ip": [
            "0.0.0.0/8",
            "10.0.0.0/8",
            "100.64.0.0/10",
            "127.0.0.0/8",
            "169.254.0.0/16",
            "172.16.0.0/12",
            "192.0.0.0/24",
            "192.0.2.0/24",
            "192.168.0.0/16",
            "198.18.0.0/15",
            "198.51.100.0/24",
            "203.0.113.0/24",
            "::1/128",
            "fc00::/7",
            "fe80::/10"
          ],
          "domain": null
        }
      ]
    }
  }
}

第一次搭建,直接跟着官方的教程走的,不知哪里没有配置好,希望能指点一下配置如何修改!谢谢!

建议在outbound中增加ttl或者mark

方便iptables转发,与adbyby,adm等去广告插件串联(koolproxy已经有这个功能了)

类似于:
./v2ray -config config.json --ttl 160
iptables -t nat -A OUTPUT -p tcp -m ttl --ttl-eq 160 -j ADBYBY

what is wrong ?

rejected v2ray.com/core/proxy/socks: insufficient header > read tcp 127.0.0.1:2333->127.0.0.1:7658: i/o timeout

编译Windows下或其他平台

From v2ray-core created by 5high : v2ray/v2ray-core#1224

按照下面程序只能编译Linux版本,请问如何修改才能编译其他操作系统的版本?

大概流程,请根据实际情况修改

安装 Git: sudo apt-get install git -y
安装 golang:
下载安装文件:
64位:curl -o go_latest.tar.gz -L https://storage.googleapis.com/golang/go1.9.4.linux-amd64.tar.gz
32位:curl -o go_latest.tar.gz -L https://storage.googleapis.com/golang/go1.9.4.linux-386.tar.gz
sudo tar -C /usr/local -xzf go_latest.tar.gz
export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/work
下载 V2Ray 源文件:go get -u v2ray.com/core/...
下载 V2Ray 扩展包:go get -u v2ray.com/ext/...
生成编译脚本:go install v2ray.com/ext/tools/build/vbuild
编译 V2Ray:$GOPATH/bin/vbuild
V2Ray 程序及配置文件会被放在 $GOPATH/bin/v2ray-XXX 文件夹下(XXX 视平台不同而不同)

v2ray源码编译失败

v2ray源码编译失败!

root@hwsrv-312409:~# bash <(curl -s https://raw.githubusercontent.com/v2ray/v2ray-core/master/release/install.sh)
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 121M 100 121M 0 0 5968k 0 0:00:20 0:00:20 --:--:-- 5800k

runtime

/usr/local/go/src/runtime/map.go:64:2: bucketCntBits redeclared in this block
previous declaration at /usr/local/go/src/runtime/hashmap.go:64:18
/usr/local/go/src/runtime/map.go:65:2: bucketCnt redeclared in this block
previous declaration at /usr/local/go/src/runtime/hashmap.go:65:23
/usr/local/go/src/runtime/map.go:76:2: maxKeySize redeclared in this block
previous declaration at /usr/local/go/src/runtime/hashmap.go:74:17
/usr/local/go/src/runtime/map.go:77:2: maxValueSize redeclared in this block
previous declaration at /usr/local/go/src/runtime/hashmap.go:75:17
/usr/local/go/src/runtime/map.go:82:2: dataOffset redeclared in this block
previous declaration at /usr/local/go/src/runtime/hashmap.go:83:4
/usr/local/go/src/runtime/map.go:91:2: empty redeclared in this block
previous declaration at /usr/local/go/src/runtime/hashmap.go:89:19
/usr/local/go/src/runtime/map.go:92:2: evacuatedEmpty redeclared in this block
previous declaration at /usr/local/go/src/runtime/hashmap.go:90:19
/usr/local/go/src/runtime/map.go:93:2: evacuatedX redeclared in this block
previous declaration at /usr/local/go/src/runtime/hashmap.go:91:19
/usr/local/go/src/runtime/map.go:94:2: evacuatedY redeclared in this block
previous declaration at /usr/local/go/src/runtime/hashmap.go:92:19
/usr/local/go/src/runtime/map.go:95:2: minTopHash redeclared in this block
previous declaration at /usr/local/go/src/runtime/hashmap.go:93:19
/usr/local/go/src/runtime/map.go:95:2: too many errors

runtime

/usr/local/go/src/runtime/map.go:64:2: bucketCntBits redeclared in this block
previous declaration at /usr/local/go/src/runtime/hashmap.go:64:18
/usr/local/go/src/runtime/map.go:65:2: bucketCnt redeclared in this block
previous declaration at /usr/local/go/src/runtime/hashmap.go:65:23
/usr/local/go/src/runtime/map.go:76:2: maxKeySize redeclared in this block
previous declaration at /usr/local/go/src/runtime/hashmap.go:74:17
/usr/local/go/src/runtime/map.go:77:2: maxValueSize redeclared in this block
previous declaration at /usr/local/go/src/runtime/hashmap.go:75:17
/usr/local/go/src/runtime/map.go:82:2: dataOffset redeclared in this block
previous declaration at /usr/local/go/src/runtime/hashmap.go:83:4
/usr/local/go/src/runtime/map.go:91:2: empty redeclared in this block
previous declaration at /usr/local/go/src/runtime/hashmap.go:89:19
/usr/local/go/src/runtime/map.go:92:2: evacuatedEmpty redeclared in this block
previous declaration at /usr/local/go/src/runtime/hashmap.go:90:19
/usr/local/go/src/runtime/map.go:93:2: evacuatedX redeclared in this block
previous declaration at /usr/local/go/src/runtime/hashmap.go:91:19
/usr/local/go/src/runtime/map.go:94:2: evacuatedY redeclared in this block
previous declaration at /usr/local/go/src/runtime/hashmap.go:92:19
/usr/local/go/src/runtime/map.go:95:2: minTopHash redeclared in this block
previous declaration at /usr/local/go/src/runtime/hashmap.go:93:19
/usr/local/go/src/runtime/map.go:95:2: too many errors
rm: cannot remove '/v2ray/bin/vbuild': No such file or directory

runtime

/usr/local/go/src/runtime/map.go:64:2: bucketCntBits redeclared in this block
previous declaration at /usr/local/go/src/runtime/hashmap.go:64:18
/usr/local/go/src/runtime/map.go:65:2: bucketCnt redeclared in this block
previous declaration at /usr/local/go/src/runtime/hashmap.go:65:23
/usr/local/go/src/runtime/map.go:76:2: maxKeySize redeclared in this block
previous declaration at /usr/local/go/src/runtime/hashmap.go:74:17
/usr/local/go/src/runtime/map.go:77:2: maxValueSize redeclared in this block
previous declaration at /usr/local/go/src/runtime/hashmap.go:75:17
/usr/local/go/src/runtime/map.go:82:2: dataOffset redeclared in this block
previous declaration at /usr/local/go/src/runtime/hashmap.go:83:4
/usr/local/go/src/runtime/map.go:91:2: empty redeclared in this block
previous declaration at /usr/local/go/src/runtime/hashmap.go:89:19
/usr/local/go/src/runtime/map.go:92:2: evacuatedEmpty redeclared in this block
previous declaration at /usr/local/go/src/runtime/hashmap.go:90:19
/usr/local/go/src/runtime/map.go:93:2: evacuatedX redeclared in this block
previous declaration at /usr/local/go/src/runtime/hashmap.go:91:19
/usr/local/go/src/runtime/map.go:94:2: evacuatedY redeclared in this block
previous declaration at /usr/local/go/src/runtime/hashmap.go:92:19
/usr/local/go/src/runtime/map.go:95:2: minTopHash redeclared in this block
previous declaration at /usr/local/go/src/runtime/hashmap.go:93:19
/usr/local/go/src/runtime/map.go:95:2: too many errors
/dev/fd/63: line 28: /v2ray/bin/vbuild: No such file or directory
root@hwsrv-312409:~#

有没有方法用 apache2 的 .htaccess 转发 v2ray 的 websocket?

From v2ray-core created by 1046329594 : v2ray/v2ray-core#1235

Please skip to the English section below if you don't write Chinese.

问题:有没有方法用 apache2 的 .htaccess 转发 v2ray 的 websocket?

中文:
提交 Issue 之前请先阅读 Issue 指引,然后回答下面的问题,谢谢。
除非特殊情况,请完整填写所有问题。不按模板发的 issue 将直接被关闭。

  1. 你正在使用哪个版本的 V2Ray?(如果服务器和客户端使用了不同版本,请注明)
    latest
  2. 你的使用场景是什么?比如使用 Chrome 通过 Socks/VMess 代理观看 YouTube 视频。
    windows下的v2rayN
  3. 你看到的不正常的现象是什么?(请描述具体现象,比如访问超时,TLS 证书错误等)
  4. 你期待看到的正确表现是怎样的?
  5. 请附上你的配置(提交 Issue 前请隐藏服务器端IP地址)。
    无需
    服务器端配置:
    // 在这里附上服务器端配置文件
客户端配置:
    // 在这里附上客户端配置
  1. 请附上出错时软件输出的错误日志。在 Linux 中,日志通常在 /var/log/v2ray/error.log 文件中。

    服务器端错误日志:
    // 在这里附上服务器端日志
客户端错误日志:
    // 在这里附上客户端日志
  1. 请附上访问日志。在 Linux 中,日志通常在 /var/log/v2ray/access.log 文件中。
    // 在这里附上服务器端日志
  1. 其它相关的配置文件(如 Nginx)和相关日志。
  2. 如果 V2Ray 无法启动,请附上 --test 输出。

通常的命令为 /usr/bin/v2ray/v2ray --test --config /etc/v2ray/config.json。请按实际情况修改。

  1. 如果 V2Ray 服务运行不正常,请附上 journal 日志。

通常的命令为 journalctl -u v2ray

请预览一下你填的内容再提交。

linux上的文件位置不合理

我觉得,把v2ray和v2ctl放入/usr/bin,dat文件放入/usr/share 什么的更好一些。

主要问题在于v2ray安装完之后不在path里。

建议通过命令行参数的方式开启流量查询功能

现在想开启流量查询要在config.json中添加很多行配置。而每个用户(是指个人不是指config.json中的帐户)的配置又千差万别, 没法通过添加固定配置的方式来解决。目前要么针对每个配置来修改,要么限制用户只能修改少部分配置。两种方式都很不灵活。

建议添加通过命令行参数开启流量统计功能。
例如: ./v2ray --stat 127.0.0.1:1081
使用浏览器或者curl访问这个地址的时候会得到一个包含两个数值的字符串,分别表示从v2ray-core启动到查询为止的上行/下行总数据量。只是单向的查询就可以,不需要重置,不需要按帐号查询等高级功能。这样用户就可以很方便的查到流量耗用数据。

Kitsunebi lite 连接断断续续

两台服务器用了两个配置,一台TCP,一台KCP-utp的动态端口,都出现上推特,IG时VPN不停的断开重连。而用shadowrocket配置的TCP端口时则可以正常访问。请问这种问题如何解决,是否是Kitsunebi lite的问题?补充下,此两种配置在PC上都可以正常使用。

请求将 DNS 服务开放给外部程序使用

在手机或者路由器等需要透明代理的设备上,几乎都要先将域名解析成 IP 才发送连接请求,而不能像 socks 协议那样将目标服务器的域名连同连接请求发给代理服务器,所以透明代理另外需要解决的问题是如何快速无污染地进行 DNS 解析。无污染这个问题可以通过外部软件(如 DNSMASQ)解决,或者利用 dokodemo-door 由代理服务器转发解析,也可以利用 V2Ray 的 sniffing 功能,就目前来说污染问题算是解决了,但是这几种方式都需要多消耗一个 RTT,实在谈不上快速。另外在这几种方法中,我比较倾向与使用 sniffing,因为它和 V2Ray 的路由功能搭配得最好,但是 sniffing 还有一个问题是只对 HTTP 和 TLS 有效( TLS1.3 的 SNI 字段会被加密,等到 TLS1.3 普及之后连 TLS 也不能探测了 )。所以我希望 V2Ray 能够开放 DNS 服务并添加一些功能,以解决现有的透明代理方案关于 DNS 解析的问题。

构思如下:

  1. V2Ray 开放 DNS,透明代理的设备将 V2Ray 设为 DNS 服务器;
  2. 某一时刻设备打算访问一个服务器,假设是 github.com,那么它首先查询 DNS 将 github.com 解析成 IP;
  3. V2Ray 接收到 DNS 请求时,暂不转发 DNS 查询请求到墙外的服务器,而是伪造一个 IP (假设是 11.22.33.44)进行应答,并且将查询的域名 github.com 对应伪造的 IP 11.22.33.44 关联起来;
  4. 设备接收到响应后,对目标 IP(伪造的 11.22.33.44) 发起连接请求;
  5. 由于透明代理,V2Ray 接收到目标是 11.22.33.44 的连接请求,查到关联的域名是 github.com,然后将目标地址重置为域名 github.com;
  6. V2Ray 将重置了目标地址的数据包发往 Dispatcher 进行路由;
  7. 路由及 Freedom 的 domainStrategy 沿用现在的方式。

在透明代理中快速且无污染进行 DNS 解析,还要与 V2Ray 的路由功能无缝配合,这是我能想到的最好的方案了,假如上述的设想具有可行性,还请加入此功能。

希望在 Freedom 中加入配置规则,IPv4 优先/ IPv6 优先

本来以为这是一个 bug, 所以按 bug 提交格式写的,后经查阅文档,这不属于 bug. 但依旧按 bug 提交的格式在此开 issue 讨论。此需求可通过在 Freedom 中加入配置规则:"IPv4 优先/ IPv6 优先" 解决。

  1. 你正在使用哪个版本的 V2Ray?(如果服务器和客户端使用了不同版本,请注明)

客户端:iptables 转发
服务端:V2ray 3.47, v2ray-linux-mips.zip 编译版,运行于 Openwrt 18.06 上。

  1. 你的使用场景是什么?比如使用 Chrome 通过 Socks/VMess 代理观看 YouTube 视频。

使用路由器透明代理。

  1. 你看到的现象是什么?

我所使用的 DNS 可同时解析 ipv4 和 ipv6 地址。对传入包使用 sniffing 功能重写地址。在路由配置中将所有 ipv6 地址经 Freedom Outbound (使用 UseIP)发出,其他地址经默认 Outbound 发出。

但是,我发现会有 ipv4 地址经 Freedom Outbound 发出。

  1. 你期待看到的表现是怎样的?

在使用 Outbound UseIP 发出时,应当选择和路由选择中符合匹配要求的地址发出。或者允许用户在 Freedom 中选择 "IPv4 优先/ IPv6 优先"。

  1. 请附上你的配置。

服务器端配置(和 issue 相关的部分):

    "inboundDetour":[{
        "port":1083,
        "protocol":"dokodemo-door",
        "sniffing": {"enabled": true,"destOverride": ["http", "tls"]
    }],
    "outboundDetour":[{
        "settings":{"domainStrategy":"UseIP"},
        "protocol":"freedom",
        "tag":"dns"
      }],
     "routing":{"settings":{"rules":[{"ip":["2000::/3"],"outboundTag":"dns","type":"field"}],"domainStrategy":"IPOnDemand"},
     "dns":{"servers":  ["xxx.xxx.x.xx"]}

客户端配置:

    iptables -p tcp -j REDIRECT --to-ports 1083
  1. 请附上软件运行时的相关日志。

目标部分的日志:

2018/10/19 16:28:48 [Info] [4165645465] v2ray.com/core/app/dispatcher: sniffed domain: m.analytics.126.net
2018/10/19 16:28:48 [Info] v2ray.com/core/app/router: looking for IP for domain: m.analytics.126.net
2018/10/19 16:28:48 [Info] [4165645465] v2ray.com/core/app/dispatcher: taking detour [dns] for [tcp:m.analytics.126.net:80]
2018/10/19 16:28:48 [Info] [4165645465] v2ray.com/core/proxy/freedom: opening connection to tcp:m.analytics.126.net:80
2018/10/19 16:28:48 [Info] [4165645465] v2ray.com/core/proxy/freedom: dialing to to tcp:222.20.147.174:80
2018/10/19 16:28:48 [Info] [4165645465] v2ray.com/core/transport/internet/tcp: dialing TCP to tcp:222.20.147.174:80

日志中 DNS 的解析结果

m.analytics.126.net	canonical name = m.analytics.126.net.wsglb0.com
Name:      m.analytics.126.net.wsglb0.com
Address 1: 222.24.122.79
Address 2: 222.20.147.174
m.analytics.126.net	canonical name = m.analytics.126.net.wsglb0.com
Address 3: 2001:da8:2032:1001::6

此段日志中,可以看出路由选择了 [dns] detour, 因为解析地址中有 dns, 但是当实际发送时,却使用了 ipv4 的地址。

在 Arukas 上面使用官方 docker 部署返回错误码 23

在 Arukas 上面使用官方 Docker,启动命令为

v2ray -config=stdin: <<< "{\"log\":{\"access\":\"/var/log/v2ray/access.log\",\"error\":\"/var/log/v2ray/error.log\",\"loglevel\":\"warning\"},\"inbound\":{\"port\":1080,\"protocol\":\"vmess\",\"settings\":{\"clients\":[{\"id\":\"cd6a2014-374a-ccc8-1c16-2e50521c94bd\",\"level\":1,\"alterId\":64}]},\"streamSettings\":{\"network\":\"ws\",\"wsSettings\":{\"path\":\"/aG6ksm\"}}},\"outbound\":{\"protocol\":\"freedom\",\"settings\":{}},\"outboundDetour\":[{\"protocol\":\"blackhole\",\"settings\":{},\"tag\":\"blocked\"}],\"routing\":{\"strategy\":\"rules\",\"settings\":{\"rules\":[{\"type\":\"field\",\"ip\":[\"0.0.0.0/8\",\"10.0.0.0/8\",\"100.64.0.0/10\",\"127.0.0.0/8\",\"169.254.0.0/16\",\"172.16.0.0/12\",\"192.0.0.0/24\",\"192.0.2.0/24\",\"192.168.0.0/16\",\"198.18.0.0/15\",\"198.51.100.0/24\",\"203.0.113.0/24\",\"::1/128\",\"fc00::/7\",\"fe80::/10\"],\"outboundTag\":\"blocked\"}]}}}"

使用以上指令启动 Arukas 失败,返回错误码 "23"
查询 v2ray-core 上面的代码 main.go,看见一行注释 "Configuration error. Exit with a special value to prevent systemd from restarting."
检查配置文件无误后尝试在本地运行如上命令,v2ray 可正常运行

Chromebook with v2ray

朋友用的chromebook,只有酸酸乳插件,能否开启开发者模式下载v2ray-core然后再用插件连接?

[咨询]大家都用什么"配置"玩PUBG?

From v2ray-core created by ghost : v2ray/v2ray-core#1121

  1. 你正在使用哪个版本的 V2Ray?
    v2.46

  2. 你的使用场景是什么?
    proxifier > socks5 > CLIENT > TCP > SERVER
    proxifier > socks5 > CLIENT > mKCP > SERVER
    proxifier > socks5 > CLIENT > WS+TLS > SERVER[nginx]
    proxifier > socks5 > CLIENT > WS+TLS+CDN > SERVER[nginx]

  3. 你看到的不正常的现象是什么?
    a.) 使用TCP时,延时120ms+,偶尔卡顿(几分钟来一次),进大厅、返回大厅都比较慢;
    b.) 使用mKCP时,延时60ms左右,频繁轻微卡顿(不影响游戏),偶尔大卡一下(回档),进大厅、开匹、返回大厅都很迅速。但是国际出口网络不好时会爆卡;
    c.) 使用WS+TLS时,延时80~120ms波动,偶尔轻微卡顿(不影响游戏),但是每次连续玩2~3张地图后就开始各种卡顿(而且越来越卡,最后直至爆卡没法玩),必须退出游戏进程后,等一会儿再重新启动游戏才能正常。但是又只能持续玩个2张地图,然后又开始爆卡;
    d.) WS+TLS 偶尔会延时会抽风,CDN套上就好了,但是延时会增加。

  4. 你期待看到的正确表现是怎样的?
    a.) 准备再试下 TLS 不要 webserver 中转;
    b.) 想问下用 V2Ray 流畅吃鸡的朋友,你们用的什么配置?( 比如mux设置、缓存设置什么的)

有没有APP上的使用文档啊?

有些东西没有注释,不知道怎么启动。
有些有注释,但不清楚怎么使用,比如:
GoSeqRef中的initWithRefnum:(int32_t)refnum obj:(id)obj;的注释中写明refnum必须有go side提供,怎么拿到这个呢?

gomobile bind --target=ios github.com/v2ray/v2ray-core

go版本:go version go1.11.1 darwin/amd64
go env:
GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/popeye/Library/Caches/go-build"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/popeye/go"
GOPROXY=""
GORACE=""
GOROOT="/usr/local/Cellar/go/1.11.1/libexec"
GOTMPDIR=""
GOTOOLDIR="/usr/local/Cellar/go/1.11.1/libexec/pkg/tool/darwin_amd64"
GCCGO="gccgo"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/92/f7tk0g155dd3_dgx542w8m9c0000gn/T/go-build351574784=/tmp/go-build -gno-record-gcc-switches -fno-common"

以下是错误信息:
gomobile: /Users/popeye/go/bin/gobind -lang=go,objc -outdir=/var/folders/92/f7tk0g155dd3_dgx542w8m9c0000gn/T/gomobile-work-559861858 -tags=ios github.com/v2ray/v2ray-core failed: exit status 1
type-checking package "github.com/v2ray/v2ray-core" failed (/Users/popeye/go/src/github.com/v2ray/v2ray-core/config.go:8:2: could not import v2ray.com/core/common (cannot find package "v2ray.com/core/common" in any of:
/usr/local/Cellar/go/1.11.1/libexec/src/v2ray.com/core/common (from $GOROOT)
/Users/popeye/go/src/v2ray.com/core/common (from $GOPATH)))

v2rayNG在阉割了vpn的安卓平板上不能正常使用

环境:
昂达V80,安卓7.0,可临时ROOT,v2rayNG 0.5.9。

问题:
根据昂达在国外官网的描述,这台设备应该是被阉割了vpn服务。
实际使用时,设置里能看见vpn,从文件浏览器里也可以看见vpndialog.apk,有80k大小(参照从apkmirror上能看到HTC 7.0的vpndialog有85k,三星的有266k)。
在v2rayNG中点击连接会提示连接成功,测试连接时提示无法解析到google的ip。
试着用HTC的vpndialog替换了本机自带的vpndialog,问题照旧。
以下是替换了vpndialog后几次连接尝试留下的log。(域名与ip已经打码)

--------- beginning of system
--------- beginning of main
10-27 13:30:29.011 I/GoLog (12812): NoAutoConvert:true VpnConf:<Service:<Target:"/data/data/com.v2ray.ang/tun2socks" Args:"--netif-ipaddr" Args:"26.26.26.2" Args:"--netif-netmask" Args:"255.255.255.0" Args:"--socks-server-addr" Args:"127.0.0.1:10808" Args:"--tunfd" Args:"3" Args:"--tunmtu" Args:"1500" Args:"--sock-path" Args:"/dev/null" Args:"--loglevel" Args:"4" Args:"--enable-udprelay" VPNSetupArg:"m,1500 a,26.26.26.1,24 r,0.0.0.0,0" > PreparedDomainName:<TCPVersion:"tcp4" UDPVersion:"udp4" DomainNameList:"my.domain:443" > > RootModeConf:<Scripts:<UpScript:"#none" DownScript:"#none" > > Env:<Vars:<key:"V2RaySocksPort" value:"10808" > >
10-27 13:30:29.020 I/GoLog (12812):
10-27 13:30:29.202 I/GoLog (12812): Preparing DNS, my.domain:443
10-27 13:30:29.203 I/GoLog (12812): 2018/10/27 05:30:29 [Warning] Core: V2Ray 3.46 started
10-27 13:30:29.204 I/GoLog (12812): unforgivenessCloser() <-v.unforgivnesschan
10-27 13:30:30.731 I/GoLog (12812): (*net.UDPAddr)(0x400023eff0)(my.ip:443)
10-27 13:30:31.139 I/GoLog (12812): unforgivenessCloser() <-v.unforgivnesschan
10-27 13:30:31.259 I/GoLog (12812): /data/data/com.v2ray.ang/tun2socks
10-27 13:30:31.259 I/GoLog (12812): [--netif-ipaddr 26.26.26.2 --netif-netmask 255.255.255.0 --socks-server-addr 127.0.0.1:10808 --tunfd 3 --tunmtu 1500 --sock-path /dev/null --loglevel 4 --enable-udprelay]
10-27 13:30:31.259 I/GoLog (12812): Waiting....
10-27 13:31:40.374 I/GoLog (12812): Using Prepared Domain Name: TCP, my.domain:443
10-27 13:31:40.374 I/GoLog (12812): 2018/10/27 05:31:40 udp:127.0.0.1:55890 accepted udp:8.8.8.8:53
10-27 13:31:40.375 I/GoLog (12812): Protecting Sock: 42
10-27 13:31:40.380 I/GoLog (12812): (*net.TCPAddr)(0x400023ef00)(my.ip:443)
10-27 13:31:40.380 I/GoLog (12812): (map[string]*net.TCPAddr) (len=1) {
10-27 13:31:40.380 I/GoLog (12812): (string) (len=12) "my.domain:443": (*net.TCPAddr)(0x400023ef00)(my.ip:443)
10-27 13:31:40.380 I/GoLog (12812): }
10-27 13:31:40.387 I/GoLog (12812): 2018/10/27 05:31:40 tcp:127.0.0.1:55391 accepted tcp:my.ip:443
10-27 13:31:45.381 I/GoLog (12812): 2018/10/27 05:31:45 udp:127.0.0.1:38972 accepted udp:8.8.4.4:53
10-27 13:31:50.385 I/GoLog (12812): 2018/10/27 05:31:50 udp:127.0.0.1:55890 accepted udp:8.8.8.8:53
10-27 13:31:55.390 I/GoLog (12812): 2018/10/27 05:31:55 udp:127.0.0.1:38972 accepted udp:8.8.4.4:53
10-27 13:32:00.396 I/GoLog (12812): 2018/10/27 05:32:00 udp:127.0.0.1:60915 accepted udp:8.8.8.8:53
10-27 13:32:05.400 I/GoLog (12812): 2018/10/27 05:32:05 udp:127.0.0.1:32837 accepted udp:8.8.4.4:53
10-27 13:32:10.404 I/GoLog (12812): 2018/10/27 05:32:10 udp:127.0.0.1:60915 accepted udp:8.8.8.8:53
10-27 13:32:15.408 I/GoLog (12812): 2018/10/27 05:32:15 udp:127.0.0.1:32837 accepted udp:8.8.4.4:53
10-27 13:33:08.325 I/GoLog (12812): escortingDown() Killing all escorted process
10-27 13:33:08.326 I/GoLog (12812): escortingDown() v.unforgivnesschan <- 0
10-27 13:33:08.326 I/GoLog (12812): escortingDown() Killing all escorted process
10-27 13:33:08.326 I/GoLog (12812): escortingDown() v.unforgivnesschan <- 0
10-27 13:33:08.326 I/GoLog (12812): unforgivenessCloser() quit
10-27 13:33:08.326 I/GoLog (12812): unforgivenessCloser() quit
10-27 13:33:08.332 E/GoLog (12812): (0x0,0x0)
10-27 13:33:08.444 I/GoLog (12812): Exit
10-27 13:33:08.444 I/GoLog (12812): signal: killed
10-27 13:36:00.404 I/GoLog (12812): NoAutoConvert:true VpnConf:<Service:<Target:"/data/data/com.v2ray.ang/tun2socks" Args:"--netif-ipaddr" Args:"26.26.26.2" Args:"--netif-netmask" Args:"255.255.255.0" Args:"--socks-server-addr" Args:"127.0.0.1:10808" Args:"--tunfd" Args:"3" Args:"--tunmtu" Args:"1500" Args:"--sock-path" Args:"/dev/null" Args:"--loglevel" Args:"4" Args:"--enable-udprelay" VPNSetupArg:"m,1500 a,26.26.26.1,24 r,0.0.0.0,0" > PreparedDomainName:<TCPVersion:"tcp4" UDPVersion:"udp4" DomainNameList:"my.domain:443" > > RootModeConf:<Scripts:<UpScript:"#none" DownScript:"#none" > > Env:<Vars:<key:"V2RaySocksPort" value:"10808" > >
10-27 13:36:00.406 I/GoLog (12812):
10-27 13:36:00.409 I/GoLog (12812): Preparing DNS, my.domain:443
10-27 13:36:00.409 I/GoLog (12812): 2018/10/27 05:36:00 [Warning] Core: V2Ray 3.46 started
10-27 13:36:00.409 I/GoLog (12812): unforgivenessCloser() <-v.unforgivnesschan
10-27 13:36:01.245 I/GoLog (12812): (*net.UDPAddr)(0x4000098c60)(my.ip:443)
10-27 13:36:01.461 I/GoLog (12812): unforgivenessCloser() <-v.unforgivnesschan
10-27 13:36:01.595 I/GoLog (12812): /data/data/com.v2ray.ang/tun2socks
10-27 13:36:01.596 I/GoLog (12812): [--netif-ipaddr 26.26.26.2 --netif-netmask 255.255.255.0 --socks-server-addr 127.0.0.1:10808 --tunfd 3 --tunmtu 1500 --sock-path /dev/null --loglevel 4 --enable-udprelay]
10-27 13:36:01.596 I/GoLog (12812): Waiting....
10-27 13:36:05.050 I/GoLog (12812): 2018/10/27 05:36:05 udp:127.0.0.1:44890 accepted udp:80.80.80.80:53
10-27 13:36:05.050 I/GoLog (12812): Using Prepared Domain Name: TCP, my.domain:443
10-27 13:36:05.050 I/GoLog (12812): Protecting Sock: 43
10-27 13:36:05.052 I/GoLog (12812): (*net.TCPAddr)(0x4000156270)(my.ip:443)
10-27 13:36:05.052 I/GoLog (12812): (map[string]*net.TCPAddr) (len=1) {
10-27 13:36:05.052 I/GoLog (12812): (string) (len=12) "my.domain:443": (*net.TCPAddr)(0x4000156270)(my.ip:443)
10-27 13:36:05.052 I/GoLog (12812): }
10-27 13:36:05.061 I/GoLog (12812): 2018/10/27 05:36:05 tcp:127.0.0.1:55393 accepted tcp:my.ip:443
10-27 13:36:10.052 I/GoLog (12812): 2018/10/27 05:36:10 udp:127.0.0.1:44890 accepted udp:80.80.80.80:53
10-27 13:36:15.059 I/GoLog (12812): 2018/10/27 05:36:15 udp:127.0.0.1:58285 accepted udp:80.80.80.80:53
10-27 13:36:20.059 I/GoLog (12812): 2018/10/27 05:36:20 udp:127.0.0.1:58285 accepted udp:80.80.80.80:53
10-27 13:36:53.849 E/GoLog (12812): (0x0,0x0)
10-27 13:36:53.849 I/GoLog (12812): escortingDown() Killing all escorted process
10-27 13:36:53.850 I/GoLog (12812): escortingDown() v.unforgivnesschan <- 0
10-27 13:36:53.851 I/GoLog (12812): unforgivenessCloser() quit
10-27 13:36:53.854 I/GoLog (12812): escortingDown() Killing all escorted process
10-27 13:36:53.855 I/GoLog (12812): escortingDown() v.unforgivnesschan <- 0
10-27 13:36:53.855 I/GoLog (12812): unforgivenessCloser() quit
10-27 13:36:53.988 I/GoLog (12812): Exit
10-27 13:36:53.988 I/GoLog (12812): signal: killed
10-27 13:37:14.581 I/GoLog (12812): NoAutoConvert:true VpnConf:<Service:<Target:"/data/data/com.v2ray.ang/tun2socks" Args:"--netif-ipaddr" Args:"26.26.26.2" Args:"--netif-netmask" Args:"255.255.255.0" Args:"--socks-server-addr" Args:"127.0.0.1:10808" Args:"--tunfd" Args:"3" Args:"--tunmtu" Args:"1500" Args:"--sock-path" Args:"/dev/null" Args:"--loglevel" Args:"4" Args:"--enable-udprelay" VPNSetupArg:"m,1500 a,26.26.26.1,24 r,0.0.0.0,0" > PreparedDomainName:<TCPVersion:"tcp4" UDPVersion:"udp4" DomainNameList:"my.domain:443" > > RootModeConf:<Scripts:<UpScript:"#none" DownScript:"#none" > > Env:<Vars:<key:"V2RaySocksPort" value:"10808" > >
10-27 13:37:14.586 I/GoLog (12812):
10-27 13:37:14.590 I/GoLog (12812): 2018/10/27 05:37:14 [Warning] Core: V2Ray 3.46 started
10-27 13:37:14.590 I/GoLog (12812): Preparing DNS, my.domain:443
10-27 13:37:14.592 I/GoLog (12812): unforgivenessCloser() <-v.unforgivnesschan
10-27 13:37:14.597 I/GoLog (12812): (*net.UDPAddr)(0x400040bad0)(my.ip:443)
10-27 13:37:14.814 I/GoLog (12812): unforgivenessCloser() <-v.unforgivnesschan
10-27 13:37:14.879 I/GoLog (12812): /data/data/com.v2ray.ang/tun2socks
10-27 13:37:14.879 I/GoLog (12812): [--netif-ipaddr 26.26.26.2 --netif-netmask 255.255.255.0 --socks-server-addr 127.0.0.1:10808 --tunfd 3 --tunmtu 1500 --sock-path /dev/null --loglevel 4 --enable-udprelay]
10-27 13:37:14.879 I/GoLog (12812): Waiting....
10-27 13:37:21.049 I/GoLog (12812): 2018/10/27 05:37:21 udp:127.0.0.1:33297 accepted udp:80.80.80.80:53
10-27 13:37:21.050 I/GoLog (12812): Using Prepared Domain Name: TCP, my.domain:443
10-27 13:37:21.050 I/GoLog (12812): Protecting Sock: 43
10-27 13:37:21.058 I/GoLog (12812): (*net.TCPAddr)(0x400040b9e0)(my.ip:443)
10-27 13:37:21.058 I/GoLog (12812): (map[string]*net.TCPAddr) (len=1) {
10-27 13:37:21.058 I/GoLog (12812): (string) (len=12) "my.domain:443": (*net.TCPAddr)(0x400040b9e0)(my.ip:443)
10-27 13:37:21.059 I/GoLog (12812): }
10-27 13:37:21.068 I/GoLog (12812): 2018/10/27 05:37:21 tcp:127.0.0.1:55395 accepted tcp:my.ip:443
10-27 13:37:22.061 I/GoLog (12812): 2018/10/27 05:37:22 udp:127.0.0.1:58259 accepted udp:80.80.80.80:53
10-27 13:37:23.881 I/GoLog (12812): 2018/10/27 05:37:23 udp:127.0.0.1:47572 accepted udp:80.80.80.80:53
10-27 13:37:24.086 I/GoLog (12812): 2018/10/27 05:37:24 udp:127.0.0.1:38008 accepted udp:80.80.80.80:53
10-27 13:37:24.898 I/GoLog (12812): 2018/10/27 05:37:24 udp:127.0.0.1:42474 accepted udp:80.80.80.80:53
10-27 13:37:25.936 I/GoLog (12812): 2018/10/27 05:37:25 udp:127.0.0.1:45100 accepted udp:80.80.80.80:53
10-27 13:37:26.862 I/GoLog (12812): 2018/10/27 05:37:26 udp:127.0.0.1:59513 accepted udp:80.80.80.80:53
10-27 13:37:26.864 I/GoLog (12812): 2018/10/27 05:37:26 udp:127.0.0.1:36183 accepted udp:80.80.80.80:53
10-27 13:37:26.869 I/GoLog (12812): 2018/10/27 05:37:26 udp:127.0.0.1:34130 accepted udp:80.80.80.80:53
10-27 13:37:26.922 I/GoLog (12812): 2018/10/27 05:37:26 udp:127.0.0.1:44238 accepted udp:80.80.80.80:53
10-27 13:37:26.923 I/GoLog (12812): Using Prepared Domain Name: TCP, my.domain:443
10-27 13:37:26.923 I/GoLog (12812): Protecting Sock: 48
10-27 13:37:26.926 I/GoLog (12812): (*net.TCPAddr)(0x400040b9e0)(my.ip:443)
10-27 13:37:26.926 I/GoLog (12812): (map[string]*net.TCPAddr) (len=1) {
10-27 13:37:26.926 I/GoLog (12812): (string) (len=12) "my.domain:443": (*net.TCPAddr)(0x400040b9e0)(my.ip:443)
10-27 13:37:26.926 I/GoLog (12812): }
10-27 13:37:26.933 I/GoLog (12812): 2018/10/27 05:37:26 tcp:127.0.0.1:55397 accepted tcp:my.ip:443
10-27 13:37:26.949 I/GoLog (12812): 2018/10/27 05:37:26 udp:127.0.0.1:43696 accepted udp:80.80.80.80:53
10-27 13:37:28.981 I/GoLog (12812): 2018/10/27 05:37:28 udp:127.0.0.1:41270 accepted udp:80.80.80.80:53
10-27 13:37:29.092 I/GoLog (12812): 2018/10/27 05:37:29 udp:127.0.0.1:38008 accepted udp:80.80.80.80:53
10-27 13:37:31.870 I/GoLog (12812): 2018/10/27 05:37:31 udp:127.0.0.1:59513 accepted udp:80.80.80.80:53
10-27 13:37:31.883 I/GoLog (12812): 2018/10/27 05:37:31 udp:127.0.0.1:34130 accepted udp:80.80.80.80:53
10-27 13:37:31.887 I/GoLog (12812): 2018/10/27 05:37:31 udp:127.0.0.1:36183 accepted udp:80.80.80.80:53
10-27 13:37:31.929 I/GoLog (12812): 2018/10/27 05:37:31 udp:127.0.0.1:44238 accepted udp:80.80.80.80:53
10-27 13:37:34.019 I/GoLog (12812): 2018/10/27 05:37:34 udp:127.0.0.1:41270 accepted udp:80.80.80.80:53
10-27 13:37:34.111 I/GoLog (12812): 2018/10/27 05:37:34 udp:127.0.0.1:53108 accepted udp:80.80.80.80:53
10-27 13:37:34.118 I/GoLog (12812): 2018/10/27 05:37:34 udp:127.0.0.1:39204 accepted udp:80.80.80.80:53
10-27 13:37:36.874 I/GoLog (12812): 2018/10/27 05:37:36 udp:127.0.0.1:55690 accepted udp:80.80.80.80:53
10-27 13:37:36.874 I/GoLog (12812): 2018/10/27 05:37:36 udp:127.0.0.1:52481 accepted udp:80.80.80.80:53
10-27 13:37:36.874 I/GoLog (12812): 2018/10/27 05:37:36 udp:127.0.0.1:60276 accepted udp:80.80.80.80:53
10-27 13:37:36.882 I/GoLog (12812): 2018/10/27 05:37:36 udp:127.0.0.1:40053 accepted udp:80.80.80.80:53
10-27 13:37:36.882 I/GoLog (12812): 2018/10/27 05:37:36 udp:127.0.0.1:45476 accepted udp:80.80.80.80:53
10-27 13:37:36.882 I/GoLog (12812): 2018/10/27 05:37:36 udp:127.0.0.1:35582 accepted udp:80.80.80.80:53
10-27 13:37:36.933 I/GoLog (12812): 2018/10/27 05:37:36 udp:127.0.0.1:35412 accepted udp:80.80.80.80:53
10-27 13:37:36.934 I/GoLog (12812): 2018/10/27 05:37:36 udp:127.0.0.1:55209 accepted udp:80.80.80.80:53
10-27 13:37:39.023 I/GoLog (12812): 2018/10/27 05:37:39 udp:127.0.0.1:49614 accepted udp:80.80.80.80:53
10-27 13:37:39.023 I/GoLog (12812): 2018/10/27 05:37:39 udp:127.0.0.1:39732 accepted udp:80.80.80.80:53
10-27 13:37:39.102 I/GoLog (12812): 2018/10/27 05:37:39 udp:127.0.0.1:53108 accepted udp:80.80.80.80:53
10-27 13:37:39.118 I/GoLog (12812): 2018/10/27 05:37:39 udp:127.0.0.1:39204 accepted udp:80.80.80.80:53
10-27 13:37:41.875 I/GoLog (12812): 2018/10/27 05:37:41 udp:127.0.0.1:55690 accepted udp:80.80.80.80:53
10-27 13:37:41.876 I/GoLog (12812): 2018/10/27 05:37:41 udp:127.0.0.1:52481 accepted udp:80.80.80.80:53
10-27 13:37:41.890 I/GoLog (12812): 2018/10/27 05:37:41 udp:127.0.0.1:60276 accepted udp:80.80.80.80:53
10-27 13:37:41.895 I/GoLog (12812): 2018/10/27 05:37:41 udp:127.0.0.1:35582 accepted udp:80.80.80.80:53
10-27 13:37:41.896 I/GoLog (12812): 2018/10/27 05:37:41 udp:127.0.0.1:40053 accepted udp:80.80.80.80:53
10-27 13:37:41.897 I/GoLog (12812): 2018/10/27 05:37:41 udp:127.0.0.1:45476 accepted udp:80.80.80.80:53
10-27 13:37:41.944 I/GoLog (12812): 2018/10/27 05:37:41 udp:127.0.0.1:55209 accepted udp:80.80.80.80:53
10-27 13:37:41.944 I/GoLog (12812): 2018/10/27 05:37:41 udp:127.0.0.1:35412 accepted udp:80.80.80.80:53
10-27 13:37:44.025 I/GoLog (12812): 2018/10/27 05:37:44 udp:127.0.0.1:39732 accepted udp:80.80.80.80:53
10-27 13:37:44.025 I/GoLog (12812): 2018/10/27 05:37:44 udp:127.0.0.1:49614 accepted udp:80.80.80.80:53
10-27 13:37:44.115 I/GoLog (12812): 2018/10/27 05:37:44 udp:127.0.0.1:48495 accepted udp:80.80.80.80:53
10-27 13:37:44.117 I/GoLog (12812): 2018/10/27 05:37:44 udp:127.0.0.1:33497 accepted udp:80.80.80.80:53
10-27 13:37:46.880 I/GoLog (12812): 2018/10/27 05:37:46 udp:127.0.0.1:58496 accepted udp:80.80.80.80:53
10-27 13:37:46.880 I/GoLog (12812): 2018/10/27 05:37:46 udp:127.0.0.1:53808 accepted udp:80.80.80.80:53
10-27 13:37:46.886 I/GoLog (12812): 2018/10/27 05:37:46 udp:127.0.0.1:38656 accepted udp:80.80.80.80:53
10-27 13:37:46.888 I/GoLog (12812): 2018/10/27 05:37:46 udp:127.0.0.1:50619 accepted udp:80.80.80.80:53
10-27 13:37:46.888 I/GoLog (12812): 2018/10/27 05:37:46 udp:127.0.0.1:35354 accepted udp:80.80.80.80:53
10-27 13:37:46.890 I/GoLog (12812): 2018/10/27 05:37:46 udp:127.0.0.1:50558 accepted udp:80.80.80.80:53
10-27 13:37:46.955 I/GoLog (12812): 2018/10/27 05:37:46 udp:127.0.0.1:44832 accepted udp:80.80.80.80:53
10-27 13:37:46.966 I/GoLog (12812): 2018/10/27 05:37:46 udp:127.0.0.1:49207 accepted udp:80.80.80.80:53
10-27 13:37:49.035 I/GoLog (12812): 2018/10/27 05:37:49 udp:127.0.0.1:44292 accepted udp:80.80.80.80:53
10-27 13:37:49.038 I/GoLog (12812): 2018/10/27 05:37:49 udp:127.0.0.1:41117 accepted udp:80.80.80.80:53
10-27 13:37:49.124 I/GoLog (12812): 2018/10/27 05:37:49 udp:127.0.0.1:48495 accepted udp:80.80.80.80:53
10-27 13:37:49.125 I/GoLog (12812): 2018/10/27 05:37:49 udp:127.0.0.1:33497 accepted udp:80.80.80.80:53
10-27 13:37:49.644 I/GoLog (12812): 2018/10/27 05:37:49 udp:127.0.0.1:39400 accepted udp:80.80.80.80:53
10-27 13:37:50.670 I/GoLog (12812): 2018/10/27 05:37:50 udp:127.0.0.1:47044 accepted udp:80.80.80.80:53
10-27 13:37:51.887 I/GoLog (12812): 2018/10/27 05:37:51 udp:127.0.0.1:35354 accepted udp:80.80.80.80:53
10-27 13:37:51.888 I/GoLog (12812): 2018/10/27 05:37:51 udp:127.0.0.1:53808 accepted udp:80.80.80.80:53
10-27 13:37:51.888 I/GoLog (12812): 2018/10/27 05:37:51 udp:127.0.0.1:58496 accepted udp:80.80.80.80:53
10-27 13:37:51.888 I/GoLog (12812): 2018/10/27 05:37:51 udp:127.0.0.1:38656 accepted udp:80.80.80.80:53
10-27 13:37:51.892 I/GoLog (12812): 2018/10/27 05:37:51 udp:127.0.0.1:50558 accepted udp:80.80.80.80:53
10-27 13:37:51.893 I/GoLog (12812): 2018/10/27 05:37:51 udp:127.0.0.1:50619 accepted udp:80.80.80.80:53
10-27 13:37:51.948 I/GoLog (12812): 2018/10/27 05:37:51 udp:127.0.0.1:44832 accepted udp:80.80.80.80:53
10-27 13:37:51.972 I/GoLog (12812): 2018/10/27 05:37:51 udp:127.0.0.1:49207 accepted udp:80.80.80.80:53
10-27 13:37:54.040 I/GoLog (12812): 2018/10/27 05:37:54 udp:127.0.0.1:44292 accepted udp:80.80.80.80:53
10-27 13:37:54.043 I/GoLog (12812): 2018/10/27 05:37:54 udp:127.0.0.1:41117 accepted udp:80.80.80.80:53
10-27 13:37:54.131 I/GoLog (12812): 2018/10/27 05:37:54 udp:127.0.0.1:37992 accepted udp:80.80.80.80:53
10-27 13:37:56.905 I/GoLog (12812): 2018/10/27 05:37:56 udp:127.0.0.1:49780 accepted udp:80.80.80.80:53
10-27 13:37:56.933 I/GoLog (12812): 2018/10/27 05:37:56 udp:127.0.0.1:49706 accepted udp:80.80.80.80:53
10-27 13:37:56.938 I/GoLog (12812): 2018/10/27 05:37:56 udp:127.0.0.1:42824 accepted udp:80.80.80.80:53
10-27 13:37:56.965 I/GoLog (12812): 2018/10/27 05:37:56 udp:127.0.0.1:32983 accepted udp:80.80.80.80:53
10-27 13:37:59.055 I/GoLog (12812): 2018/10/27 05:37:59 udp:127.0.0.1:50248 accepted udp:80.80.80.80:53
10-27 13:37:59.056 I/GoLog (12812): 2018/10/27 05:37:59 udp:127.0.0.1:54276 accepted udp:80.80.80.80:53
10-27 13:37:59.066 I/GoLog (12812): 2018/10/27 05:37:59 udp:127.0.0.1:34641 accepted udp:80.80.80.80:53
10-27 13:37:59.068 I/GoLog (12812): Using Prepared Domain Name: TCP, my.domain:443
10-27 13:37:59.069 I/GoLog (12812): Protecting Sock: 51
10-27 13:37:59.072 I/GoLog (12812): (*net.TCPAddr)(0x400040b9e0)(my.ip:443)
10-27 13:37:59.072 I/GoLog (12812): (map[string]*net.TCPAddr) (len=1) {
10-27 13:37:59.072 I/GoLog (12812): (string) (len=12) "my.domain:443": (*net.TCPAddr)(0x400040b9e0)(my.ip:443)
10-27 13:37:59.072 I/GoLog (12812): }
10-27 13:37:59.085 I/GoLog (12812): 2018/10/27 05:37:59 tcp:127.0.0.1:55399 accepted tcp:my.ip:443
10-27 13:37:59.138 I/GoLog (12812): 2018/10/27 05:37:59 udp:127.0.0.1:37992 accepted udp:80.80.80.80:53
10-27 13:38:01.907 I/GoLog (12812): 2018/10/27 05:38:01 udp:127.0.0.1:49706 accepted udp:80.80.80.80:53
10-27 13:38:01.917 I/GoLog (12812): 2018/10/27 05:38:01 udp:127.0.0.1:49780 accepted udp:80.80.80.80:53
10-27 13:38:01.918 I/GoLog (12812): 2018/10/27 05:38:01 udp:127.0.0.1:42824 accepted udp:80.80.80.80:53
10-27 13:38:01.958 I/GoLog (12812): 2018/10/27 05:38:01 udp:127.0.0.1:32983 accepted udp:80.80.80.80:53
10-27 13:38:04.049 I/GoLog (12812): 2018/10/27 05:38:04 udp:127.0.0.1:50248 accepted udp:80.80.80.80:53
10-27 13:38:04.055 I/GoLog (12812): NOTICE(tun2socks): initializing BadVPN tun2socks 1.999.130
10-27 13:38:04.055 I/GoLog (12812): NOTICE(tun2socks): entering event loop
10-27 13:38:04.055 I/GoLog (12812): INFO(tun2socks): UDP: from device 42 bytes
10-27 13:38:04.056 I/GoLog (12812): INFO(tun2socks): 00001 (my.ip:443 26.26.26.1:49484): accepted
10-27 13:38:04.056 I/GoLog (12812): INFO(tun2socks): 00001 (my.ip:443 26.26.26.1:49484): SOCKS up
10-27 13:38:04.056 I/GoLog (12812): INFO(tun2socks): UDP: from device 42 bytes
10-27 13:38:04.056 I/GoLog (12812): INFO(tun2socks): UDP: from device 36 bytes
10-27 13:38:04.056 I/GoLog (12812): INFO(tun2socks): UDP: from device 42 bytes
10-27 13:38:04.056 I/GoLog (12812): INFO(tun2socks): UDP: from device 36 bytes
10-27 13:38:04.056 I/GoLog (12812): INFO(tun2socks): UDP: from device 31 bytes
10-27 13:38:04.056 I/GoLog (12812): INFO(tun2socks): UDP: from device 26 bytes
10-27 13:38:04.056 I/GoLog (12812): INFO(tun2socks): UDP: from device 29 bytes
10-27 13:38:04.056 I/GoLog (12812): INFO(tun2socks): UDP: from device 26 bytes
10-27 13:38:04.056 I/GoLog (12812): INFO(tun2socks): UDP: from device 36 bytes
10-27 13:38:04.056 I/GoLog (12812): INFO(tun2socks): 00002 (my.ip:443 26.26.26.1:49486): accepted
10-27 13:38:04.056 I/GoLog (12812): INFO(tun2socks): 00002 (my.ip:443 26.26.26.1:49486): SOCKS up
10-27 13:38:04.056 I/GoLog (12812): INFO(tun2socks): UDP: from device 31 bytes
10-27 13:38:04.056 I/GoLog (12812): INFO(tun2socks): UDP: from device 31 bytes
10-27 13:38:04.056 I/GoLog (12812): INFO(tun2socks): UDP: from device 42 bytes
10-27 13:38:04.056 I/GoLog (12812): INFO(tun2socks): UDP: from device 26 bytes
10-27 13:38:04.056 I/GoLog (12812): INFO(tun2socks): UDP: from device 29 bytes
10-27 13:38:04.056 I/GoLog (12812): INFO(tun2socks): UDP: from device 26 bytes
10-27 13:38:04.056 I/GoLog (12812): INFO(tun2socks): UDP: from device 36 bytes
10-27 13:38:04.056 I/GoLog (12812): INFO(tun2socks): UDP: from device 31 bytes
10-27 13:38:04.056 I/GoLog (12812): INFO(tun2socks): UDP: from device 42 bytes
10-27 13:38:04.056 I/GoLog (12812): INFO(tun2socks): UDP: from device 42 bytes
10-27 13:38:04.056 I/GoLog (12812): INFO(tun2socks): UDP: from device 26 bytes
10-27 13:38:04.056 I/GoLog (12812): INFO(tun2socks): UDP: from device 26 bytes
10-27 13:38:04.056 I/GoLog (12812): INFO(tun2socks): UDP: from device 29 bytes
10-27 13:38:04.056 I/GoLog (12812): INFO(tun2socks): UDP: from device 26 bytes
10-27 13:38:04.056 I/GoLog (12812): INFO(tun2socks): UDP: from device 29 bytes
10-27 13:38:04.056 I/GoLog (12812): INFO(tun2socks): UDP: from device 26 bytes
10-27 13:38:04.056 I/GoLog (12812): INFO(tun2socks): UDP: from device 36 bytes
10-27 13:38:04.056 I/GoLog (12812): INFO(tun2socks): UDP: from device 36 bytes
10-27 13:38:04.056 I/GoLog (12812): INFO(tun2socks): UDP: from device 31 bytes
10-27 13:38:04.056 I/GoLog (12812): INFO(tun2socks): UDP: from device 31 bytes
10-27 13:38:04.056 I/GoLog (12812): INFO(tun2socks): UDP: from device 42 bytes
10-27 13:38:04.056 I/GoLog (12812): INFO(tun2socks): UDP: from device 42 bytes
10-27 13:38:04.057 I/GoLog (12812): INFO(tun2socks): UDP: from device 26 bytes
10-27 13:38:04.057 I/GoLog (12812): INFO(tun2socks): UDP: from device 26 bytes
10-27 13:38:04.057 I/GoLog (12812): INFO(tun2socks): UDP: from device 29 bytes
10-27 13:38:04.057 I/GoLog (12812): INFO(tun2socks): UDP: from device 29 bytes
10-27 13:38:04.057 I/GoLog (12812): INFO(tun2socks): UDP: from device 26 bytes
10-27 13:38:04.057 I/GoLog (12812): INFO(tun2socks): UDP: from device 26 bytes
10-27 13:38:04.057 I/GoLog (12812): INFO(tun2socks): UDP: from device 36 bytes
10-27 13:38:04.057 I/GoLog (12812): INFO(tun2socks): UDP: from device 36 bytes
10-27 13:38:04.057 I/GoLog (12812): INFO(tun2socks): UDP: from device 31 bytes
10-27 13:38:04.057 I/GoLog (12812): INFO(tun2socks): UDP: from device 31 bytes
10-27 13:38:04.057 I/GoLog (12812): INFO(tun2socks): UDP: from device 42 bytes
10-27 13:38:04.057 I/GoLog (12812): INFO(tun2socks): UDP: from device 42 bytes
10-27 13:38:04.057 I/GoLog (12812): INFO(tun2socks): UDP: from device 26 bytes
10-27 13:38:04.057 I/GoLog (12812): INFO(tun2socks): UDP: from device 26 bytes
10-27 13:38:04.057 I/GoLog (12812): INFO(tun2socks): UDP: from device 29 bytes
10-27 13:38:04.057 I/GoLog (12812): INFO(tun2socks): UDP: from device 29 bytes
10-27 13:38:04.057 I/GoLog (12812): INFO(tun2socks): UDP: from device 26 bytes
10-27 13:38:04.057 I/GoLog (12812): INFO(tun2socks): UDP: from device 26 bytes
10-27 13:38:04.057 I/GoLog (12812): INFO(tun2socks): UDP: from device 36 bytes
10-27 13:38:04.057 I/GoLog (12812): INFO(tun2socks): UDP: from device 36 bytes
10-27 13:38:04.057 I/GoLog (12812): INFO(tun2socks): UDP: from device 31 bytes
10-27 13:38:04.057 I/GoLog (12812): INFO(tun2socks): UDP: from device 31 bytes
10-27 13:38:04.057 I/GoLog (12812): INFO(tun2socks): UDP: from device 42 bytes
10-27 13:38:04.057 I/GoLog (12812): INFO(tun2socks): UDP: from device 42 bytes
10-27 13:38:04.057 I/GoLog (12812): INFO(tun2socks): UDP: from device 31 bytes
10-27 13:38:04.057 I/GoLog (12812): INFO(tun2socks): UDP: from device 31 bytes
10-27 13:38:04.057 I/GoLog (12812): INFO(tun2socks): UDP: from device 26 bytes
10-27 13:38:04.057 I/GoLog (12812): INFO(tun2socks): UDP: from device 26 bytes
10-27 13:38:04.057 I/GoLog (12812): INFO(tun2socks): UDP: from device 29 bytes
10-27 13:38:04.057 I/GoLog (12812): INFO(tun2socks): UDP: from device 29 bytes
10-27 13:38:04.057 I/GoLog (12812): INFO(tun2socks): UDP: from device 26 bytes
10-27 13:38:04.058 I/GoLog (12812): INFO(tun2socks): UDP: from device 26 bytes
10-27 13:38:04.058 I/GoLog (12812): INFO(tun2socks): UDP: from device 36 bytes
10-27 13:38:04.058 I/GoLog (12812): INFO(tun2socks): UDP: from device 36 bytes
10-27 13:38:04.058 I/GoLog (12812): INFO(tun2socks): UDP: from device 31 bytes
10-27 13:38:04.058 I/GoLog (12812): INFO(tun2socks): UDP: from device 31 bytes
10-27 13:38:04.058 I/GoLog (12812): INFO(tun2socks): UDP: from device 42 bytes
10-27 13:38:04.058 I/GoLog (12812): INFO(tun2socks): UDP: from device 26 bytes
10-27 13:38:04.058 I/GoLog (12812): INFO(tun2socks): UDP: from device 26 bytes
10-27 13:38:04.058 I/GoLog (12812): INFO(tun2socks): UDP: from device 29 bytes
10-27 13:38:04.058 I/GoLog (12812): INFO(tun2socks): UDP: from device 36 bytes
10-27 13:38:04.058 I/GoLog (12812): INFO(tun2socks): UDP: from device 31 bytes
10-27 13:38:04.058 I/GoLog (12812): INFO(tun2socks): UDP: from device 31 bytes
10-27 13:38:04.058 I/GoLog (12812): INFO(tun2socks): UDP: from device 31 bytes
10-27 13:38:04.058 I/GoLog (12812): INFO(tun2socks): 00003 (my.ip:443 26.26.26.1:49488): accepted
10-27 13:38:04.058 I/GoLog (12812): INFO(tun2socks): 00003 (my.ip:443 26.26.26.1:49488): SOCKS up
10-27 13:38:04.058 I/GoLog (12812): INFO(tun2socks): UDP: from device 42 bytes
10-27 13:38:04.058 I/GoLog (12812): INFO(tun2socks): UDP: from device 26 bytes
10-27 13:38:04.058 I/GoLog (12812): INFO(tun2socks): UDP: from device 29 bytes
10-27 13:38:04.058 I/GoLog (12812): INFO(tun2socks): UDP: from device 26 bytes
10-27 13:38:04.058 I/GoLog (12812): INFO(tun2socks): UDP: from device 36 bytes
10-27 13:38:04.058 I/GoLog (12812): INFO(tun2socks): UDP: from device 31 bytes
10-27 13:38:04.058 I/GoLog (12812): INFO(tun2socks): UDP: from device 31 byt2018/10/27 05:38:04 udp:127.0.0.1:34641 accepted udp:80.80.80.80:53
10-27 13:38:04.058 I/GoLog (12812): 2018/10/27 05:38:04 udp:127.0.0.1:54276 accepted udp:80.80.80.80:53
10-27 13:38:07.477 I/GoLog (12812): escortingDown() Killing all escorted process
10-27 13:38:07.477 E/GoLog (12812): (0x0,0x0)
10-27 13:38:07.477 I/GoLog (12812): escortingDown() v.unforgivnesschan <- 0
10-27 13:38:07.477 I/GoLog (12812): escortingDown() Killing all escorted process
10-27 13:38:07.477 I/GoLog (12812): escortingDown() v.unforgivnesschan <- 0
10-27 13:38:07.477 I/GoLog (12812): unforgivenessCloser() quit
10-27 13:38:07.477 I/GoLog (12812): unforgivenessCloser() quit
10-27 13:38:07.605 I/GoLog (12812): Exit
10-27 13:38:07.616 I/GoLog (12812): signal: killed

诉求:
1、想请教是否可以从log里判断是哪个系统组件有问题,并加以修改?
2、是否有办法绕过系统提供的api直接全局代理?

v2ray + tls +websocket 的断流很可能是第三方客户端导致的 [纯讨论,不涉及issues]

From v2ray-core created by choicky : v2ray/v2ray-core#1085

PC 端 和 iOS 都在使用相同服务器的 v2ray + tls +websocket 。
我的PC端没有发现明显的断流现象,而 iOS 有很明显的断流现象,尤其是看 twitter 的视频时,通常在10秒钟左右就断流了。

最近折腾了一下,发现:

  1. iOS 下的 Shadowrocket 使用上述组合一定会断流
    不管我是否在 v2ray.service 设置 /usr/bin/env v2ray.ray.buffer.size=1

Updated on May 03, 2018:

  • Shadowrocket 在 v2ray.ray.buffer.size=0情况下依然有明显的断流。
  1. iOS 下 Kitsunebi 没发现断流
    不管我是否在 v2ray.service 设置 /usr/bin/env v2ray.ray.buffer.size=1
    btw,只测试了半个小时左右。如以后有新发现,会update在这里

  2. iOS 下 Pepi 在设置了 /usr/bin/env v2ray.ray.buffer.size=1之后能避免断流
    如没有设置,则 Pepi 跟 Shadowrocket 类似,会断流。

Updated on May 03, 2018:

  • Pepi在 v2ray.ray.buffer.size=1情况下依然有断流,只是断流现象比不设置时有所改善。
  • Pepi在 v2ray.ray.buffer.size=0情况下暂时没发现断流

btw,设置办法如下:
/etc/systemd/system/multi-user.target.wants/v2ray.service 中,

ExecStart=/usr/bin/v2ray/v2ray -config /etc/v2ray/config.json

改为

ExecStart=/usr/bin/env v2ray.ray.buffer.size=1 /usr/bin/v2ray/v2ray -config /etc/v2ray/config.json

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.