diff --git a/Caddy+h2/Caddyfile b/Caddy+h2/Caddyfile new file mode 100644 index 0000000..d55a735 --- /dev/null +++ b/Caddy+h2/Caddyfile @@ -0,0 +1,11 @@ +https://example.domain { + tls kiri_so@outlook.com + root /var/www/ + + proxy /test https://127.0.0.1:8443 { + header_upstream Host "example.domain" + header_upstream X-Forwarded-Proto "https" + insecure_skip_verify + } + +} \ No newline at end of file diff --git a/Caddy+h2/config_client.json b/Caddy+h2/config_client.json new file mode 100755 index 0000000..e4e7ed5 --- /dev/null +++ b/Caddy+h2/config_client.json @@ -0,0 +1,111 @@ +{ + "outbound": { + "streamSettings": { + "network": "h2", + "kcpSettings": null, + "httpSettings": { + "host": [ + "example.domain" + ], + "path": "/test" + }, + "tcpSettings": null, + "tlsSettings": {}, + "security": "tls" + }, + "tag": "agentout", + "protocol": "vmess", + "mux": { + "enabled": true + }, + "settings": { + "vnext": [ + { + "users": [ + { + "alterId": 100, + "security": "aes-128-gcm", + "id": "0cdf8a45-303d-4fed-9780-29aa7f54175e" + } + ], + "port": 443, + "address": "example.domain" + } + ] + } + }, + "log": { + "access": "", + "loglevel": "info", + "error": "" + }, + "outboundDetour": [ + { + "tag": "direct", + "protocol": "freedom", + "settings": { + "response": null + } + }, + { + "tag": "blockout", + "protocol": "blackhole", + "settings": { + "response": { + "type": "http" + } + } + } + ], + "inbound": { + "streamSettings": null, + "settings": { + "ip": "127.0.0.1", + "udp": true, + "clients": null, + "auth": "noauth" + }, + "protocol": "socks", + "port": 1080, + "listen": "0.0.0.0" + }, + "inboundDetour": null, + "routing": { + "settings": { + "rules": [ + { + "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, + "type": "field", + "port": null, + "outboundTag": "direct" + } + ], + "domainStrategy": "IPIfNonMatch" + }, + "strategy": "rules" + }, + "dns": { + "servers": [ + "8.8.8.8", + "8.8.4.4", + "localhost" + ] + } +} \ No newline at end of file diff --git a/Caddy+h2/config_server.json b/Caddy+h2/config_server.json new file mode 100755 index 0000000..7fa11b2 --- /dev/null +++ b/Caddy+h2/config_server.json @@ -0,0 +1,91 @@ +{ + "outbound": { + "streamSettings": null, + "tag": null, + "protocol": "freedom", + "mux": null, + "settings": null + }, + "log": { + "access": "/var/log/v2ray/access.log", + "loglevel": "error", + "error": "/var/log/v2ray/error.log" + }, + "inboundDetour": null, + "inbound": { + "streamSettings": { + "network": "h2", + "kcpSettings": null, + "httpSettings": { + "host": [ + "example.domain" + ], + "path": "/test" + }, + "tcpSettings": null, + "tlsSettings": { + "certificates": [ + { + "keyFile": "/path/to/example.domain.key", + "certificateFile": "/path/to/example.domain/fullchain.cer" + } + ] + }, + "security": "tls" + }, + "listen": null, + "protocol": "vmess", + "port": 8443, + "settings": { + "ip": null, + "udp": true, + "clients": [ + { + "alterId": 100, + "security": "aes-128-gcm", + "id": "0cdf8a45-303d-4fed-9780-29aa7f54175e" + } + ], + "auth": null + } + }, + "outboundDetour": [ + { + "tag": "blocked", + "protocol": "blackhole", + "settings": null + } + ], + "routing": { + "strategy": "rules", + "settings": { + "rules": [ + { + "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, + "type": "field", + "port": null, + "outboundTag": "blocked" + } + ], + "domainStrategy": null + } + }, + "dns": null +} \ No newline at end of file diff --git a/HTTP2/config_client.json b/HTTP2/config_client.json new file mode 100755 index 0000000..e4e7ed5 --- /dev/null +++ b/HTTP2/config_client.json @@ -0,0 +1,111 @@ +{ + "outbound": { + "streamSettings": { + "network": "h2", + "kcpSettings": null, + "httpSettings": { + "host": [ + "example.domain" + ], + "path": "/test" + }, + "tcpSettings": null, + "tlsSettings": {}, + "security": "tls" + }, + "tag": "agentout", + "protocol": "vmess", + "mux": { + "enabled": true + }, + "settings": { + "vnext": [ + { + "users": [ + { + "alterId": 100, + "security": "aes-128-gcm", + "id": "0cdf8a45-303d-4fed-9780-29aa7f54175e" + } + ], + "port": 443, + "address": "example.domain" + } + ] + } + }, + "log": { + "access": "", + "loglevel": "info", + "error": "" + }, + "outboundDetour": [ + { + "tag": "direct", + "protocol": "freedom", + "settings": { + "response": null + } + }, + { + "tag": "blockout", + "protocol": "blackhole", + "settings": { + "response": { + "type": "http" + } + } + } + ], + "inbound": { + "streamSettings": null, + "settings": { + "ip": "127.0.0.1", + "udp": true, + "clients": null, + "auth": "noauth" + }, + "protocol": "socks", + "port": 1080, + "listen": "0.0.0.0" + }, + "inboundDetour": null, + "routing": { + "settings": { + "rules": [ + { + "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, + "type": "field", + "port": null, + "outboundTag": "direct" + } + ], + "domainStrategy": "IPIfNonMatch" + }, + "strategy": "rules" + }, + "dns": { + "servers": [ + "8.8.8.8", + "8.8.4.4", + "localhost" + ] + } +} \ No newline at end of file diff --git a/HTTP2/config_server.json b/HTTP2/config_server.json new file mode 100755 index 0000000..bb8ecf1 --- /dev/null +++ b/HTTP2/config_server.json @@ -0,0 +1,91 @@ +{ + "outbound": { + "streamSettings": null, + "tag": null, + "protocol": "freedom", + "mux": null, + "settings": null + }, + "log": { + "access": "/var/log/v2ray/access.log", + "loglevel": "error", + "error": "/var/log/v2ray/error.log" + }, + "inboundDetour": null, + "inbound": { + "streamSettings": { + "network": "h2", + "kcpSettings": null, + "httpSettings": { + "host": [ + "example.domain" + ], + "path": "/test" + }, + "tcpSettings": null, + "tlsSettings": { + "certificates": [ + { + "keyFile": "/path/to/example.domain.key", + "certificateFile": "/path/to/example.domain/fullchain.cer" + } + ] + }, + "security": "tls" + }, + "listen": null, + "protocol": "vmess", + "port": 443, + "settings": { + "ip": null, + "udp": true, + "clients": [ + { + "alterId": 100, + "security": "aes-128-gcm", + "id": "0cdf8a45-303d-4fed-9780-29aa7f54175e" + } + ], + "auth": null + } + }, + "outboundDetour": [ + { + "tag": "blocked", + "protocol": "blackhole", + "settings": null + } + ], + "routing": { + "strategy": "rules", + "settings": { + "rules": [ + { + "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, + "type": "field", + "port": null, + "outboundTag": "blocked" + } + ], + "domainStrategy": null + } + }, + "dns": null +} \ No newline at end of file diff --git a/How_To_Choose.jpg b/How_To_Choose.jpg new file mode 100755 index 0000000..ff5a6e6 Binary files /dev/null and b/How_To_Choose.jpg differ diff --git a/MITM/client.json b/MITM/client.json new file mode 100644 index 0000000..c7fcd03 --- /dev/null +++ b/MITM/client.json @@ -0,0 +1,194 @@ +{ + "inbound": { + "allowPassive": true, + "listen": "127.0.0.1", + "port": 10854, + "protocol": "socks", + "settings": { + "auth": "noauth", + "udp": true + }, + "tag": "vanillas" + }, + "inboundDetour": [ + { + "listen": "127.0.0.1", + "port": 10855, + "protocol": "http", + "settings": {}, + "tag": "vanilla" + }, + { + "listen": "0.0.0.0", + "port": 10856, + "tag": "mitm", + "protocol": "dokodemo-door", + "settings": { + "network": "tcp", + "timeout": 0, + "address": "kiri.moe", + "port": 443, + "followRedirect": true + }, + "streamSettings": { + "security": "tls", + "tlsSettings": { + "allowInsecure": false, + "alpn": [ + "http/1.1" + ], + "certificates": [ + { + "usage": "issue", + "alpn": [ + "http/1.1" + ], + "certificateFile": "/path/to/ca.cer", + "keyFile": "/path/to/ca.key" + } + ] + } + }, + "sniffing": { + "enabled": false, + "destOverride": [ + "http", + "tls" + ] + } + } + ], + "log": { + "access": "", + "error": "", + "loglevel": "info" + }, + "outbound": { + "mux": { + "enabled": true + }, + "protocol": "vmess", + "proxySettings": { + "tag": "proxy" + }, + "settings": { + "vnext": [ + { + "address": "YOUR_IP", + "port": 11451, + "users": [ + { + "alterId": 16, + "id": "b4fe5665-cebe-d292-0e66-9139958200f4", + "level": 0, + "security": "auto" + } + ] + } + ] + }, + "streamSettings": { + "network": "tcp", + "security": "none" + } + }, + "outboundDetour": [ + { + "protocol": "freedom", + "settings": {}, + "tag": "direct" + }, + { + "protocol": "freedom", + "settings": { + "redirect": "127.0.0.1:10856" + }, + "tag": "reentry" + }, + { + "mux": { + "enabled": true + }, + "protocol": "vmess", + "proxySettings": { + "tag": "proxy" + }, + "settings": { + "vnext": [ + { + "address": "YOUR_IP", + "port": 11452, + "users": [ + { + "alterId": 16, + "id": "b4fe5665-cebe-d292-0e66-9139958200f4", + "level": 0, + "security": "auto" + } + ] + } + ] + }, + "streamSettings": { + "network": "tcp", + "security": "none" + }, + "tag": "notouch" + } + ], + "routing": { + "settings": { + "rules": [ + { + "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": "field" + }, + { + "inboundTag": [ + "vanilla", + "vanillas" + ], + "port": "443", + "outboundTag": "reentry", + "type": "field" + }, + { + "inboundTag": [ + "vanilla", + "vanillas" + ], + "port": "0-442", + "outboundTag": "notouch", + "type": "field" + }, + { + "inboundTag": [ + "vanilla", + "vanillas" + ], + "port": "444-65535", + "outboundTag": "notouch", + "type": "field" + } + ] + }, + "strategy": "rules" + } +} \ No newline at end of file diff --git a/MITM/readme.md b/MITM/readme.md new file mode 100644 index 0000000..ac99663 --- /dev/null +++ b/MITM/readme.md @@ -0,0 +1 @@ +如您对这个配置分类存在疑问,请移步 \ No newline at end of file diff --git a/MITM/server.json b/MITM/server.json new file mode 100644 index 0000000..831b25d --- /dev/null +++ b/MITM/server.json @@ -0,0 +1,117 @@ +{ + "inbound": { + "allowPassive": true, + "port": 11451, + "protocol": "vmess", + "settings": { + "clients": [ + { + "alterId": 16, + "id": "b4fe5665-cebe-d292-0e66-9139958200f4", + "level": 1, + "security": "auto" + } + ] + }, + "streamSettings": { + "network": "tcp", + "security": "none" + } + }, + "inboundDetour": [ + { + "allowPassive": true, + "port": 11452, + "tag": "notouch", + "protocol": "vmess", + "settings": { + "clients": [ + { + "alterId": 16, + "id": "b4fe5665-cebe-d292-0e66-9139958200f4", + "level": 1, + "security": "auto" + } + ] + }, + "streamSettings": { + "network": "tcp", + "security": "none" + } + } + ], + "log": { + "access": "", + "error": "", + "loglevel": "info" + }, + "outbound": { + "protocol": "freedom", + "settings": { + "domainStrategy": "AsIs", + "timeout": 0 + }, + "streamSettings": { + "security": "tls", + "tlsSettings": { + "allowInsecure": false, + "alpn": [ + "http/1.1" + ] + } + } + }, + "outboundDetour": [ + { + "protocol": "blackhole", + "settings": {}, + "tag": "blocked" + }, + { + "protocol": "freedom", + "tag": "nointercept", + "settings": { + "domainStrategy": "AsIs", + "timeout": 0 + }, + "streamSettings": { + "security": "none" + } + } + ], + "routing": { + "settings": { + "rules": [ + { + "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", + "type": "field" + }, + { + "inboundTag": [ + "notouch" + ], + "outboundTag": "nointercept", + "type": "field" + } + ] + }, + "strategy": "rules" + } +} \ No newline at end of file diff --git a/README.md b/README.md old mode 100644 new mode 100755 index 39db056..2bb9861 --- a/README.md +++ b/README.md @@ -11,6 +11,13 @@ 如果你在配置过程中遇到问题,请再看一遍文档,或是在Google搜索以求自己解决问题。当你确认你的问题无法独立解决时,你可以在v2ray的telegram群组里求助,或是在v2ray官方项目中提交issue。
遇事不决,请RTFM/STFW。
+ +**如何选取适合自己的配置**: +![](How_To_Choose.jpg) +附加说明:
+尽管websocket+TLS+Web可能称得上是现阶段最好的方案,但**绝对**不是推荐新手一上来就尝试的方案,更不是V2Ray唯一的用法。
+同时,你应当了解,每个地区的网络状况不同(主要指对不同协议的QoS程度),你可以将所有配置都尝试一遍来寻找最适合自己的,尽量少问、最好不问"为什么我的V2Ray这么慢?"这样的问题。 + 玩的愉快。 感谢Project V的所有开发人员,以及v2ray.fun的作者雨落无声。 diff --git a/Shadowsocks+mKcp/config_cilent.json b/Shadowsocks+mKcp/config_cilent.json old mode 100644 new mode 100755 diff --git a/Shadowsocks+mKcp/config_server.json b/Shadowsocks+mKcp/config_server.json old mode 100644 new mode 100755 diff --git a/TCP+TLS/config_client.json b/TCP+TLS/config_client.json new file mode 100755 index 0000000..957a3fd --- /dev/null +++ b/TCP+TLS/config_client.json @@ -0,0 +1,106 @@ +{ + "dns": { + "servers": [ + "8.8.8.8", + "8.8.4.4", + "localhost" + ] + }, + "inbound": { + "listen": "0.0.0.0", + "port": 1080, + "protocol": "socks", + "settings": { + "auth": "noauth", + "clients": null, + "ip": "127.0.0.1", + "udp": true + }, + "streamSettings": null + }, + "inboundDetour": null, + "log": { + "access": "/var/log/v2ray/access.log", + "error": "/var/log/v2ray/error.log", + "loglevel": "info" + }, + "outbound": { + "mux": { + "enabled": true + }, + "protocol": "vmess", + "settings": { + "vnext": [ + { + "address": "example.domain", + "port": 443, + "users": [ + { + "alterId": 64, + "id": "0cdf8a45-303d-4fed-9780-29aa7f54175e", + "security": "none" + } + ] + } + ] + }, + "streamSettings": { + "kcpSettings": null, + "network": "tcp", + "security": "tls", + "tcpSettings": null, + "tlsSettings": {}, + "wsSettings": null + }, + "tag": "agentout" + }, + "outboundDetour": [ + { + "protocol": "freedom", + "settings": { + "response": null + }, + "tag": "direct" + }, + { + "protocol": "blackhole", + "settings": { + "response": { + "type": "http" + } + }, + "tag": "blockout" + } + ], + "routing": { + "settings": { + "domainStrategy": "IPIfNonMatch", + "rules": [ + { + "domain": null, + "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", + "port": null, + "type": "field" + } + ] + }, + "strategy": "rules" + } +} \ No newline at end of file diff --git a/TCP+TLS/config_server.json b/TCP+TLS/config_server.json new file mode 100755 index 0000000..673edf3 --- /dev/null +++ b/TCP+TLS/config_server.json @@ -0,0 +1,86 @@ +{ + "dns": null, + "inbound": { + "listen": null, + "port": 443, + "protocol": "vmess", + "settings": { + "auth": null, + "clients": [ + { + "alterId": 64, + "id": "e2b39869-7e9e-411b-a561-00904419bed9", + "security": "none" + } + ], + "ip": null, + "udp": true + }, + "streamSettings": { + "kcpSettings": null, + "network": "tcp", + "security": "tls", + "tcpSettings": null, + "tlsSettings": { + "certificates": [ + { + "certificateFile": "/path/to/example.domain/fullchain.cer", + "keyFile": "/path/to/example.domain.key" + } + ] + }, + "wsSettings": null + } + }, + "inboundDetour": null, + "log": { + "access": "/var/log/v2ray/access.log", + "error": "/var/log/v2ray/error.log", + "loglevel": "info" + }, + "outbound": { + "mux": null, + "protocol": "freedom", + "settings": null, + "streamSettings": null, + "tag": null + }, + "outboundDetour": [ + { + "protocol": "blackhole", + "settings": null, + "tag": "blocked" + } + ], + "routing": { + "settings": { + "domainStrategy": null, + "rules": [ + { + "domain": null, + "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", + "port": null, + "type": "field" + } + ] + }, + "strategy": "rules" + } +} \ No newline at end of file diff --git a/TCP/config_client.json b/TCP/config_client.json old mode 100644 new mode 100755 index 4631914..4f9f35d --- a/TCP/config_client.json +++ b/TCP/config_client.json @@ -14,15 +14,19 @@ "enabled": true }, "settings": { - "vnext": [{ - "users": [{ - "alterId": 100, - "security": "aes-128-gcm", - "id": "e2b39869-7e9e-411b-a561-00904419bed9" - }], - "port": 1234, - "address": "Your_IP_Address" - }] + "vnext": [ + { + "users": [ + { + "alterId": 100, + "security": "aes-128-gcm", + "id": "e2b39869-7e9e-411b-a561-00904419bed9" + } + ], + "port": 1234, + "address": "Your_IP_Address" + } + ] } }, "log": { @@ -30,7 +34,8 @@ "loglevel": "info", "error": "" }, - "outboundDetour": [{ + "outboundDetour": [ + { "tag": "direct", "protocol": "freedom", "settings": { @@ -62,29 +67,31 @@ "inboundDetour": null, "routing": { "settings": { - "rules": [{ - "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, - "type": "field", - "port": null, - "outboundTag": "direct" - }], + "rules": [ + { + "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, + "type": "field", + "port": null, + "outboundTag": "direct" + } + ], "domainStrategy": "IPIfNonMatch" }, "strategy": "rules" @@ -96,4 +103,4 @@ "localhost" ] } -} +} \ No newline at end of file diff --git a/TCP/config_server.json b/TCP/config_server.json old mode 100644 new mode 100755 index ff95a6d..7edc5c2 --- a/TCP/config_server.json +++ b/TCP/config_server.json @@ -27,47 +27,53 @@ "settings": { "ip": null, "udp": true, - "clients": [{ - "alterId": 100, - "security": "aes-128-gcm", - "id": "e2b39869-7e9e-411b-a561-00904419bed9" - }], + "clients": [ + { + "alterId": 100, + "security": "aes-128-gcm", + "id": "e2b39869-7e9e-411b-a561-00904419bed9" + } + ], "auth": null } }, - "outboundDetour": [{ - "tag": "blocked", - "protocol": "blackhole", - "settings": null - }], + "outboundDetour": [ + { + "tag": "blocked", + "protocol": "blackhole", + "settings": null + } + ], "routing": { "strategy": "rules", "settings": { - "rules": [{ - "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, - "type": "field", - "port": null, - "outboundTag": "blocked" - }], + "rules": [ + { + "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, + "type": "field", + "port": null, + "outboundTag": "blocked" + } + ], "domainStrategy": null } }, "dns": null -} +} \ No newline at end of file diff --git a/http/config_client.json b/http/config_client.json old mode 100644 new mode 100755 index 308be18..27f3791 --- a/http/config_client.json +++ b/http/config_client.json @@ -57,15 +57,19 @@ "enabled": true }, "settings": { - "vnext": [{ - "users": [{ - "alterId": 100, - "security": "aes-128-gcm", - "id": "e2b39869-7e9e-411b-a561-00904419bed9" - }], - "port": 1234, - "address": "Your_IP_Address" - }] + "vnext": [ + { + "users": [ + { + "alterId": 100, + "security": "aes-128-gcm", + "id": "e2b39869-7e9e-411b-a561-00904419bed9" + } + ], + "port": 1234, + "address": "Your_IP_Address" + } + ] } }, "log": { @@ -73,7 +77,8 @@ "loglevel": "info", "error": "" }, - "outboundDetour": [{ + "outboundDetour": [ + { "tag": "direct", "protocol": "freedom", "settings": { @@ -105,29 +110,31 @@ "inboundDetour": null, "routing": { "settings": { - "rules": [{ - "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, - "type": "field", - "port": null, - "outboundTag": "direct" - }], + "rules": [ + { + "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, + "type": "field", + "port": null, + "outboundTag": "direct" + } + ], "domainStrategy": "IPIfNonMatch" }, "strategy": "rules" @@ -139,4 +146,4 @@ "localhost" ] } -} +} \ No newline at end of file diff --git a/http/config_server.json b/http/config_server.json old mode 100644 new mode 100755 index 4ee60de..dfa20fd --- a/http/config_server.json +++ b/http/config_server.json @@ -11,11 +11,13 @@ "loglevel": "info", "error": "/var/log/v2ray/error.log" }, - "outboundDetour": [{ - "tag": "blocked", - "protocol": "blackhole", - "settings": null - }], + "outboundDetour": [ + { + "tag": "blocked", + "protocol": "blackhole", + "settings": null + } + ], "inbound": { "streamSettings": { "network": "tcp", @@ -63,8 +65,7 @@ "reason": "OK", "version": "1.1" } - }, - "connectionReuse": true + } }, "tlsSettings": {}, "security": "" @@ -72,11 +73,13 @@ "settings": { "ip": null, "udp": true, - "clients": [{ - "alterId": 100, - "security": "aes-128-gcm", - "id": "e2b39869-7e9e-411b-a561-00904419bed9" - }], + "clients": [ + { + "alterId": 100, + "security": "aes-128-gcm", + "id": "e2b39869-7e9e-411b-a561-00904419bed9" + } + ], "auth": null }, "protocol": "vmess", @@ -86,32 +89,34 @@ "inboundDetour": null, "routing": { "settings": { - "rules": [{ - "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, - "type": "field", - "port": null, - "outboundTag": "blocked" - }], + "rules": [ + { + "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, + "type": "field", + "port": null, + "outboundTag": "blocked" + } + ], "domainStrategy": null }, "strategy": "rules" }, "dns": null -} +} \ No newline at end of file diff --git a/mKcp 伪装微信视频流量/config_client.json b/mKcp 伪装微信视频流量/config_client.json old mode 100644 new mode 100755 index c0c5db1..e92a562 --- a/mKcp 伪装微信视频流量/config_client.json +++ b/mKcp 伪装微信视频流量/config_client.json @@ -3,7 +3,7 @@ "streamSettings": { "network": "kcp", "kcpSettings": { - "uplinkCapacity": 100, + "uplinkCapacity": 15, "downlinkCapacity": 100, "readBufferSize": 2, "mtu": 1350, @@ -27,15 +27,19 @@ "enabled": true }, "settings": { - "vnext": [{ - "users": [{ - "alterId": 100, - "security": "aes-128-gcm", - "id": "e2b39869-7e9e-411b-a561-00904419bed9" - }], - "port": 1234, - "address": "Your_IP_Address" - }] + "vnext": [ + { + "users": [ + { + "alterId": 100, + "security": "aes-128-gcm", + "id": "e2b39869-7e9e-411b-a561-00904419bed9" + } + ], + "port": 1234, + "address": "Your_IP_Address" + } + ] } }, "log": { @@ -43,7 +47,8 @@ "loglevel": "info", "error": "" }, - "outboundDetour": [{ + "outboundDetour": [ + { "tag": "direct", "protocol": "freedom", "settings": { @@ -75,29 +80,31 @@ "inboundDetour": null, "routing": { "settings": { - "rules": [{ - "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, - "type": "field", - "port": null, - "outboundTag": "direct" - }], + "rules": [ + { + "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, + "type": "field", + "port": null, + "outboundTag": "direct" + } + ], "domainStrategy": "IPIfNonMatch" }, "strategy": "rules" @@ -109,4 +116,4 @@ "localhost" ] } -} +} \ No newline at end of file diff --git a/mKcp 伪装微信视频流量/config_server.json b/mKcp 伪装微信视频流量/config_server.json old mode 100644 new mode 100755 index bde7655..9edc1c8 --- a/mKcp 伪装微信视频流量/config_server.json +++ b/mKcp 伪装微信视频流量/config_server.json @@ -11,16 +11,18 @@ "loglevel": "info", "error": "/var/log/v2ray/error.log" }, - "outboundDetour": [{ - "tag": "blocked", - "protocol": "blackhole", - "settings": null - }], + "outboundDetour": [ + { + "tag": "blocked", + "protocol": "blackhole", + "settings": null + } + ], "inbound": { "streamSettings": { "network": "kcp", "kcpSettings": { - "uplinkCapacity": 100, + "uplinkCapacity": 15, "downlinkCapacity": 100, "readBufferSize": 2, "mtu": 1350, @@ -41,11 +43,13 @@ "settings": { "ip": null, "udp": true, - "clients": [{ - "alterId": 100, - "security": "aes-128-gcm", - "id": "e2b39869-7e9e-411b-a561-00904419bed9" - }], + "clients": [ + { + "alterId": 100, + "security": "aes-128-gcm", + "id": "e2b39869-7e9e-411b-a561-00904419bed9" + } + ], "auth": null }, "protocol": "vmess", @@ -55,32 +59,34 @@ "inboundDetour": null, "routing": { "settings": { - "rules": [{ - "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, - "type": "field", - "port": null, - "outboundTag": "blocked" - }], + "rules": [ + { + "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, + "type": "field", + "port": null, + "outboundTag": "blocked" + } + ], "domainStrategy": null }, "strategy": "rules" }, "dns": null -} +} \ No newline at end of file diff --git a/mKcp/config_client.json b/mKcp/config_client.json old mode 100644 new mode 100755 index 05ac94a..04e367b --- a/mKcp/config_client.json +++ b/mKcp/config_client.json @@ -1,9 +1,9 @@ -`{ +{ "outbound": { "streamSettings": { "network": "kcp", "kcpSettings": { - "uplinkCapacity": 100, + "uplinkCapacity": 15, "downlinkCapacity": 100, "readBufferSize": 2, "mtu": 1350, @@ -109,4 +109,4 @@ "localhost" ] } -}` +} diff --git a/mKcp/config_server.json b/mKcp/config_server.json old mode 100644 new mode 100755 index ba6e1aa..e163f1c --- a/mKcp/config_server.json +++ b/mKcp/config_server.json @@ -20,7 +20,7 @@ "streamSettings": { "network": "kcp", "kcpSettings": { - "uplinkCapacity": 100, + "uplinkCapacity": 15, "downlinkCapacity": 100, "readBufferSize": 2, "mtu": 1350, diff --git a/socks5-tls/config_client.json b/socks5-tls/config_client.json new file mode 100644 index 0000000..5339657 --- /dev/null +++ b/socks5-tls/config_client.json @@ -0,0 +1,44 @@ +{ + "log": { + "loglevel": "warning" + }, + "inbound": { + "port": 6789, + "listen": "127.0.0.1", + "protocol": "socks", + "settings": { + "auth": "noauth", + "udp": false, + "ip": "127.0.0.1" + } + }, + "outbound": { + "protocol": "socks", + "settings": { + "servers": [ + { + "address": "you server", + "port": 443, + "users": [ + { + "user": "hello", + "pass": "3.1415", + "level": 0 + } + ] + } + ] + }, + "streamSettings": { + "network": "tcp", + "security": "tls" + } + }, + "policy": { + "levels": { + "0": { + "uplinkOnly": 0 + } + } + } +} \ No newline at end of file diff --git a/socks5-tls/config_server.json b/socks5-tls/config_server.json new file mode 100644 index 0000000..4dc7a0e --- /dev/null +++ b/socks5-tls/config_server.json @@ -0,0 +1,75 @@ +{ + "log": { + "access": "/var/log/v2ray/access.log", + "error": "/var/log/v2ray/error.log", + "loglevel": "warning" + }, + "inbound": { + "port": 443, + "protocol": "socks", + "settings": { + "auth": "password", + "accounts": [ + { + "user": "hello", + "pass": "3.1415" + } + ], + "udp": false, + "ip": "127.0.0.1", + "timeout": 0, + "userLevel": 0 + }, + "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" + } + ] + } + } +} \ No newline at end of file diff --git a/vmess/config_client.json b/vmess/config_client.json new file mode 100644 index 0000000..bd272ec --- /dev/null +++ b/vmess/config_client.json @@ -0,0 +1,74 @@ +{ + "log": { + "error": "F:\\Program Files\\v2ray-v2.40-windows-64\\error.log", + "loglevel": "warning" + }, + "inbound": { + "port": 1082, + "listen": "127.0.0.1", + "protocol": "socks", + "settings": { + "auth": "noauth", + "udp": true + } + }, + "outbound": { + "protocol": "vmess", + "settings": { + "vnext": [ + { + "address": "0.0.0.0", + "port": 1234, + "users": [ + { + "id": "a90597c1-bab3-4217-ad6f-0838675c8633", + "alterId": 10 + }, + { + "id": "8856ea72-a67a-4651-98f0-ebb3bf4f07b1", + "level": 1, + "security": "aes-128-gcm", + "alterId": 12 + } + ] + } + ] + } + }, + "outboundDetour": [ + { + "protocol": "freedom", + "tag": "direct", + "settings": {} + } + ], + "routing": { + "strategy": "rules", + "settings": { + "domainStrategy": "IPOnDemand", + "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": "direct" + } + ] + } + } +} \ No newline at end of file diff --git a/vmess/config_server.json b/vmess/config_server.json new file mode 100644 index 0000000..03b3a63 --- /dev/null +++ b/vmess/config_server.json @@ -0,0 +1,64 @@ +{ + "log": { + "access": "/var/log/v2ray/access.log", + "error": "/var/log/v2ray/error.log", + "loglevel": "warning" + }, + "inbound": { + "port": 1234, + "protocol": "vmess", + "settings": { + "clients": [ + { + "id": "a90597c1-bab3-4217-ad6f-0838675c8633", + "alterId": 10 + }, + { + "id": "8856ea72-a67a-4651-98f0-ebb3bf4f07b1", + "level": 1, + "security": "aes-128-gcm", + "alterId": 12 + } + ] + } + }, + "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" + } + ] + } + } +} \ No newline at end of file diff --git a/websocket+Caddy+TLS(use header)/Caddyfile b/websocket+Caddy+TLS(use header)/Caddyfile new file mode 100755 index 0000000..a66e5ff --- /dev/null +++ b/websocket+Caddy+TLS(use header)/Caddyfile @@ -0,0 +1,17 @@ +https://example.domain * { + gzip + tls kiri_so@outlook.com + proxy / https://www.baidu.com + log / stdout "{request}" + + rewrite { + if {host} is google.com + to /test + } + + proxy /test localhost:1234 { + websocket + without /test + } +} + diff --git a/websocket+Caddy+TLS(use header)/config_client.json b/websocket+Caddy+TLS(use header)/config_client.json new file mode 100755 index 0000000..3e33037 --- /dev/null +++ b/websocket+Caddy+TLS(use header)/config_client.json @@ -0,0 +1,112 @@ +{ + "outbound": { + "streamSettings": { + "network": "ws", + "kcpSettings": null, + "wsSettings": { + "headers": { + "host": "google.com" + }, + "path": "/" + }, + "tcpSettings": null, + "tlsSettings": {}, + "security": "tls" + }, + "tag": "agentout", + "protocol": "vmess", + "mux": { + "enabled": true, + "concurrency": 8 + }, + "settings": { + "vnext": [ + { + "users": [ + { + "alterId": 100, + "security": "aes-128-gcm", + "id": "e2b39869-7e9e-411b-a561-00904419bed9" + } + ], + "port": 443, + "address": "example.domain" + } + ] + } + }, + "log": { + "access": "", + "loglevel": "info", + "error": "" + }, + "outboundDetour": [ + { + "tag": "direct", + "protocol": "freedom", + "settings": { + "response": null + } + }, + { + "tag": "blockout", + "protocol": "blackhole", + "settings": { + "response": { + "type": "http" + } + } + } + ], + "inbound": { + "streamSettings": null, + "settings": { + "ip": "127.0.0.1", + "udp": true, + "clients": null, + "auth": "noauth" + }, + "protocol": "socks", + "port": 10086, + "listen": "0.0.0.0" + }, + "inboundDetour": null, + "routing": { + "settings": { + "rules": [ + { + "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, + "type": "field", + "port": null, + "outboundTag": "direct" + } + ], + "domainStrategy": "IPIfNonMatch" + }, + "strategy": "rules" + }, + "dns": { + "servers": [ + "8.8.8.8", + "8.8.4.4", + "localhost" + ] + } +} \ No newline at end of file diff --git a/websocket+Caddy+TLS/config_server.json b/websocket+Caddy+TLS(use header)/config_server.json old mode 100644 new mode 100755 similarity index 52% rename from websocket+Caddy+TLS/config_server.json rename to websocket+Caddy+TLS(use header)/config_server.json index b643120..4ddfb2e --- a/websocket+Caddy+TLS/config_server.json +++ b/websocket+Caddy+TLS(use header)/config_server.json @@ -11,7 +11,8 @@ "loglevel": "info", "error": "/var/log/v2ray/error.log" }, - "outboundDetour": [{ + "outboundDetour": [ + { "tag": "direct", "protocol": "freedom", "settings": null @@ -28,10 +29,9 @@ "kcpSettings": null, "wsSettings": { "headers": { - "host": "example.domain" + "host": "google.com" }, - "path": "/test", - "connectionReuse": true + "path": "/" }, "tcpSettings": null, "tlsSettings": {}, @@ -40,11 +40,13 @@ "settings": { "ip": null, "udp": true, - "clients": [{ - "alterId": 100, - "security": "aes-128-gcm", - "id": "e2b39869-7e9e-411b-a561-00904419bed9" - }], + "clients": [ + { + "alterId": 100, + "security": "aes-128-gcm", + "id": "e2b39869-7e9e-411b-a561-00904419bed9" + } + ], "auth": null }, "protocol": "vmess", @@ -54,32 +56,34 @@ "inboundDetour": null, "routing": { "settings": { - "rules": [{ - "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, - "type": "field", - "port": null, - "outboundTag": "blocked" - }], + "rules": [ + { + "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, + "type": "field", + "port": null, + "outboundTag": "blocked" + } + ], "domainStrategy": null }, "strategy": "rules" }, "dns": null -} +} \ No newline at end of file diff --git a/websocket+Caddy+TLS/Caddyfile b/websocket+Caddy+TLS(use path)/Caddyfile old mode 100644 new mode 100755 similarity index 100% rename from websocket+Caddy+TLS/Caddyfile rename to websocket+Caddy+TLS(use path)/Caddyfile diff --git a/websocket+Caddy+TLS/config_client.json b/websocket+Caddy+TLS(use path)/config_client.json similarity index 55% rename from websocket+Caddy+TLS/config_client.json rename to websocket+Caddy+TLS(use path)/config_client.json index 847340f..4069f52 100755 --- a/websocket+Caddy+TLS/config_client.json +++ b/websocket+Caddy+TLS(use path)/config_client.json @@ -4,9 +4,6 @@ "network": "ws", "kcpSettings": null, "wsSettings": { - "headers": { - "host": "example.domain" - }, "path": "/test" }, "tcpSettings": null, @@ -20,15 +17,19 @@ "concurrency": 8 }, "settings": { - "vnext": [{ - "users": [{ - "alterId": 100, - "security": "aes-128-gcm", - "id": "e2b39869-7e9e-411b-a561-00904419bed9" - }], - "port": 443, - "address": "example.domain" - }] + "vnext": [ + { + "users": [ + { + "alterId": 100, + "security": "aes-128-gcm", + "id": "e2b39869-7e9e-411b-a561-00904419bed9" + } + ], + "port": 443, + "address": "example.domain" + } + ] } }, "log": { @@ -36,7 +37,8 @@ "loglevel": "info", "error": "" }, - "outboundDetour": [{ + "outboundDetour": [ + { "tag": "direct", "protocol": "freedom", "settings": { @@ -68,29 +70,31 @@ "inboundDetour": null, "routing": { "settings": { - "rules": [{ - "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, - "type": "field", - "port": null, - "outboundTag": "direct" - }], + "rules": [ + { + "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, + "type": "field", + "port": null, + "outboundTag": "direct" + } + ], "domainStrategy": "IPIfNonMatch" }, "strategy": "rules" @@ -102,4 +106,4 @@ "localhost" ] } -} +} \ No newline at end of file diff --git a/websocket+Caddy+TLS(use path)/config_server.json b/websocket+Caddy+TLS(use path)/config_server.json new file mode 100755 index 0000000..2714157 --- /dev/null +++ b/websocket+Caddy+TLS(use path)/config_server.json @@ -0,0 +1,86 @@ +{ + "outbound": { + "streamSettings": null, + "tag": null, + "protocol": "freedom", + "mux": null, + "settings": null + }, + "log": { + "access": "/var/log/v2ray/access.log", + "loglevel": "info", + "error": "/var/log/v2ray/error.log" + }, + "outboundDetour": [ + { + "tag": "direct", + "protocol": "freedom", + "settings": null + }, + { + "tag": "blocked", + "protocol": "blackhole", + "settings": null + } + ], + "inbound": { + "streamSettings": { + "network": "ws", + "kcpSettings": null, + "wsSettings": { + "path": "/test" + }, + "tcpSettings": null, + "tlsSettings": {}, + "security": "" + }, + "settings": { + "ip": null, + "udp": true, + "clients": [ + { + "alterId": 100, + "security": "aes-128-gcm", + "id": "e2b39869-7e9e-411b-a561-00904419bed9" + } + ], + "auth": null + }, + "protocol": "vmess", + "port": 1234, + "listen": null + }, + "inboundDetour": null, + "routing": { + "settings": { + "rules": [ + { + "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, + "type": "field", + "port": null, + "outboundTag": "blocked" + } + ], + "domainStrategy": null + }, + "strategy": "rules" + }, + "dns": null +} \ No newline at end of file diff --git a/websocket+Nginx+TLS/Nginx.config b/websocket+Nginx+TLS/Nginx.config new file mode 100755 index 0000000..542e82f --- /dev/null +++ b/websocket+Nginx+TLS/Nginx.config @@ -0,0 +1,146 @@ +## +# You should look at the following URL's in order to grasp a solid understanding +# of Nginx configuration files in order to fully unleash the power of Nginx. +# https://www.nginx.com/resources/wiki/start/ +# https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/ +# https://wiki.debian.org/Nginx/DirectoryStructure +# +# In most cases, administrators will remove this file from sites-enabled/ and +# leave it as reference inside of sites-available where it will continue to be +# updated by the nginx packaging team. +# +# This file will automatically load configuration files provided by other +# applications, such as Drupal or Wordpress. These applications will be made +# available underneath a path with that package name, such as /drupal8. +# +# Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples. +## + +# Default server configuration +# +#####兼容客户端Firefox 27, Chrome 30, IE 11 on Windows 7, Edge, Opera 17, Safari 9, Android 5.0, and Java 8 +#####此文件的真身路径是 /etc/nginx/sites-available/default 如果你修改了 /etc/nginx/nginx.conf 中的内容,但 +#####/etc/nginx/sites-available/default 中的 参数 与 前者 重叠 那么 会 遵从 后者 + +server { + #listen 80 default_server; + #listen [::]:80 default_server; + + # SSL configuration + # + # listen 443 ssl default_server; + # listen [::]:443 ssl default_server; + # + # Note: You should disable gzip for SSL traffic. + # See: https://bugs.debian.org/773332 + # + # Read up on ssl_ciphers to ensure a secure configuration. + # See: https://bugs.debian.org/765782 + # + # Self signed certs generated by the ssl-cert package + # Don't use them in a production server! + # + # include snippets/snakeoil.conf; + + listen 127.0.0.1:80 default_server; + server_name domain.Name; + return 301 https://$host/$request_uri; +} + + +server { + #listen 443 ssl http2; + #listen [::]:443 ssl; + #要开启HTTP/2需要nginx版本在1.10.0以上且需要openssl版本在1.0.2以上编译 + #可以使用 nginx -V 检查 + listen 127.0.0.1:443 ssl http2; + + #证书配置 + ssl_certificate PATH; + ssl_certificate_key PATH; + ssl_session_cache shared:SSL:10m; + ssl_session_timeout 5m; + ssl_session_tickets off; + + #https://nginx.org/en/docs/http/ngx_http_ssl_module.html + ssl_protocols TLSv1.2; + ###openssl ciphers + ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA'; #屏蔽不安全的加密方式 + ssl_prefer_server_ciphers on; + + + # HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months) + # + ###测试前请使用较少的时间 此处以从 15768000 >>> 15 + ###https://www.nginx.com/blog/http-strict-transport-security-hsts-and-nginx/ + #add_header Strict-Transport-Security max-age=15; + + #openssl dhparam out dhparam.pem 2048 + #openssl dhparam out dhparam.pem 4096 + #ssl_dhparam /home/acme/data/dhparam.pem; + + # OCSP Stapling --- + # fetch OCSP records from URL in ssl_certificate and cache them + #有条件就开 + #ssl_stapling on; + #ssl_stapling_verify on; + + root /var/www/html; + + # Add index.php to the list if you are using PHP + index index.html index.htm index.nginx-debian.html index.php tail.html ; + + server_name _; + + + location /PATH/ { + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + proxy_set_header Host $http_host; + + #host判断 + if ($http_host = "domain.Name" ) { + #v 监听端口 + proxy_pass http://127.0.0.1:10086; + } + } + + # pass PHP scripts to FastCGI server + # + location ~ \.php$ { + include snippets/fastcgi-php.conf; + # + # # With php-fpm (or other unix sockets): + fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; + # # With php-cgi (or other tcp sockets): + # fastcgi_pass 127.0.0.1:9000; + } + + # deny access to .htaccess files, if Apache's document root + # concurs with nginx's one + # + #location ~ /\.ht { + # deny all; + #} +} + + +# Virtual Host configuration for example.com +# +# You can move that to a different file under sites-available/ and symlink that +# to sites-enabled/ to enable it. +# +#server { +# listen 80; +# listen [::]:80; +# +# server_name example.com; +# +# root /var/www/example.com; +# index index.html; +# +# location / { +# try_files $uri $uri/ =404; +# } +#} diff --git a/websocket+Nginx+TLS/config_client.json b/websocket+Nginx+TLS/config_client.json new file mode 100755 index 0000000..073e55b --- /dev/null +++ b/websocket+Nginx+TLS/config_client.json @@ -0,0 +1,145 @@ +{ + "outbound": { + "protocol": "freedom", + "settings": {}, + "tag": "direct" + }, + "inboundDetour": [ + { + "port": 1086, + "listen": "127.0.0.1", + "protocol": "socks", + "settings": { + "auth": "noauth", + "timeout": 300, + "udp": true + } + } + ], + "outboundDetour": [ + { + "mux": { + "concurrency": 6, + "enabled": true + }, + "protocol": "vmess", + "settings": { + "vnext": [ + { + "users": [ + { + "id": "97c0ec9c-dc4e-11e7-9296-cec278b6b50a", + //"level"字段与"policy"字段中的"levels"字段中的对应,默认值:0,注:需要core≥3.1 + "level": 0, + "alterId": 0, + "security": "aes-128-cfb" + } + ], + "address": "domain.Name", + "port": 443 + } + ] + }, + "streamSettings": { + "tlsSettings": { + "allowInsecure": false + }, + "wsSettings": { + "headers": { + "Host": "domain.Name" + }, + "path": "/PATH/" + }, + "network": "ws", + "security": "tls" + }, + "tag": "proxy" + }, + { + "protocol": "blackhole", + "settings": {}, + "tag": "block" + } + ], + "dns": { + "servers": [ + "8.8.8.8", + "8.8.4.4" + ] + }, + "inbound": { + "port": 1087, + "listen": "127.0.0.1", + "protocol": "http", + "settings": { + "timeout": 300 + } + }, + // 注"policy"字段需要core≥3.1 + "policy": { + "levels": { + "0": { + "uplinkOnly": 0, + "downlinkOnly": 0, + "connIdle": 150, + "handshake": 4 + } + } + }, + "routing": { + "settings": { + "rules": [ + { + "type": "field", + "domain": [ + "geosite:cn" + ], + "outboundTag": "direct" + }, + { + "type": "field", + "domain": [ + "google", + "facebook", + "youtube", + "twitter", + "instagram", + "gmail", + "domain:twimg.com", + "domain:t.co" + ], + "outboundTag": "proxy" + }, + { + "type": "field", + "ip": [ + "8.8.8.8/32", + "8.8.4.4/32", + "91.108.56.0/22", + "91.108.4.0/22", + "109.239.140.0/24", + "149.154.164.0/22", + "91.108.56.0/23", + "67.198.55.0/24", + "149.154.168.0/22", + "149.154.172.0/22" + ], + "outboundTag": "proxy" + }, + { + "type": "field", + "ip": [ + "192.168.0.0/16", + "10.0.0.0/8", + "172.16.0.0/12", + "127.0.0.0/8", + "geoip:cn" + ], + "outboundTag": "direct" + } + ], + "domainStrategy": "IPIfNonMatch" + }, + "strategy": "rules" + } +} diff --git a/websocket+Nginx+TLS/config_server.json b/websocket+Nginx+TLS/config_server.json new file mode 100755 index 0000000..2f8043f --- /dev/null +++ b/websocket+Nginx+TLS/config_server.json @@ -0,0 +1,84 @@ +{ + "log": { + "access": "/var/log/v2ray/access.log", + "error": "/var/log/v2ray/error.log", + //可能取值 "debug" "info" "warning" "error" 其中"debug"记录的数据最多,"error"记录的最少 "none"表示不记录任何内容 默认值为"warning" + "loglevel": "debug" + }, + //注"policy"字段需要core≥3.1 + "policy": { + "levels": { + "0": { + "uplinkOnly": 0, + "downlinkOnly": 0, + "connIdle": 150, + "handshake": 4 + } + } + }, + "inbound": { + //默认值为"0.0.0.0" + "listen": "127.0.0.1", + "port": 10086, + "protocol": "vmess", + "settings": { + "clients": [ + { + "id": "7f43b638-dc47-11e7-9296-cec278b6b50a", + //"level"字段与"policy"字段中的"levels"字段中的对应,默认值:0,注:需要core≥3.1 + "level": 0, + "alterId": 64 + } + ] + }, + "streamSettings": { + "network": "ws", + "security": "auto", + "wsSettings": { + "path": "/PATH/", + "headers": { + "Host": "domain.Name" + } + } + } + }, + "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" + } + ] + } + } +} diff --git a/websocket+TLS/config_client.json b/websocket+TLS/config_client.json index 8d8e2bd..0e33473 100755 --- a/websocket+TLS/config_client.json +++ b/websocket+TLS/config_client.json @@ -1,105 +1,111 @@ { - "outbound": { - "streamSettings": { - "network": "ws", - "kcpSettings": null, - "wsSettings": { - "headers": { - "host": "example.domain" - }, - "path": "" - }, - "tcpSettings": null, - "tlsSettings": {}, - "security": "tls" - }, - "tag": "agentout", - "protocol": "vmess", - "mux": { - "enabled": true, - "concurrency": 8 - }, - "settings": { - "vnext": [{ - "users": [{ - "alterId": 100, - "security": "aes-128-gcm", - "id": "e2b39869-7e9e-411b-a561-00904419bed9" - }], - "port": 443, - "address": "example.domain" - }] - } - }, - "log": { - "access": "", - "loglevel": "debug", - "error": "" - }, - "outboundDetour": [{ - "tag": "direct", - "protocol": "freedom", - "settings": { - "response": null - } - }, + "outbound": { + "streamSettings": { + "network": "ws", + "kcpSettings": null, + "wsSettings": { + "headers": { + "host": "example.domain" + }, + "path": "" + }, + "tcpSettings": null, + "tlsSettings": {}, + "security": "tls" + }, + "tag": "agentout", + "protocol": "vmess", + "mux": { + "enabled": true + }, + "settings": { + "vnext": [ { - "tag": "blockout", - "protocol": "blackhole", - "settings": { - "response": { - "type": "http" - } + "users": [ + { + "alterId": 100, + "security": "aes-128-gcm", + "id": "0cdf8a45-303d-4fed-9780-29aa7f54175e" } + ], + "port": 443, + "address": "example.domain" } - ], - "inbound": { - "streamSettings": null, - "settings": { - "ip": "127.0.0.1", - "udp": true, - "clients": null, - "auth": "noauth" - }, - "protocol": "socks", - "port": 10086, - "listen": "0.0.0.0" - }, - "inboundDetour": null, - "routing": { - "settings": { - "rules": [{ - "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, - "type": "field", - "port": null, - "outboundTag": "direct" - }], - "domainStrategy": "IPIfNonMatch" - }, - "strategy": "rules" - }, - "dns": { - "servers": [ - "8.8.8.8", - "8.8.4.4", - "localhost" - ] + ] } + }, + "log": { + "access": "", + "loglevel": "info", + "error": "" + }, + "outboundDetour": [ + { + "tag": "direct", + "protocol": "freedom", + "settings": { + "response": null + } + }, + { + "tag": "blockout", + "protocol": "blackhole", + "settings": { + "response": { + "type": "http" + } + } + } + ], + "inbound": { + "streamSettings": null, + "settings": { + "ip": "127.0.0.1", + "udp": true, + "clients": null, + "auth": "noauth" + }, + "protocol": "socks", + "port": 1080, + "listen": "0.0.0.0" + }, + "inboundDetour": null, + "routing": { + "settings": { + "rules": [ + { + "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, + "type": "field", + "port": null, + "outboundTag": "direct" + } + ], + "domainStrategy": "IPIfNonMatch" + }, + "strategy": "rules" + }, + "dns": { + "servers": [ + "8.8.8.8", + "8.8.4.4", + "localhost" + ] + } } diff --git a/websocket+TLS/config_server.json b/websocket+TLS/config_server.json old mode 100644 new mode 100755 index c03bd40..d1692f4 --- a/websocket+TLS/config_server.json +++ b/websocket+TLS/config_server.json @@ -1,91 +1,91 @@ { - "outbound": { - "streamSettings": null, - "tag": null, - "protocol": "freedom", - "mux": null, - "settings": null - }, - "log": { - "access": "/var/log/v2ray/access.log", - "loglevel": "info", - "error": "/var/log/v2ray/error.log" - }, - "outboundDetour": [{ - "tag": "blocked", - "protocol": "blackhole", - "settings": null - }], - "inbound": { - "streamSettings": { - "network": "kcp", - "kcpSettings": { - "uplinkCapacity": 100, - "downlinkCapacity": 100, - "readBufferSize": 2, - "mtu": 1350, - "header": { - "type": "srtp", - "request": null, - "response": null + "outbound": { + "streamSettings": null, + "tag": null, + "protocol": "freedom", + "mux": null, + "settings": null + }, + "log": { + "access": "/var/log/v2ray/access.log", + "loglevel": "error", + "error": "/var/log/v2ray/error.log" + }, + "inboundDetour": null, + "inbound": { + "streamSettings": { + "network": "ws", + "kcpSettings": null, + "wsSettings": { + "headers": { + "host": "example.domain" + }, + "path": "" + }, + "tcpSettings": null, + "tlsSettings": { + "certificates": [ + { + "keyFile": "/path/to/example.domain.key", + "certificateFile": "/path/to/example.domain/fullchain.cer" + } + ] + }, + "security": "tls" }, - "tti": 50, - "congestion": false, - "writeBufferSize": 2 - }, - "wsSettings": null, - "tcpSettings": null, - "tlsSettings": { - "certificates": [{ - "keyFile": "/path/to/example.domain.key", - "certificateFile": "/path/to/example.domain/fullchain.cer" - }] - }, - "security": "tls" + "listen": null, + "protocol": "vmess", + "port": 443, + "settings": { + "ip": null, + "udp": true, + "clients": [ + { + "alterId": 100, + "security": "aes-128-gcm", + "id": "0cdf8a45-303d-4fed-9780-29aa7f54175e" + } + ], + "auth": null + } }, - "settings": { - "ip": null, - "udp": true, - "clients": [{ - "alterId": 100, - "security": "aes-128-gcm", - "id": "e2b39869-7e9e-411b-a561-00904419bed9" - }], - "auth": null + "outboundDetour": [ + { + "tag": "blocked", + "protocol": "blackhole", + "settings": null + } + ], + "routing": { + "strategy": "rules", + "settings": { + "rules": [ + { + "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, + "type": "field", + "port": null, + "outboundTag": "blocked" + } + ], + "domainStrategy": null + } }, - "protocol": "vmess", - "port": 443, - "listen": null - }, - "inboundDetour": null, - "routing": { - "settings": { - "rules": [{ - "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, - "type": "field", - "port": null, - "outboundTag": "blocked" - }], - "domainStrategy": null - }, - "strategy": "rules" - }, - "dns": null -} + "dns": null +} \ No newline at end of file diff --git a/websocket/config_client.json b/websocket/config_client.json old mode 100644 new mode 100755 index 0601fae..c522154 --- a/websocket/config_client.json +++ b/websocket/config_client.json @@ -19,15 +19,19 @@ "enabled": true }, "settings": { - "vnext": [{ - "users": [{ - "alterId": 100, - "security": "aes-128-gcm", - "id": "e2b39869-7e9e-411b-a561-00904419bed9" - }], - "port": 1234, - "address": "Your_IP_Address" - }] + "vnext": [ + { + "users": [ + { + "alterId": 100, + "security": "aes-128-gcm", + "id": "e2b39869-7e9e-411b-a561-00904419bed9" + } + ], + "port": 1234, + "address": "Your_IP_Address" + } + ] } }, "log": { @@ -35,7 +39,8 @@ "loglevel": "info", "error": "" }, - "outboundDetour": [{ + "outboundDetour": [ + { "tag": "direct", "protocol": "freedom", "settings": { @@ -67,29 +72,31 @@ "inboundDetour": null, "routing": { "settings": { - "rules": [{ - "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, - "type": "field", - "port": null, - "outboundTag": "direct" - }], + "rules": [ + { + "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, + "type": "field", + "port": null, + "outboundTag": "direct" + } + ], "domainStrategy": "IPIfNonMatch" }, "strategy": "rules" @@ -101,4 +108,4 @@ "localhost" ] } -} +} \ No newline at end of file diff --git a/websocket/config_server.json b/websocket/config_server.json old mode 100644 new mode 100755 index f4e8e30..62e96a7 --- a/websocket/config_server.json +++ b/websocket/config_server.json @@ -20,8 +20,7 @@ "headers": { "host": "example.domain" }, - "path": "", - "connectionReuse": true + "path": "" }, "tcpSettings": null, "tlsSettings": {}, @@ -33,47 +32,53 @@ "settings": { "ip": null, "udp": true, - "clients": [{ - "alterId": 100, - "security": "aes-128-gcm", - "id": "e2b39869-7e9e-411b-a561-00904419bed9" - }], + "clients": [ + { + "alterId": 100, + "security": "aes-128-gcm", + "id": "e2b39869-7e9e-411b-a561-00904419bed9" + } + ], "auth": null } }, - "outboundDetour": [{ - "tag": "blocked", - "protocol": "blackhole", - "settings": null - }], + "outboundDetour": [ + { + "tag": "blocked", + "protocol": "blackhole", + "settings": null + } + ], "routing": { "strategy": "rules", "settings": { - "rules": [{ - "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, - "type": "field", - "port": null, - "outboundTag": "blocked" - }], + "rules": [ + { + "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, + "type": "field", + "port": null, + "outboundTag": "blocked" + } + ], "domainStrategy": null } }, "dns": null -} +} \ No newline at end of file