pull/109/head
233boy 6 years ago
parent 3ecb6847e6
commit 620ec46f5a
  1. 38
      config/backup.conf
  2. 13231
      config/blocked_hosts/server/h2.json
  3. 13244
      config/blocked_hosts/server/h2_ss.json
  4. 13235
      config/blocked_hosts/server/http.json
  5. 13307
      config/blocked_hosts/server/http_dynamic.json
  6. 13262
      config/blocked_hosts/server/http_ss.json
  7. 13318
      config/blocked_hosts/server/http_ss_dynamic.json
  8. 13228
      config/blocked_hosts/server/kcp.json
  9. 13255
      config/blocked_hosts/server/kcp_dynamic.json
  10. 13241
      config/blocked_hosts/server/kcp_ss.json
  11. 13266
      config/blocked_hosts/server/kcp_ss_dynamic.json
  12. 13215
      config/blocked_hosts/server/socks.json
  13. 13228
      config/blocked_hosts/server/socks_ss.json
  14. 13235
      config/blocked_hosts/server/tcp_dynamic.json
  15. 13226
      config/blocked_hosts/server/tcp_ss.json
  16. 13246
      config/blocked_hosts/server/tcp_ss_dynamic.json
  17. 13216
      config/blocked_hosts/server/ws.json
  18. 13241
      config/blocked_hosts/server/ws_dynamic.json
  19. 13229
      config/blocked_hosts/server/ws_ss.json
  20. 13252
      config/blocked_hosts/server/ws_ss_dynamic.json
  21. 45
      config/client/h2.json
  22. 45
      config/client/http.json
  23. 51
      config/client/kcp.json
  24. 111
      config/client/quic.json
  25. 104
      config/client/socks.json
  26. 45
      config/client/tcp.json
  27. 45
      config/client/ws.json
  28. 45
      config/client/ws_tls.json
  29. 202
      config/server/dynamic/http.json
  30. 169
      config/server/dynamic/kcp.json
  31. 171
      config/server/dynamic/quic.json
  32. 161
      config/server/dynamic/tcp.json
  33. 164
      config/server/dynamic/ws.json
  34. 95
      config/server/h2.json
  35. 91
      config/server/h2_ss.json
  36. 95
      config/server/http.json
  37. 154
      config/server/http_dynamic.json
  38. 109
      config/server/http_ss.json
  39. 165
      config/server/http_ss_dynamic.json
  40. 992
      config/server/include/ad.json
  41. 7
      config/server/include/bt.json
  42. 12
      config/server/include/mtproto.json
  43. 16
      config/server/include/socks.json
  44. 11
      config/server/include/ss.json
  45. 102
      config/server/kcp.json
  46. 102
      config/server/kcp_dynamic.json
  47. 88
      config/server/kcp_ss.json
  48. 113
      config/server/kcp_ss_dynamic.json
  49. 149
      config/server/quic.json
  50. 62
      config/server/socks.json
  51. 75
      config/server/socks_ss.json
  52. 98
      config/server/tcp.json
  53. 82
      config/server/tcp_dynamic.json
  54. 73
      config/server/tcp_ss.json
  55. 93
      config/server/tcp_ss_dynamic.json
  56. 95
      config/server/ws.json
  57. 88
      config/server/ws_dynamic.json
  58. 76
      config/server/ws_ss.json
  59. 99
      config/server/ws_ss_dynamic.json
  60. 1352
      install.sh
  61. 6
      src/ban_ad.sh
  62. 6
      src/ban_bt.sh
  63. 71
      src/bt.sh
  64. 67
      src/caddy-config.sh
  65. 24
      src/config.sh
  66. 6
      src/custom_config.sh
  67. 6
      src/custom_rules.sh
  68. 47
      src/download-caddy.sh
  69. 73
      src/download-v2ray.sh
  70. 17
      src/init.sh
  71. 10
      src/mtproto-config.sh
  72. 288
      src/mtproto.sh
  73. 10
      src/socks-config.sh
  74. 386
      src/socks.sh
  75. 10
      src/ss-config.sh
  76. 21
      src/ss-info.sh
  77. 34
      src/transport.sh
  78. 168
      src/uninstall.sh
  79. 136
      src/v2ray-info.sh
  80. 111
      src/vmess-config.sh
  81. 38
      templates/h2.json
  82. 56
      templates/http.json
  83. 28
      templates/kcp.json
  84. 12
      templates/mtproto.json
  85. 34
      templates/multiple.json
  86. 30
      templates/quic.json
  87. 10
      templates/rules/ban_client_ip.json
  88. 10
      templates/rules/ban_domain.json
  89. 10
      templates/rules/ban_ip.json
  90. 15
      templates/rules/only_allow_client_ip.json
  91. 15
      templates/rules/only_allow_domain.json
  92. 16
      templates/socks.json
  93. 11
      templates/ss.json
  94. 23
      templates/tcp.json
  95. 23
      templates/ws.json
  96. 8
      tools/quic.sh
  97. 48
      tools/v1xx_to_v3xx.sh
  98. 67
      tools/v3.sh
  99. 3686
      v2ray.old.sh
  100. 1508
      v2ray.sh

@ -9,10 +9,10 @@
# ---- 说明 ---- # ---- 说明 ----
# 嗯……这个文件呢,是用来备份一些设置的 # 嗯……这个文件呢,是用来备份一些设置的
# 我懒...不想用 JQ 去解析 JSON.... #
# 那就把 V2Ray 配置文件的一些重要参数提取出来 mark=v3
# 然后..在修改 V2Ray 配置的时候再重写一下就 OK 啦... #
# 嗯…笨笨的方法 #
# ---- V2Ray 传输协议 ----- # ---- V2Ray 传输协议 -----
v2ray_transport=1 v2ray_transport=1
@ -21,7 +21,7 @@ v2ray_transport=1
v2ray_port=2333 v2ray_port=2333
#---- UUID ----- #---- UUID -----
v2ray_id=23332333-2333-2333-2333-233boy233boy v2ray_id=e55c8d17-2cf3-b21a-bcf1-eeacb011ed79
#---- alterId ----- #---- alterId -----
alterId=233 alterId=233
@ -36,10 +36,10 @@ v2ray_dynamicPort_end=20000
domain=233blog.com domain=233blog.com
#---- caddy ----- #---- caddy -----
caddy_status= caddy=
#---- Shadowsocks ----- #---- Shadowsocks -----
shadowsocks_status= shadowsocks=
#---- Shadowsocks 端口 ----- #---- Shadowsocks 端口 -----
ssport=6666 ssport=6666
@ -51,7 +51,7 @@ sspass=233blog.com
ssciphers=chacha20-ietf ssciphers=chacha20-ietf
#---- 屏蔽广告 ----- #---- 屏蔽广告 -----
blocked_ad_status= ban_ad=
#---- 网站伪装 ----- #---- 网站伪装 -----
path_status= path_status=
@ -62,8 +62,26 @@ path=233blog
#---- 伪装的网址 ----- #---- 伪装的网址 -----
proxy_site=https://liyafly.com proxy_site=https://liyafly.com
#---- Socks -----
socks=
#---- Socks 端口-----
socks_port=233
#---- Socks 用户名 ----- #---- Socks 用户名 -----
username=233blog socks_username=233blog
#---- Socks 密码 ----- #---- Socks 密码 -----
userpass=233blog.com socks_userpass=233blog.com
#---- MTProto -----
mtproto=
#---- MTProto 端口-----
mtproto_port=233
#---- MTProto 用户密钥 -----
mtproto_secret=lalala
#---- 屏蔽 BT -----
ban_bt=true

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -3,17 +3,8 @@
"error": "error.log", "error": "error.log",
"loglevel": "warning" "loglevel": "warning"
}, },
"inbound": { "outbounds": [
"port": 2333, {
"listen": "127.0.0.1",
"protocol": "socks",
"settings": {
"auth": "noauth",
"udp": true,
"ip": "127.0.0.1"
}
},
"outbound": {
"protocol": "vmess", "protocol": "vmess",
"settings": { "settings": {
"vnext": [ "vnext": [
@ -22,7 +13,7 @@
"port": 2333, "port": 2333,
"users": [ "users": [
{ {
"id": "23332333-2333-2333-2333-233boy233boy", "id": "e55c8d17-2cf3-b21a-bcf1-eeacb011ed79",
"alterId": 233, "alterId": 233,
"security": "auto" "security": "auto"
} }
@ -44,7 +35,23 @@
"enabled": true "enabled": true
} }
}, },
"inboundDetour": [ {
"protocol": "freedom",
"settings": {},
"tag": "direct"
}
],
"inbounds": [
{
"port": 2333,
"listen": "127.0.0.1",
"protocol": "socks",
"settings": {
"auth": "noauth",
"udp": true,
"ip": "127.0.0.1"
}
},
{ {
"port": 6666, "port": 6666,
"listen": "127.0.0.1", "listen": "127.0.0.1",
@ -56,13 +63,6 @@
} }
} }
], ],
"outboundDetour": [
{
"protocol": "freedom",
"settings": {},
"tag": "direct"
}
],
"dns": { "dns": {
"servers": [ "servers": [
"8.8.8.8", "8.8.8.8",
@ -71,9 +71,7 @@
] ]
}, },
"routing": { "routing": {
"strategy": "rules", "domainStrategy": "IPOnDemand",
"settings": {
"domainStrategy": "IPIfNonMatch",
"rules": [ "rules": [
{ {
"type": "field", "type": "field",
@ -111,4 +109,3 @@
] ]
} }
} }
}

@ -3,17 +3,8 @@
"error": "error.log", "error": "error.log",
"loglevel": "warning" "loglevel": "warning"
}, },
"inbound": { "outbounds": [
"port": 2333, {
"listen": "127.0.0.1",
"protocol": "socks",
"settings": {
"auth": "noauth",
"udp": true,
"ip": "127.0.0.1"
}
},
"outbound": {
"protocol": "vmess", "protocol": "vmess",
"settings": { "settings": {
"vnext": [ "vnext": [
@ -22,7 +13,7 @@
"port": 2333, "port": 2333,
"users": [ "users": [
{ {
"id": "23332333-2333-2333-2333-233boy233boy", "id": "e55c8d17-2cf3-b21a-bcf1-eeacb011ed79",
"alterId": 233, "alterId": 233,
"security": "auto" "security": "auto"
} }
@ -74,7 +65,23 @@
"enabled": true "enabled": true
} }
}, },
"inboundDetour": [ {
"protocol": "freedom",
"settings": {},
"tag": "direct"
}
],
"inbounds": [
{
"port": 2333,
"listen": "127.0.0.1",
"protocol": "socks",
"settings": {
"auth": "noauth",
"udp": true,
"ip": "127.0.0.1"
}
},
{ {
"port": 6666, "port": 6666,
"listen": "127.0.0.1", "listen": "127.0.0.1",
@ -86,13 +93,6 @@
} }
} }
], ],
"outboundDetour": [
{
"protocol": "freedom",
"settings": {},
"tag": "direct"
}
],
"dns": { "dns": {
"servers": [ "servers": [
"8.8.8.8", "8.8.8.8",
@ -101,9 +101,7 @@
] ]
}, },
"routing": { "routing": {
"strategy": "rules", "domainStrategy": "IPOnDemand",
"settings": {
"domainStrategy": "IPIfNonMatch",
"rules": [ "rules": [
{ {
"type": "field", "type": "field",
@ -141,4 +139,3 @@
] ]
} }
} }
}

@ -3,17 +3,8 @@
"error": "error.log", "error": "error.log",
"loglevel": "warning" "loglevel": "warning"
}, },
"inbound": { "outbounds": [
"port": 2333, {
"listen": "127.0.0.1",
"protocol": "socks",
"settings": {
"auth": "noauth",
"udp": true,
"ip": "127.0.0.1"
}
},
"outbound": {
"protocol": "vmess", "protocol": "vmess",
"settings": { "settings": {
"vnext": [ "vnext": [
@ -22,7 +13,7 @@
"port": 2333, "port": 2333,
"users": [ "users": [
{ {
"id": "23332333-2333-2333-2333-233boy233boy", "id": "e55c8d17-2cf3-b21a-bcf1-eeacb011ed79",
"alterId": 233, "alterId": 233,
"security": "auto" "security": "auto"
} }
@ -33,13 +24,9 @@
"streamSettings": { "streamSettings": {
"network": "kcp", "network": "kcp",
"kcpSettings": { "kcpSettings": {
"mtu": 1350,
"tti": 50,
"uplinkCapacity": 100, "uplinkCapacity": 100,
"downlinkCapacity": 100, "downlinkCapacity": 100,
"congestion": false, "congestion": true,
"readBufferSize": 2,
"writeBufferSize": 2,
"header": { "header": {
"type": "none" "type": "none"
} }
@ -49,7 +36,23 @@
"enabled": true "enabled": true
} }
}, },
"inboundDetour": [ {
"protocol": "freedom",
"settings": {},
"tag": "direct"
}
],
"inbounds": [
{
"port": 2333,
"listen": "127.0.0.1",
"protocol": "socks",
"settings": {
"auth": "noauth",
"udp": true,
"ip": "127.0.0.1"
}
},
{ {
"port": 6666, "port": 6666,
"listen": "127.0.0.1", "listen": "127.0.0.1",
@ -61,13 +64,6 @@
} }
} }
], ],
"outboundDetour": [
{
"protocol": "freedom",
"settings": {},
"tag": "direct"
}
],
"dns": { "dns": {
"servers": [ "servers": [
"8.8.8.8", "8.8.8.8",
@ -76,9 +72,7 @@
] ]
}, },
"routing": { "routing": {
"strategy": "rules", "domainStrategy": "IPOnDemand",
"settings": {
"domainStrategy": "IPIfNonMatch",
"rules": [ "rules": [
{ {
"type": "field", "type": "field",
@ -116,4 +110,3 @@
] ]
} }
} }
}

@ -0,0 +1,111 @@
{
"log": {
"error": "error.log",
"loglevel": "warning"
},
"outbounds": [
{
"protocol": "vmess",
"settings": {
"vnext": [
{
"address": "233blog.com",
"port": 2333,
"users": [
{
"id": "e55c8d17-2cf3-b21a-bcf1-eeacb011ed79",
"alterId": 233,
"security": "auto"
}
]
}
]
},
"streamSettings": {
"network": "quic",
"quicSettings": {
"security": "aes-128-gcm",
"key": "",
"header": {
"type": "none"
}
}
},
"mux": {
"enabled": true
}
},
{
"protocol": "freedom",
"settings": {},
"tag": "direct"
}
],
"inbounds": [
{
"port": 2333,
"listen": "127.0.0.1",
"protocol": "socks",
"settings": {
"auth": "noauth",
"udp": true,
"ip": "127.0.0.1"
}
},
{
"port": 6666,
"listen": "127.0.0.1",
"protocol": "http",
"settings": {
"auth": "noauth",
"udp": true,
"ip": "127.0.0.1"
}
}
],
"dns": {
"servers": [
"8.8.8.8",
"8.8.4.4",
"localhost"
]
},
"routing": {
"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",
"geoip:cn"
],
"domain": [
"geosite:cn"
],
"outboundTag": "direct"
},
{
"type": "chinasites",
"outboundTag": "direct"
},
{
"type": "chinaip",
"outboundTag": "direct"
}
]
}
}

@ -1,104 +0,0 @@
{
"log": {
"error": "error.log",
"loglevel": "warning"
},
"inbound": {
"port": 2333,
"listen": "127.0.0.1",
"protocol": "socks",
"settings": {
"auth": "noauth",
"udp": true,
"ip": "127.0.0.1"
}
},
"outbound": {
"protocol": "socks",
"settings": {
"servers": [
{
"address": "233blog.com",
"port": 2333,
"users": [
{
"user": "233blog",
"pass": "233blog.com",
"level": 1
}
]
}
]
},
"mux": {
"enabled": true
}
},
"inboundDetour": [
{
"port": 6666,
"listen": "127.0.0.1",
"protocol": "http",
"settings": {
"auth": "noauth",
"udp": true,
"ip": "127.0.0.1"
}
}
],
"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"
}
]
}
}
}

@ -3,17 +3,8 @@
"error": "error.log", "error": "error.log",
"loglevel": "warning" "loglevel": "warning"
}, },
"inbound": { "outbounds": [
"port": 2333, {
"listen": "127.0.0.1",
"protocol": "socks",
"settings": {
"auth": "noauth",
"udp": true,
"ip": "127.0.0.1"
}
},
"outbound": {
"protocol": "vmess", "protocol": "vmess",
"settings": { "settings": {
"vnext": [ "vnext": [
@ -22,7 +13,7 @@
"port": 2333, "port": 2333,
"users": [ "users": [
{ {
"id": "23332333-2333-2333-2333-233boy233boy", "id": "e55c8d17-2cf3-b21a-bcf1-eeacb011ed79",
"alterId": 233, "alterId": 233,
"security": "auto" "security": "auto"
} }
@ -34,7 +25,23 @@
"enabled": true "enabled": true
} }
}, },
"inboundDetour": [ {
"protocol": "freedom",
"settings": {},
"tag": "direct"
}
],
"inbounds": [
{
"port": 2333,
"listen": "127.0.0.1",
"protocol": "socks",
"settings": {
"auth": "noauth",
"udp": true,
"ip": "127.0.0.1"
}
},
{ {
"port": 6666, "port": 6666,
"listen": "127.0.0.1", "listen": "127.0.0.1",
@ -46,13 +53,6 @@
} }
} }
], ],
"outboundDetour": [
{
"protocol": "freedom",
"settings": {},
"tag": "direct"
}
],
"dns": { "dns": {
"servers": [ "servers": [
"8.8.8.8", "8.8.8.8",
@ -61,9 +61,7 @@
] ]
}, },
"routing": { "routing": {
"strategy": "rules", "domainStrategy": "IPOnDemand",
"settings": {
"domainStrategy": "IPIfNonMatch",
"rules": [ "rules": [
{ {
"type": "field", "type": "field",
@ -101,4 +99,3 @@
] ]
} }
} }
}

@ -3,17 +3,8 @@
"error": "error.log", "error": "error.log",
"loglevel": "warning" "loglevel": "warning"
}, },
"inbound": { "outbounds": [
"port": 2333, {
"listen": "127.0.0.1",
"protocol": "socks",
"settings": {
"auth": "noauth",
"udp": true,
"ip": "127.0.0.1"
}
},
"outbound": {
"protocol": "vmess", "protocol": "vmess",
"settings": { "settings": {
"vnext": [ "vnext": [
@ -22,7 +13,7 @@
"port": 2333, "port": 2333,
"users": [ "users": [
{ {
"id": "23332333-2333-2333-2333-233boy233boy", "id": "e55c8d17-2cf3-b21a-bcf1-eeacb011ed79",
"alterId": 233, "alterId": 233,
"security": "auto" "security": "auto"
} }
@ -37,7 +28,23 @@
"enabled": true "enabled": true
} }
}, },
"inboundDetour": [ {
"protocol": "freedom",
"settings": {},
"tag": "direct"
}
],
"inbounds": [
{
"port": 2333,
"listen": "127.0.0.1",
"protocol": "socks",
"settings": {
"auth": "noauth",
"udp": true,
"ip": "127.0.0.1"
}
},
{ {
"port": 6666, "port": 6666,
"listen": "127.0.0.1", "listen": "127.0.0.1",
@ -49,13 +56,6 @@
} }
} }
], ],
"outboundDetour": [
{
"protocol": "freedom",
"settings": {},
"tag": "direct"
}
],
"dns": { "dns": {
"servers": [ "servers": [
"8.8.8.8", "8.8.8.8",
@ -64,9 +64,7 @@
] ]
}, },
"routing": { "routing": {
"strategy": "rules", "domainStrategy": "IPOnDemand",
"settings": {
"domainStrategy": "IPIfNonMatch",
"rules": [ "rules": [
{ {
"type": "field", "type": "field",
@ -104,4 +102,3 @@
] ]
} }
} }
}

@ -3,17 +3,8 @@
"error": "error.log", "error": "error.log",
"loglevel": "warning" "loglevel": "warning"
}, },
"inbound": { "outbounds": [
"port": 2333, {
"listen": "127.0.0.1",
"protocol": "socks",
"settings": {
"auth": "noauth",
"udp": true,
"ip": "127.0.0.1"
}
},
"outbound": {
"protocol": "vmess", "protocol": "vmess",
"settings": { "settings": {
"vnext": [ "vnext": [
@ -22,7 +13,7 @@
"port": 2333, "port": 2333,
"users": [ "users": [
{ {
"id": "23332333-2333-2333-2333-233boy233boy", "id": "e55c8d17-2cf3-b21a-bcf1-eeacb011ed79",
"alterId": 233, "alterId": 233,
"security": "auto" "security": "auto"
} }
@ -47,7 +38,23 @@
"enabled": true "enabled": true
} }
}, },
"inboundDetour": [ {
"protocol": "freedom",
"settings": {},
"tag": "direct"
}
],
"inbounds": [
{
"port": 2333,
"listen": "127.0.0.1",
"protocol": "socks",
"settings": {
"auth": "noauth",
"udp": true,
"ip": "127.0.0.1"
}
},
{ {
"port": 6666, "port": 6666,
"listen": "127.0.0.1", "listen": "127.0.0.1",
@ -59,13 +66,6 @@
} }
} }
], ],
"outboundDetour": [
{
"protocol": "freedom",
"settings": {},
"tag": "direct"
}
],
"dns": { "dns": {
"servers": [ "servers": [
"8.8.8.8", "8.8.8.8",
@ -74,9 +74,7 @@
] ]
}, },
"routing": { "routing": {
"strategy": "rules", "domainStrategy": "IPOnDemand",
"settings": {
"domainStrategy": "IPIfNonMatch",
"rules": [ "rules": [
{ {
"type": "field", "type": "field",
@ -114,4 +112,3 @@
] ]
} }
} }
}

@ -0,0 +1,202 @@
{
"log": {
"access": "/var/log/v2ray/access.log",
"error": "/var/log/v2ray/error.log",
"loglevel": "warning"
},
"inbounds": [
{
"port": 2333,
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "e55c8d17-2cf3-b21a-bcf1-eeacb011ed79",
"level": 1,
"alterId": 233
}
],
"detour": {
"to": "dynamic"
}
},
"streamSettings": {
"network": "tcp",
"tcpSettings": {
"header": {
"type": "http"
}
}
},
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls"
]
}
},
{
"protocol": "vmess",
"port": "10000-20000",
"tag": "dynamic",
"settings": {
"default": {
"level": 1,
"alterId": 32
}
},
"allocate": {
"strategy": "random",
"concurrency": 2,
"refresh": 5
},
"streamSettings": {
"network": "tcp",
"tcpSettings": {
"header": {
"type": "http",
"response": {
"version": "1.1",
"status": "200",
"reason": "OK",
"headers": {
"Content-encoding": [
"gzip"
],
"Content-Type": [
"text/html; charset=utf-8"
],
"Cache-Control": [
"no-cache"
],
"Vary": [
"Accept-Encoding"
],
"X-Frame-Options": [
"deny"
],
"X-XSS-Protection": [
"1; mode=block"
],
"X-content-type-options": [
"nosniff"
]
}
}
}
}
}
}
//include_ss
//include_socks
//include_mtproto
//include_config
//
],
"outbounds": [
{
"protocol": "freedom",
"settings": {}
},
{
"protocol": "blackhole",
"settings": {},
"tag": "blocked"
},
{
"protocol": "freedom",
"settings": {},
"tag": "direct"
},
{
"protocol": "mtproto",
"settings": {},
"tag": "tg-out"
}
],
"dns": {
"server": [
"8.8.8.8",
"8.8.4.4",
"1.1.1.1",
"1.0.0.1",
"localhost"
]
},
"routing": {
"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": "blocked"
},
{
"type": "field",
"domain": [
"domain:epochtimes.com",
"domain:epochtimes.com.tw",
"domain:epochtimes.fr",
"domain:epochtimes.de",
"domain:epochtimes.jp",
"domain:epochtimes.ru",
"domain:epochtimes.co.il",
"domain:epochtimes.co.kr",
"domain:epochtimes-romania.com",
"domain:erabaru.net",
"domain:lagranepoca.com",
"domain:theepochtimes.com",
"domain:ntdtv.com",
"domain:ntd.tv",
"domain:ntdtv-dc.com",
"domain:ntdtv.com.tw",
"domain:minghui.org",
"domain:renminbao.com",
"domain:dafahao.com",
"domain:dongtaiwang.com",
"domain:falundafa.org",
"domain:wujieliulan.com",
"domain:ninecommentaries.com",
"domain:shenyun.com"
],
"outboundTag": "blocked"
},
{
"type": "field",
"inboundTag": ["tg-in"],
"outboundTag": "tg-out"
}
//include_ban_bt
//include_ban_ad
//include_rules
//
]
},
"transport": {
"kcpSettings": {
"uplinkCapacity": 100,
"downlinkCapacity": 100,
"congestion": true
},
"sockopt": {
"tcpFastOpen": true
}
}
}

@ -0,0 +1,169 @@
{
"log": {
"access": "/var/log/v2ray/access.log",
"error": "/var/log/v2ray/error.log",
"loglevel": "warning"
},
"inbounds": [
{
"port": 2333,
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "e55c8d17-2cf3-b21a-bcf1-eeacb011ed79",
"level": 1,
"alterId": 233
}
],
"detour": {
"to": "dynamic"
}
},
"streamSettings": {
"network": "kcp"
},
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls"
]
}
},
{
"protocol": "vmess",
"port": "10000-20000",
"tag": "dynamic",
"settings": {
"default": {
"level": 1,
"alterId": 32
}
},
"allocate": {
"strategy": "random",
"concurrency": 2,
"refresh": 5
},
"streamSettings": {
"network": "kcp",
"kcpSettings": {
"header": {
"type": "none"
}
}
}
}
//include_ss
//include_socks
//include_mtproto
//include_config
//
],
"outbounds": [
{
"protocol": "freedom",
"settings": {}
},
{
"protocol": "blackhole",
"settings": {},
"tag": "blocked"
},
{
"protocol": "freedom",
"settings": {},
"tag": "direct"
},
{
"protocol": "mtproto",
"settings": {},
"tag": "tg-out"
}
],
"dns": {
"server": [
"8.8.8.8",
"8.8.4.4",
"1.1.1.1",
"1.0.0.1",
"localhost"
]
},
"routing": {
"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": "blocked"
},
{
"type": "field",
"domain": [
"domain:epochtimes.com",
"domain:epochtimes.com.tw",
"domain:epochtimes.fr",
"domain:epochtimes.de",
"domain:epochtimes.jp",
"domain:epochtimes.ru",
"domain:epochtimes.co.il",
"domain:epochtimes.co.kr",
"domain:epochtimes-romania.com",
"domain:erabaru.net",
"domain:lagranepoca.com",
"domain:theepochtimes.com",
"domain:ntdtv.com",
"domain:ntd.tv",
"domain:ntdtv-dc.com",
"domain:ntdtv.com.tw",
"domain:minghui.org",
"domain:renminbao.com",
"domain:dafahao.com",
"domain:dongtaiwang.com",
"domain:falundafa.org",
"domain:wujieliulan.com",
"domain:ninecommentaries.com",
"domain:shenyun.com"
],
"outboundTag": "blocked"
},
{
"type": "field",
"inboundTag": ["tg-in"],
"outboundTag": "tg-out"
}
//include_ban_bt
//include_ban_ad
//include_rules
//
]
},
"transport": {
"kcpSettings": {
"uplinkCapacity": 100,
"downlinkCapacity": 100,
"congestion": true
},
"sockopt": {
"tcpFastOpen": true
}
}
}

@ -0,0 +1,171 @@
{
"log": {
"access": "/var/log/v2ray/access.log",
"error": "/var/log/v2ray/error.log",
"loglevel": "warning"
},
"inbounds": [
{
"port": 2333,
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "e55c8d17-2cf3-b21a-bcf1-eeacb011ed79",
"level": 1,
"alterId": 233
}
],
"detour": {
"to": "dynamic"
}
},
"streamSettings": {
"network": "quic"
},
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls"
]
}
},
{
"protocol": "vmess",
"port": "10000-20000",
"tag": "dynamic",
"settings": {
"default": {
"level": 1,
"alterId": 32
}
},
"allocate": {
"strategy": "random",
"concurrency": 2,
"refresh": 5
},
"streamSettings": {
"network": "quic",
"quicSettings": {
"security": "aes-128-gcm",
"key": "",
"header": {
"type": "none"
}
}
}
}
//include_ss
//include_socks
//include_mtproto
//include_config
//
],
"outbounds": [
{
"protocol": "freedom",
"settings": {}
},
{
"protocol": "blackhole",
"settings": {},
"tag": "blocked"
},
{
"protocol": "freedom",
"settings": {},
"tag": "direct"
},
{
"protocol": "mtproto",
"settings": {},
"tag": "tg-out"
}
],
"dns": {
"server": [
"8.8.8.8",
"8.8.4.4",
"1.1.1.1",
"1.0.0.1",
"localhost"
]
},
"routing": {
"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": "blocked"
},
{
"type": "field",
"domain": [
"domain:epochtimes.com",
"domain:epochtimes.com.tw",
"domain:epochtimes.fr",
"domain:epochtimes.de",
"domain:epochtimes.jp",
"domain:epochtimes.ru",
"domain:epochtimes.co.il",
"domain:epochtimes.co.kr",
"domain:epochtimes-romania.com",
"domain:erabaru.net",
"domain:lagranepoca.com",
"domain:theepochtimes.com",
"domain:ntdtv.com",
"domain:ntd.tv",
"domain:ntdtv-dc.com",
"domain:ntdtv.com.tw",
"domain:minghui.org",
"domain:renminbao.com",
"domain:dafahao.com",
"domain:dongtaiwang.com",
"domain:falundafa.org",
"domain:wujieliulan.com",
"domain:ninecommentaries.com",
"domain:shenyun.com"
],
"outboundTag": "blocked"
},
{
"type": "field",
"inboundTag": ["tg-in"],
"outboundTag": "tg-out"
}
//include_ban_bt
//include_ban_ad
//include_rules
//
]
},
"transport": {
"kcpSettings": {
"uplinkCapacity": 100,
"downlinkCapacity": 100,
"congestion": true
},
"sockopt": {
"tcpFastOpen": true
}
}
}

@ -0,0 +1,161 @@
{
"log": {
"access": "/var/log/v2ray/access.log",
"error": "/var/log/v2ray/error.log",
"loglevel": "warning"
},
"inbounds": [
{
"port": 2333,
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "e55c8d17-2cf3-b21a-bcf1-eeacb011ed79",
"level": 1,
"alterId": 233
}
],
"detour": {
"to": "dynamic"
}
},
"streamSettings": {
"network": "tcp"
},
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls"
]
}
},
{
"protocol": "vmess",
"port": "10000-20000",
"tag": "dynamic",
"settings": {
"default": {
"level": 1,
"alterId": 32
}
},
"allocate": {
"strategy": "random",
"concurrency": 2,
"refresh": 5
}
}
//include_ss
//include_socks
//include_mtproto
//include_config
//
],
"outbounds": [
{
"protocol": "freedom",
"settings": {}
},
{
"protocol": "blackhole",
"settings": {},
"tag": "blocked"
},
{
"protocol": "freedom",
"settings": {},
"tag": "direct"
},
{
"protocol": "mtproto",
"settings": {},
"tag": "tg-out"
}
],
"dns": {
"server": [
"8.8.8.8",
"8.8.4.4",
"1.1.1.1",
"1.0.0.1",
"localhost"
]
},
"routing": {
"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": "blocked"
},
{
"type": "field",
"domain": [
"domain:epochtimes.com",
"domain:epochtimes.com.tw",
"domain:epochtimes.fr",
"domain:epochtimes.de",
"domain:epochtimes.jp",
"domain:epochtimes.ru",
"domain:epochtimes.co.il",
"domain:epochtimes.co.kr",
"domain:epochtimes-romania.com",
"domain:erabaru.net",
"domain:lagranepoca.com",
"domain:theepochtimes.com",
"domain:ntdtv.com",
"domain:ntd.tv",
"domain:ntdtv-dc.com",
"domain:ntdtv.com.tw",
"domain:minghui.org",
"domain:renminbao.com",
"domain:dafahao.com",
"domain:dongtaiwang.com",
"domain:falundafa.org",
"domain:wujieliulan.com",
"domain:ninecommentaries.com",
"domain:shenyun.com"
],
"outboundTag": "blocked"
},
{
"type": "field",
"inboundTag": ["tg-in"],
"outboundTag": "tg-out"
}
//include_ban_bt
//include_ban_ad
//include_rules
//
]
},
"transport": {
"kcpSettings": {
"uplinkCapacity": 100,
"downlinkCapacity": 100,
"congestion": true
},
"sockopt": {
"tcpFastOpen": true
}
}
}

@ -0,0 +1,164 @@
{
"log": {
"access": "/var/log/v2ray/access.log",
"error": "/var/log/v2ray/error.log",
"loglevel": "warning"
},
"inbounds": [
{
"port": 2333,
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "e55c8d17-2cf3-b21a-bcf1-eeacb011ed79",
"level": 1,
"alterId": 233
}
],
"detour": {
"to": "dynamic"
}
},
"streamSettings": {
"network": "ws"
},
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls"
]
}
},
{
"protocol": "vmess",
"port": "10000-20000",
"tag": "dynamic",
"settings": {
"default": {
"level": 1,
"alterId": 32
}
},
"allocate": {
"strategy": "random",
"concurrency": 2,
"refresh": 5
},
"streamSettings": {
"network": "ws"
}
}
//include_ss
//include_socks
//include_mtproto
//include_config
//
],
"outbounds": [
{
"protocol": "freedom",
"settings": {}
},
{
"protocol": "blackhole",
"settings": {},
"tag": "blocked"
},
{
"protocol": "freedom",
"settings": {},
"tag": "direct"
},
{
"protocol": "mtproto",
"settings": {},
"tag": "tg-out"
}
],
"dns": {
"server": [
"8.8.8.8",
"8.8.4.4",
"1.1.1.1",
"1.0.0.1",
"localhost"
]
},
"routing": {
"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": "blocked"
},
{
"type": "field",
"domain": [
"domain:epochtimes.com",
"domain:epochtimes.com.tw",
"domain:epochtimes.fr",
"domain:epochtimes.de",
"domain:epochtimes.jp",
"domain:epochtimes.ru",
"domain:epochtimes.co.il",
"domain:epochtimes.co.kr",
"domain:epochtimes-romania.com",
"domain:erabaru.net",
"domain:lagranepoca.com",
"domain:theepochtimes.com",
"domain:ntdtv.com",
"domain:ntd.tv",
"domain:ntdtv-dc.com",
"domain:ntdtv.com.tw",
"domain:minghui.org",
"domain:renminbao.com",
"domain:dafahao.com",
"domain:dongtaiwang.com",
"domain:falundafa.org",
"domain:wujieliulan.com",
"domain:ninecommentaries.com",
"domain:shenyun.com"
],
"outboundTag": "blocked"
},
{
"type": "field",
"inboundTag": ["tg-in"],
"outboundTag": "tg-out"
}
//include_ban_bt
//include_ban_ad
//include_rules
//
]
},
"transport": {
"kcpSettings": {
"uplinkCapacity": 100,
"downlinkCapacity": 100,
"congestion": true
},
"sockopt": {
"tcpFastOpen": true
}
}
}

@ -4,14 +4,14 @@
"error": "/var/log/v2ray/error.log", "error": "/var/log/v2ray/error.log",
"loglevel": "warning" "loglevel": "warning"
}, },
"inbound": { "inbounds": [
{
"port": 2333, "port": 2333,
"protocol": "vmess", "protocol": "vmess",
"settings": { "settings": {
"udp": true,
"clients": [ "clients": [
{ {
"id": "23332333-2333-2333-2333-233boy233boy", "id": "e55c8d17-2cf3-b21a-bcf1-eeacb011ed79",
"level": 1, "level": 1,
"alterId": 233 "alterId": 233
} }
@ -34,22 +34,53 @@
} }
] ]
} }
}
}, },
"outbound": { "sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls"
]
}
}
//include_ss
//include_socks
//include_mtproto
//include_config
//
],
"outbounds": [
{
"protocol": "freedom", "protocol": "freedom",
"settings": {} "settings": {}
}, },
"outboundDetour": [
{ {
"protocol": "blackhole", "protocol": "blackhole",
"settings": {}, "settings": {},
"tag": "blocked" "tag": "blocked"
},
{
"protocol": "freedom",
"settings": {},
"tag": "direct"
},
{
"protocol": "mtproto",
"settings": {},
"tag": "tg-out"
} }
], ],
"dns": {
"server": [
"8.8.8.8",
"8.8.4.4",
"1.1.1.1",
"1.0.0.1",
"localhost"
]
},
"routing": { "routing": {
"strategy": "rules", "domainStrategy": "IPOnDemand",
"settings": {
"rules": [ "rules": [
{ {
"type": "field", "type": "field",
@ -71,8 +102,56 @@
"fe80::/10" "fe80::/10"
], ],
"outboundTag": "blocked" "outboundTag": "blocked"
},
{
"type": "field",
"domain": [
"domain:epochtimes.com",
"domain:epochtimes.com.tw",
"domain:epochtimes.fr",
"domain:epochtimes.de",
"domain:epochtimes.jp",
"domain:epochtimes.ru",
"domain:epochtimes.co.il",
"domain:epochtimes.co.kr",
"domain:epochtimes-romania.com",
"domain:erabaru.net",
"domain:lagranepoca.com",
"domain:theepochtimes.com",
"domain:ntdtv.com",
"domain:ntd.tv",
"domain:ntdtv-dc.com",
"domain:ntdtv.com.tw",
"domain:minghui.org",
"domain:renminbao.com",
"domain:dafahao.com",
"domain:dongtaiwang.com",
"domain:falundafa.org",
"domain:wujieliulan.com",
"domain:ninecommentaries.com",
"domain:shenyun.com"
],
"outboundTag": "blocked"
},
{
"type": "field",
"inboundTag": ["tg-in"],
"outboundTag": "tg-out"
} }
//include_ban_bt
//include_ban_ad
//include_rules
//
] ]
},
"transport": {
"kcpSettings": {
"uplinkCapacity": 100,
"downlinkCapacity": 100,
"congestion": true
},
"sockopt": {
"tcpFastOpen": true
} }
} }
} }

@ -1,91 +0,0 @@
{
"log": {
"access": "/var/log/v2ray/access.log",
"error": "/var/log/v2ray/error.log",
"loglevel": "warning"
},
"inbound": {
"port": 2333,
"protocol": "vmess",
"settings": {
"udp": true,
"clients": [
{
"id": "23332333-2333-2333-2333-233boy233boy",
"level": 1,
"alterId": 233
}
]
},
"streamSettings": {
"network": "h2",
"httpSettings": {
"host": [
"233blog.com"
],
"path": "/233blog"
},
"security": "tls",
"tlsSettings": {
"certificates": [
{
"certificateFile": "/etc/v2ray/233boy/v2ray/config/233blog.com.cer",
"keyFile": "/etc/v2ray/233boy/v2ray/config/233blog.com.key"
}
]
}
}
},
"outbound": {
"protocol": "freedom",
"settings": {}
},
"inboundDetour": [
{
"protocol": "shadowsocks",
"port": 6666,
"settings": {
"method": "chacha20-ietf",
"password": "233blog.com",
"udp": true,
"level": 1,
"ota": false
}
}
],
"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"
}
]
}
}
}

@ -4,14 +4,14 @@
"error": "/var/log/v2ray/error.log", "error": "/var/log/v2ray/error.log",
"loglevel": "warning" "loglevel": "warning"
}, },
"inbound": { "inbounds": [
{
"port": 2333, "port": 2333,
"protocol": "vmess", "protocol": "vmess",
"settings": { "settings": {
"udp": true,
"clients": [ "clients": [
{ {
"id": "23332333-2333-2333-2333-233boy233boy", "id": "e55c8d17-2cf3-b21a-bcf1-eeacb011ed79",
"level": 1, "level": 1,
"alterId": 233 "alterId": 233
} }
@ -52,22 +52,53 @@
} }
} }
} }
}
}, },
"outbound": { "sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls"
]
}
}
//include_ss
//include_socks
//include_mtproto
//include_config
//
],
"outbounds": [
{
"protocol": "freedom", "protocol": "freedom",
"settings": {} "settings": {}
}, },
"outboundDetour": [
{ {
"protocol": "blackhole", "protocol": "blackhole",
"settings": {}, "settings": {},
"tag": "blocked" "tag": "blocked"
},
{
"protocol": "freedom",
"settings": {},
"tag": "direct"
},
{
"protocol": "mtproto",
"settings": {},
"tag": "tg-out"
} }
], ],
"dns": {
"server": [
"8.8.8.8",
"8.8.4.4",
"1.1.1.1",
"1.0.0.1",
"localhost"
]
},
"routing": { "routing": {
"strategy": "rules", "domainStrategy": "IPOnDemand",
"settings": {
"rules": [ "rules": [
{ {
"type": "field", "type": "field",
@ -89,8 +120,56 @@
"fe80::/10" "fe80::/10"
], ],
"outboundTag": "blocked" "outboundTag": "blocked"
},
{
"type": "field",
"domain": [
"domain:epochtimes.com",
"domain:epochtimes.com.tw",
"domain:epochtimes.fr",
"domain:epochtimes.de",
"domain:epochtimes.jp",
"domain:epochtimes.ru",
"domain:epochtimes.co.il",
"domain:epochtimes.co.kr",
"domain:epochtimes-romania.com",
"domain:erabaru.net",
"domain:lagranepoca.com",
"domain:theepochtimes.com",
"domain:ntdtv.com",
"domain:ntd.tv",
"domain:ntdtv-dc.com",
"domain:ntdtv.com.tw",
"domain:minghui.org",
"domain:renminbao.com",
"domain:dafahao.com",
"domain:dongtaiwang.com",
"domain:falundafa.org",
"domain:wujieliulan.com",
"domain:ninecommentaries.com",
"domain:shenyun.com"
],
"outboundTag": "blocked"
},
{
"type": "field",
"inboundTag": ["tg-in"],
"outboundTag": "tg-out"
} }
//include_ban_bt
//include_ban_ad
//include_rules
//
] ]
},
"transport": {
"kcpSettings": {
"uplinkCapacity": 100,
"downlinkCapacity": 100,
"congestion": true
},
"sockopt": {
"tcpFastOpen": true
} }
} }
} }

@ -1,154 +0,0 @@
{
"log": {
"access": "/var/log/v2ray/access.log",
"error": "/var/log/v2ray/error.log",
"loglevel": "warning"
},
"inbound": {
"port": 2333,
"protocol": "vmess",
"settings": {
"udp": true,
"clients": [
{
"id": "23332333-2333-2333-2333-233boy233boy",
"level": 1,
"alterId": 233
}
],
"detour": {
"to": "dynamic"
}
},
"streamSettings": {
"network": "tcp",
"tcpSettings": {
"header": {
"type": "http",
"response": {
"version": "1.1",
"status": "200",
"reason": "OK",
"headers": {
"Content-encoding": [
"gzip"
],
"Content-Type": [
"text/html; charset=utf-8"
],
"Cache-Control": [
"no-cache"
],
"Vary": [
"Accept-Encoding"
],
"X-Frame-Options": [
"deny"
],
"X-XSS-Protection": [
"1; mode=block"
],
"X-content-type-options": [
"nosniff"
]
}
}
}
}
}
},
"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": "tcp",
"tcpSettings": {
"header": {
"type": "http",
"response": {
"version": "1.1",
"status": "200",
"reason": "OK",
"headers": {
"Content-encoding": [
"gzip"
],
"Content-Type": [
"text/html; charset=utf-8"
],
"Cache-Control": [
"no-cache"
],
"Vary": [
"Accept-Encoding"
],
"X-Frame-Options": [
"deny"
],
"X-XSS-Protection": [
"1; mode=block"
],
"X-content-type-options": [
"nosniff"
]
}
}
}
}
}
}
],
"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"
}
]
}
}
}

@ -1,109 +0,0 @@
{
"log": {
"access": "/var/log/v2ray/access.log",
"error": "/var/log/v2ray/error.log",
"loglevel": "warning"
},
"inbound": {
"port": 2333,
"protocol": "vmess",
"settings": {
"udp": true,
"clients": [
{
"id": "23332333-2333-2333-2333-233boy233boy",
"level": 1,
"alterId": 233
}
]
},
"streamSettings": {
"network": "tcp",
"tcpSettings": {
"header": {
"type": "http",
"response": {
"version": "1.1",
"status": "200",
"reason": "OK",
"headers": {
"Content-encoding": [
"gzip"
],
"Content-Type": [
"text/html; charset=utf-8"
],
"Cache-Control": [
"no-cache"
],
"Vary": [
"Accept-Encoding"
],
"X-Frame-Options": [
"deny"
],
"X-XSS-Protection": [
"1; mode=block"
],
"X-content-type-options": [
"nosniff"
]
}
}
}
}
}
},
"outbound": {
"protocol": "freedom",
"settings": {}
},
"inboundDetour": [
{
"protocol": "shadowsocks",
"port": 6666,
"settings": {
"method": "chacha20-ietf",
"password": "233blog.com",
"udp": true,
"level": 1,
"ota": false
}
}
],
"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"
}
]
}
}
}

@ -1,165 +0,0 @@
{
"log": {
"access": "/var/log/v2ray/access.log",
"error": "/var/log/v2ray/error.log",
"loglevel": "warning"
},
"inbound": {
"port": 2333,
"protocol": "vmess",
"settings": {
"udp": true,
"clients": [
{
"id": "23332333-2333-2333-2333-233boy233boy",
"level": 1,
"alterId": 233
}
],
"detour": {
"to": "dynamic"
}
},
"streamSettings": {
"network": "tcp",
"tcpSettings": {
"header": {
"type": "http",
"response": {
"version": "1.1",
"status": "200",
"reason": "OK",
"headers": {
"Content-encoding": [
"gzip"
],
"Content-Type": [
"text/html; charset=utf-8"
],
"Cache-Control": [
"no-cache"
],
"Vary": [
"Accept-Encoding"
],
"X-Frame-Options": [
"deny"
],
"X-XSS-Protection": [
"1; mode=block"
],
"X-content-type-options": [
"nosniff"
]
}
}
}
}
}
},
"outbound": {
"protocol": "freedom",
"settings": {}
},
"inboundDetour": [
{
"protocol": "shadowsocks",
"port": 6666,
"settings": {
"method": "chacha20-ietf",
"password": "233blog.com",
"udp": true,
"level": 1,
"ota": false
}
},
{
"protocol": "vmess",
"port": "10000-20000",
"tag": "dynamic",
"settings": {
"udp": true,
"default": {
"level": 1,
"alterId": 32
}
},
"allocate": {
"strategy": "random",
"concurrency": 2,
"refresh": 5
},
"streamSettings": {
"network": "tcp",
"tcpSettings": {
"header": {
"type": "http",
"response": {
"version": "1.1",
"status": "200",
"reason": "OK",
"headers": {
"Content-encoding": [
"gzip"
],
"Content-Type": [
"text/html; charset=utf-8"
],
"Cache-Control": [
"no-cache"
],
"Vary": [
"Accept-Encoding"
],
"X-Frame-Options": [
"deny"
],
"X-XSS-Protection": [
"1; mode=block"
],
"X-content-type-options": [
"nosniff"
]
}
}
}
}
}
}
],
"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"
}
]
}
}
}

@ -0,0 +1,7 @@
{
"type": "field",
"protocol": [
"bittorrent"
],
"outboundTag": "blocked"
}

@ -0,0 +1,12 @@
{
"protocol": "mtproto",
"port": 6666,
"tag": "tg-in",
"settings": {
"users": [
{
"secret": "bb8a7fbd7190e345024845f07373ec48"
}
]
}
}

@ -0,0 +1,16 @@
{
"protocol": "socks",
"port": 6666,
"settings": {
"auth": "password",
"accounts": [
{
"user": "v2ray66.com",
"pass": "233blog.com"
}
],
"udp": true,
"timeout": 0,
"userLevel": 1
}
}

@ -0,0 +1,11 @@
{
"protocol": "shadowsocks",
"port": 6666,
"settings": {
"method": "chacha20-ietf",
"password": "233blog.com",
"network": "tcp,udp",
"level": 1,
"ota": false
}
}

@ -4,14 +4,14 @@
"error": "/var/log/v2ray/error.log", "error": "/var/log/v2ray/error.log",
"loglevel": "warning" "loglevel": "warning"
}, },
"inbound": { "inbounds": [
{
"port": 2333, "port": 2333,
"protocol": "vmess", "protocol": "vmess",
"settings": { "settings": {
"udp": true,
"clients": [ "clients": [
{ {
"id": "23332333-2333-2333-2333-233boy233boy", "id": "e55c8d17-2cf3-b21a-bcf1-eeacb011ed79",
"level": 1, "level": 1,
"alterId": 233 "alterId": 233
} }
@ -20,33 +20,57 @@
"streamSettings": { "streamSettings": {
"network": "kcp", "network": "kcp",
"kcpSettings": { "kcpSettings": {
"mtu": 1350,
"tti": 50,
"uplinkCapacity": 100,
"downlinkCapacity": 100,
"congestion": false,
"readBufferSize": 2,
"writeBufferSize": 2,
"header": { "header": {
"type": "none" "type": "none"
} }
} }
}
}, },
"outbound": { "sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls"
]
}
}
//include_ss
//include_socks
//include_mtproto
//include_config
//
],
"outbounds": [
{
"protocol": "freedom", "protocol": "freedom",
"settings": {} "settings": {}
}, },
"outboundDetour": [
{ {
"protocol": "blackhole", "protocol": "blackhole",
"settings": {}, "settings": {},
"tag": "blocked" "tag": "blocked"
},
{
"protocol": "freedom",
"settings": {},
"tag": "direct"
},
{
"protocol": "mtproto",
"settings": {},
"tag": "tg-out"
} }
], ],
"dns": {
"server": [
"8.8.8.8",
"8.8.4.4",
"1.1.1.1",
"1.0.0.1",
"localhost"
]
},
"routing": { "routing": {
"strategy": "rules", "domainStrategy": "IPOnDemand",
"settings": {
"rules": [ "rules": [
{ {
"type": "field", "type": "field",
@ -68,8 +92,56 @@
"fe80::/10" "fe80::/10"
], ],
"outboundTag": "blocked" "outboundTag": "blocked"
},
{
"type": "field",
"domain": [
"domain:epochtimes.com",
"domain:epochtimes.com.tw",
"domain:epochtimes.fr",
"domain:epochtimes.de",
"domain:epochtimes.jp",
"domain:epochtimes.ru",
"domain:epochtimes.co.il",
"domain:epochtimes.co.kr",
"domain:epochtimes-romania.com",
"domain:erabaru.net",
"domain:lagranepoca.com",
"domain:theepochtimes.com",
"domain:ntdtv.com",
"domain:ntd.tv",
"domain:ntdtv-dc.com",
"domain:ntdtv.com.tw",
"domain:minghui.org",
"domain:renminbao.com",
"domain:dafahao.com",
"domain:dongtaiwang.com",
"domain:falundafa.org",
"domain:wujieliulan.com",
"domain:ninecommentaries.com",
"domain:shenyun.com"
],
"outboundTag": "blocked"
},
{
"type": "field",
"inboundTag": ["tg-in"],
"outboundTag": "tg-out"
} }
//include_ban_bt
//include_ban_ad
//include_rules
//
] ]
},
"transport": {
"kcpSettings": {
"uplinkCapacity": 100,
"downlinkCapacity": 100,
"congestion": true
},
"sockopt": {
"tcpFastOpen": true
} }
} }
} }

@ -1,102 +0,0 @@
{
"log": {
"access": "/var/log/v2ray/access.log",
"error": "/var/log/v2ray/error.log",
"loglevel": "warning"
},
"inbound": {
"port": 2333,
"protocol": "vmess",
"settings": {
"udp": true,
"clients": [
{
"id": "23332333-2333-2333-2333-233boy233boy",
"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": "none"
}
}
},
"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"
}
]
}
}
}

@ -1,88 +0,0 @@
{
"log": {
"access": "/var/log/v2ray/access.log",
"error": "/var/log/v2ray/error.log",
"loglevel": "warning"
},
"inbound": {
"port": 2333,
"protocol": "vmess",
"settings": {
"udp": true,
"clients": [
{
"id": "23332333-2333-2333-2333-233boy233boy",
"level": 1,
"alterId": 233
}
]
},
"streamSettings": {
"network": "kcp",
"kcpSettings": {
"mtu": 1350,
"tti": 50,
"uplinkCapacity": 100,
"downlinkCapacity": 100,
"congestion": false,
"readBufferSize": 2,
"writeBufferSize": 2,
"header": {
"type": "none"
}
}
}
},
"outbound": {
"protocol": "freedom",
"settings": {}
},
"inboundDetour": [
{
"protocol": "shadowsocks",
"port": 6666,
"settings": {
"method": "chacha20-ietf",
"password": "233blog.com",
"udp": true,
"level": 1,
"ota": false
}
}
],
"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"
}
]
}
}
}

@ -1,113 +0,0 @@
{
"log": {
"access": "/var/log/v2ray/access.log",
"error": "/var/log/v2ray/error.log",
"loglevel": "warning"
},
"inbound": {
"port": 2333,
"protocol": "vmess",
"settings": {
"udp": true,
"clients": [
{
"id": "23332333-2333-2333-2333-233boy233boy",
"level": 1,
"alterId": 233
}
],
"detour": {
"to": "dynamic"
}
},
"streamSettings": {
"network": "kcp"
}
},
"outbound": {
"protocol": "freedom",
"settings": {}
},
"inboundDetour": [
{
"protocol": "shadowsocks",
"port": 6666,
"settings": {
"method": "chacha20-ietf",
"password": "233blog.com",
"udp": true,
"level": 1,
"ota": false
}
},
{
"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": "none"
}
}
},
"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"
}
]
}
}
}

@ -0,0 +1,149 @@
{
"log": {
"access": "/var/log/v2ray/access.log",
"error": "/var/log/v2ray/error.log",
"loglevel": "warning"
},
"inbounds": [
{
"port": 2333,
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "e55c8d17-2cf3-b21a-bcf1-eeacb011ed79",
"level": 1,
"alterId": 233
}
]
},
"streamSettings": {
"network": "quic",
"quicSettings": {
"security": "aes-128-gcm",
"key": "",
"header": {
"type": "none"
}
}
},
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls"
]
}
}
//include_ss
//include_socks
//include_mtproto
//include_config
//
],
"outbounds": [
{
"protocol": "freedom",
"settings": {}
},
{
"protocol": "blackhole",
"settings": {},
"tag": "blocked"
},
{
"protocol": "freedom",
"settings": {},
"tag": "direct"
},
{
"protocol": "mtproto",
"settings": {},
"tag": "tg-out"
}
],
"dns": {
"server": [
"8.8.8.8",
"8.8.4.4",
"1.1.1.1",
"1.0.0.1",
"localhost"
]
},
"routing": {
"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": "blocked"
},
{
"type": "field",
"domain": [
"domain:epochtimes.com",
"domain:epochtimes.com.tw",
"domain:epochtimes.fr",
"domain:epochtimes.de",
"domain:epochtimes.jp",
"domain:epochtimes.ru",
"domain:epochtimes.co.il",
"domain:epochtimes.co.kr",
"domain:epochtimes-romania.com",
"domain:erabaru.net",
"domain:lagranepoca.com",
"domain:theepochtimes.com",
"domain:ntdtv.com",
"domain:ntd.tv",
"domain:ntdtv-dc.com",
"domain:ntdtv.com.tw",
"domain:minghui.org",
"domain:renminbao.com",
"domain:dafahao.com",
"domain:dongtaiwang.com",
"domain:falundafa.org",
"domain:wujieliulan.com",
"domain:ninecommentaries.com",
"domain:shenyun.com"
],
"outboundTag": "blocked"
},
{
"type": "field",
"inboundTag": ["tg-in"],
"outboundTag": "tg-out"
}
//include_ban_bt
//include_ban_ad
//include_rules
//
]
},
"transport": {
"kcpSettings": {
"uplinkCapacity": 100,
"downlinkCapacity": 100,
"congestion": true
},
"sockopt": {
"tcpFastOpen": true
}
}
}

@ -1,62 +0,0 @@
{
"log": {
"access": "/var/log/v2ray/access.log",
"error": "/var/log/v2ray/error.log",
"loglevel": "warning"
},
"inbound": {
"port": 2333,
"protocol": "socks",
"settings": {
"auth": "password",
"accounts": [
{
"user": "233blog",
"pass": "233blog.com"
}
],
"udp": true,
"timeout": 0,
"userLevel": 1
}
},
"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"
}
]
}
}
}

@ -1,75 +0,0 @@
{
"log": {
"access": "/var/log/v2ray/access.log",
"error": "/var/log/v2ray/error.log",
"loglevel": "warning"
},
"inbound": {
"port": 2333,
"protocol": "socks",
"settings": {
"auth": "password",
"accounts": [
{
"user": "233blog",
"pass": "233blog.com"
}
],
"udp": true,
"timeout": 0,
"userLevel": 1
}
},
"outbound": {
"protocol": "freedom",
"settings": {}
},
"inboundDetour": [
{
"protocol": "shadowsocks",
"port": 6666,
"settings": {
"method": "chacha20-ietf",
"password": "233blog.com",
"udp": true,
"level": 1,
"ota": false
}
}
],
"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"
}
]
}
}
}

@ -4,34 +4,68 @@
"error": "/var/log/v2ray/error.log", "error": "/var/log/v2ray/error.log",
"loglevel": "warning" "loglevel": "warning"
}, },
"inbound": { "inbounds": [
{
"port": 2333, "port": 2333,
"protocol": "vmess", "protocol": "vmess",
"settings": { "settings": {
"udp": true,
"clients": [ "clients": [
{ {
"id": "23332333-2333-2333-2333-233boy233boy", "id": "e55c8d17-2cf3-b21a-bcf1-eeacb011ed79",
"level": 1, "level": 1,
"alterId": 233 "alterId": 233
} }
] ]
}
}, },
"outbound": { "streamSettings": {
"network": "tcp"
},
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls"
]
}
}
//include_ss
//include_socks
//include_mtproto
//include_config
//
],
"outbounds": [
{
"protocol": "freedom", "protocol": "freedom",
"settings": {} "settings": {}
}, },
"outboundDetour": [
{ {
"protocol": "blackhole", "protocol": "blackhole",
"settings": {}, "settings": {},
"tag": "blocked" "tag": "blocked"
},
{
"protocol": "freedom",
"settings": {},
"tag": "direct"
},
{
"protocol": "mtproto",
"settings": {},
"tag": "tg-out"
} }
], ],
"dns": {
"server": [
"8.8.8.8",
"8.8.4.4",
"1.1.1.1",
"1.0.0.1",
"localhost"
]
},
"routing": { "routing": {
"strategy": "rules", "domainStrategy": "IPOnDemand",
"settings": {
"rules": [ "rules": [
{ {
"type": "field", "type": "field",
@ -53,8 +87,56 @@
"fe80::/10" "fe80::/10"
], ],
"outboundTag": "blocked" "outboundTag": "blocked"
},
{
"type": "field",
"domain": [
"domain:epochtimes.com",
"domain:epochtimes.com.tw",
"domain:epochtimes.fr",
"domain:epochtimes.de",
"domain:epochtimes.jp",
"domain:epochtimes.ru",
"domain:epochtimes.co.il",
"domain:epochtimes.co.kr",
"domain:epochtimes-romania.com",
"domain:erabaru.net",
"domain:lagranepoca.com",
"domain:theepochtimes.com",
"domain:ntdtv.com",
"domain:ntd.tv",
"domain:ntdtv-dc.com",
"domain:ntdtv.com.tw",
"domain:minghui.org",
"domain:renminbao.com",
"domain:dafahao.com",
"domain:dongtaiwang.com",
"domain:falundafa.org",
"domain:wujieliulan.com",
"domain:ninecommentaries.com",
"domain:shenyun.com"
],
"outboundTag": "blocked"
},
{
"type": "field",
"inboundTag": ["tg-in"],
"outboundTag": "tg-out"
} }
//include_ban_bt
//include_ban_ad
//include_rules
//
] ]
},
"transport": {
"kcpSettings": {
"uplinkCapacity": 100,
"downlinkCapacity": 100,
"congestion": true
},
"sockopt": {
"tcpFastOpen": true
} }
} }
} }

@ -1,82 +0,0 @@
{
"log": {
"access": "/var/log/v2ray/access.log",
"error": "/var/log/v2ray/error.log",
"loglevel": "warning"
},
"inbound": {
"port": 2333,
"protocol": "vmess",
"settings": {
"udp": true,
"clients": [
{
"id": "23332333-2333-2333-2333-233boy233boy",
"level": 1,
"alterId": 233
}
],
"detour": {
"to": "dynamic"
}
}
},
"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
}
}
],
"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"
}
]
}
}
}

@ -1,73 +0,0 @@
{
"log": {
"access": "/var/log/v2ray/access.log",
"error": "/var/log/v2ray/error.log",
"loglevel": "warning"
},
"inbound": {
"port": 2333,
"protocol": "vmess",
"settings": {
"udp": true,
"clients": [
{
"id": "23332333-2333-2333-2333-233boy233boy",
"level": 1,
"alterId": 233
}
]
}
},
"outbound": {
"protocol": "freedom",
"settings": {}
},
"inboundDetour": [
{
"protocol": "shadowsocks",
"port": 6666,
"settings": {
"method": "chacha20-ietf",
"password": "233blog.com",
"udp": true,
"level": 1,
"ota": false
}
}
],
"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"
}
]
}
}
}

@ -1,93 +0,0 @@
{
"log": {
"access": "/var/log/v2ray/access.log",
"error": "/var/log/v2ray/error.log",
"loglevel": "warning"
},
"inbound": {
"port": 2333,
"protocol": "vmess",
"settings": {
"udp": true,
"clients": [
{
"id": "23332333-2333-2333-2333-233boy233boy",
"level": 1,
"alterId": 233
}
],
"detour": {
"to": "dynamic"
}
}
},
"outbound": {
"protocol": "freedom",
"settings": {}
},
"inboundDetour": [
{
"protocol": "shadowsocks",
"port": 6666,
"settings": {
"method": "chacha20-ietf",
"password": "233blog.com",
"udp": true,
"level": 1,
"ota": false
}
},
{
"protocol": "vmess",
"port": "10000-20000",
"tag": "dynamic",
"settings": {
"udp": true,
"default": {
"level": 1,
"alterId": 32
}
},
"allocate": {
"strategy": "random",
"concurrency": 2,
"refresh": 5
}
}
],
"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"
}
]
}
}
}

@ -4,14 +4,14 @@
"error": "/var/log/v2ray/error.log", "error": "/var/log/v2ray/error.log",
"loglevel": "warning" "loglevel": "warning"
}, },
"inbound": { "inbounds": [
{
"port": 2333, "port": 2333,
"protocol": "vmess", "protocol": "vmess",
"settings": { "settings": {
"udp": true,
"clients": [ "clients": [
{ {
"id": "23332333-2333-2333-2333-233boy233boy", "id": "e55c8d17-2cf3-b21a-bcf1-eeacb011ed79",
"level": 1, "level": 1,
"alterId": 233 "alterId": 233
} }
@ -19,22 +19,53 @@
}, },
"streamSettings": { "streamSettings": {
"network": "ws" "network": "ws"
}
}, },
"outbound": { "sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls"
]
}
}
//include_ss
//include_socks
//include_mtproto
//include_config
//
],
"outbounds": [
{
"protocol": "freedom", "protocol": "freedom",
"settings": {} "settings": {}
}, },
"outboundDetour": [
{ {
"protocol": "blackhole", "protocol": "blackhole",
"settings": {}, "settings": {},
"tag": "blocked" "tag": "blocked"
},
{
"protocol": "freedom",
"settings": {},
"tag": "direct"
},
{
"protocol": "mtproto",
"settings": {},
"tag": "tg-out"
} }
], ],
"dns": {
"server": [
"8.8.8.8",
"8.8.4.4",
"1.1.1.1",
"1.0.0.1",
"localhost"
]
},
"routing": { "routing": {
"strategy": "rules", "domainStrategy": "IPOnDemand",
"settings": {
"rules": [ "rules": [
{ {
"type": "field", "type": "field",
@ -56,8 +87,56 @@
"fe80::/10" "fe80::/10"
], ],
"outboundTag": "blocked" "outboundTag": "blocked"
},
{
"type": "field",
"domain": [
"domain:epochtimes.com",
"domain:epochtimes.com.tw",
"domain:epochtimes.fr",
"domain:epochtimes.de",
"domain:epochtimes.jp",
"domain:epochtimes.ru",
"domain:epochtimes.co.il",
"domain:epochtimes.co.kr",
"domain:epochtimes-romania.com",
"domain:erabaru.net",
"domain:lagranepoca.com",
"domain:theepochtimes.com",
"domain:ntdtv.com",
"domain:ntd.tv",
"domain:ntdtv-dc.com",
"domain:ntdtv.com.tw",
"domain:minghui.org",
"domain:renminbao.com",
"domain:dafahao.com",
"domain:dongtaiwang.com",
"domain:falundafa.org",
"domain:wujieliulan.com",
"domain:ninecommentaries.com",
"domain:shenyun.com"
],
"outboundTag": "blocked"
},
{
"type": "field",
"inboundTag": ["tg-in"],
"outboundTag": "tg-out"
} }
//include_ban_bt
//include_ban_ad
//include_rules
//
] ]
},
"transport": {
"kcpSettings": {
"uplinkCapacity": 100,
"downlinkCapacity": 100,
"congestion": true
},
"sockopt": {
"tcpFastOpen": true
} }
} }
} }

@ -1,88 +0,0 @@
{
"log": {
"access": "/var/log/v2ray/access.log",
"error": "/var/log/v2ray/error.log",
"loglevel": "warning"
},
"inbound": {
"port": 2333,
"protocol": "vmess",
"settings": {
"udp": true,
"clients": [
{
"id": "23332333-2333-2333-2333-233boy233boy",
"level": 1,
"alterId": 233
}
],
"detour": {
"to": "dynamic"
}
},
"streamSettings": {
"network": "ws"
}
},
"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": "ws"
}
}
],
"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"
}
]
}
}
}

@ -1,76 +0,0 @@
{
"log": {
"access": "/var/log/v2ray/access.log",
"error": "/var/log/v2ray/error.log",
"loglevel": "warning"
},
"inbound": {
"port": 2333,
"protocol": "vmess",
"settings": {
"udp": true,
"clients": [
{
"id": "23332333-2333-2333-2333-233boy233boy",
"level": 1,
"alterId": 233
}
]
},
"streamSettings": {
"network": "ws"
}
},
"outbound": {
"protocol": "freedom",
"settings": {}
},
"inboundDetour": [
{
"protocol": "shadowsocks",
"port": 6666,
"settings": {
"method": "chacha20-ietf",
"password": "233blog.com",
"udp": true,
"level": 1,
"ota": false
}
}
],
"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"
}
]
}
}
}

@ -1,99 +0,0 @@
{
"log": {
"access": "/var/log/v2ray/access.log",
"error": "/var/log/v2ray/error.log",
"loglevel": "warning"
},
"inbound": {
"port": 2333,
"protocol": "vmess",
"settings": {
"udp": true,
"clients": [
{
"id": "23332333-2333-2333-2333-233boy233boy",
"level": 1,
"alterId": 233
}
],
"detour": {
"to": "dynamic"
}
},
"streamSettings": {
"network": "ws"
}
},
"outbound": {
"protocol": "freedom",
"settings": {}
},
"inboundDetour": [
{
"protocol": "shadowsocks",
"port": 6666,
"settings": {
"method": "chacha20-ietf",
"password": "233blog.com",
"udp": true,
"level": 1,
"ota": false
}
},
{
"protocol": "vmess",
"port": "10000-20000",
"tag": "dynamic",
"settings": {
"udp": true,
"default": {
"level": 1,
"alterId": 32
}
},
"allocate": {
"strategy": "random",
"concurrency": 2,
"refresh": 5
},
"streamSettings": {
"network": "ws"
}
}
],
"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"
}
]
}
}
}

File diff suppressed because it is too large Load Diff

@ -0,0 +1,6 @@
# ban ad
if [[ $ban_ad ]]; then
ban_ad_file="/etc/v2ray/233boy/v2ray/config/server/include/ad.json"
sed -i "/\/\/include_ban_ad/r $ban_ad_file" $v2ray_server_config
sed -i "s#//include_ban_ad#,#" $v2ray_server_config
fi

@ -0,0 +1,6 @@
# ban bt
if [[ $ban_bt ]]; then
ban_bt_file="/etc/v2ray/233boy/v2ray/config/server/include/bt.json"
sed -i "/\/\/include_ban_bt/r $ban_bt_file" $v2ray_server_config
sed -i "s#//include_ban_bt#,#" $v2ray_server_config
fi

@ -0,0 +1,71 @@
_ban_bt_main() {
if [[ $ban_bt ]]; then
local _info="$green已开启$none"
else
local _info="$red已关闭$none"
fi
_opt=''
while :; do
echo
echo -e "$yellow 1. $none开启 BT 屏蔽"
echo
echo -e "$yellow 2. $none关闭 BT 屏蔽"
echo
echo -e "当前 BT 屏蔽状态: $_info"
echo
read -p "$(echo -e "请选择 [${magenta}1-2$none]:")" _opt
if [[ -z $_opt ]]; then
error
else
case $_opt in
1)
if [[ $ban_bt ]]; then
echo
echo -e " 大胸弟...难不成你没有看到 (当前 BT 屏蔽状态: $_info) 这个帅帅的提示么.....还开启个鸡鸡哦"
echo
else
echo
echo
echo -e "$yellow BT 屏蔽 = $cyan开启$none"
echo "----------------------------------------------------------------"
echo
pause
backup_config +bt
ban_bt=true
config
echo
echo
echo -e "$green BT 屏蔽已开启...如果出现异常..那就关闭它咯$none"
echo
fi
break
;;
2)
if [[ $ban_bt ]]; then
echo
echo
echo -e "$yellow BT 屏蔽 = $cyan关闭$none"
echo "----------------------------------------------------------------"
echo
pause
backup_config -bt
ban_bt=''
config
echo
echo
echo -e "$red BT 屏蔽已关闭...不过你也可以随时重新开启 ...只要你喜欢$none"
echo
else
echo
echo -e " 大胸弟...难不成你没有看到 (当前 BT 屏蔽状态: $_info) 这个帅帅的提示么.....还关闭个鸡鸡哦"
echo
fi
break
;;
*)
error
;;
esac
fi
done
}

@ -0,0 +1,67 @@
local email=$(((RANDOM << 22)))
case $v2ray_transport in
4)
if [[ $is_path ]]; then
cat >/etc/caddy/Caddyfile <<-EOF
$domain {
tls ${email}@gmail.com
gzip
timeouts none
proxy / $proxy_site {
except /${path}
}
proxy /${path} 127.0.0.1:${v2ray_port} {
without /${path}
websocket
}
}
import sites/*
EOF
else
cat >/etc/caddy/Caddyfile <<-EOF
$domain {
tls ${email}@gmail.com
timeouts none
proxy / 127.0.0.1:${v2ray_port} {
websocket
}
}
import sites/*
EOF
fi
;;
5)
if [[ $is_path ]]; then
cat >/etc/caddy/Caddyfile <<-EOF
$domain {
tls ${email}@gmail.com
gzip
timeouts none
proxy / $proxy_site {
except /${path}
}
proxy /${path} https://127.0.0.1:${v2ray_port} {
header_upstream Host {host}
header_upstream X-Forwarded-Proto {scheme}
insecure_skip_verify
}
}
import sites/*
EOF
else
cat >/etc/caddy/Caddyfile <<-EOF
$domain {
tls ${email}@gmail.com
timeouts none
proxy / https://127.0.0.1:${v2ray_port} {
header_upstream Host {host}
header_upstream X-Forwarded-Proto {scheme}
insecure_skip_verify
}
}
import sites/*
EOF
fi
;;
esac

@ -0,0 +1,24 @@
# vmess
_load vmess-config.sh
# ban bt
_load ban_bt.sh
# ban ad
_load ban_ad.sh
# custom rules
_load custom_rules.sh
# ss
_load ss-config.sh
# socks
_load socks-config.sh
# mtproto
_load mtproto-config.sh
# custom config
_load custom_config.sh

@ -0,0 +1,6 @@
# custom config
if [[ -f /etc/v2ray/custom/config.json ]]; then
custom_config_file="/etc/v2ray/custom/config.json"
sed -i "/\/\/include_config/r $custom_config_file" $v2ray_server_config
sed -i "s#//include_config#,#" $v2ray_server_config
fi

@ -0,0 +1,6 @@
# custom rules
if [[ -f /etc/v2ray/custom/rules.json ]]; then
custom_rules_file="/etc/v2ray/custom/rules.json"
sed -i "/\/\/include_rules/r $custom_rules_file" $v2ray_server_config
sed -i "s#//include_rules#,#" $v2ray_server_config
fi

@ -0,0 +1,47 @@
_download_caddy_file() {
caddy_tmp="/tmp/install_caddy/"
caddy_tmp_file="/tmp/install_caddy/caddy.tar.gz"
[[ -d $caddy_tmp ]] && rm -rf $caddy_tmp
if [[ $sys_bit == "i386" || $sys_bit == "i686" ]]; then
local caddy_download_link="https://caddyserver.com/download/linux/386?license=personal"
else
local caddy_download_link="https://caddyserver.com/download/linux/amd64?license=personal"
fi
mkdir -p $caddy_tmp
if ! wget --no-check-certificate -O "$caddy_tmp_file" $caddy_download_link; then
echo -e "$red 下载 Caddy 失败!$none" && exit 1
fi
tar zxf $caddy_tmp_file -C $caddy_tmp
cp -f ${caddy_tmp}caddy /usr/local/bin/
if [[ ! -f /usr/local/bin/caddy ]]; then
echo -e "$red 安装 Caddy 出错!" && exit 1
fi
}
_install_caddy_service() {
setcap CAP_NET_BIND_SERVICE=+eip /usr/local/bin/caddy
if [[ $systemd ]]; then
cp -f ${caddy_tmp}init/linux-systemd/caddy.service /lib/systemd/system/
# sed -i "s/www-data/root/g" /lib/systemd/system/caddy.service
sed -i "s/on-abnormal/always/" /lib/systemd/system/caddy.service
systemctl enable caddy
else
cp -f ${caddy_tmp}init/linux-sysvinit/caddy /etc/init.d/caddy
# sed -i "s/www-data/root/g" /etc/init.d/caddy
chmod +x /etc/init.d/caddy
update-rc.d -f caddy defaults
fi
mkdir -p /etc/ssl/caddy
if [ -z "$(grep www-data /etc/passwd)" ]; then
useradd -M -s /usr/sbin/nologin www-data
fi
chown -R www-data.www-data /etc/ssl/caddy
mkdir -p /etc/caddy/
}

@ -0,0 +1,73 @@
_get_latest_version() {
v2ray_latest_ver="$(curl -H 'Cache-Control: no-cache' -s https://api.github.com/repos/v2ray/v2ray-core/releases/latest | grep 'tag_name' | cut -d\" -f4)"
if [[ ! $v2ray_latest_ver ]]; then
echo
echo -e " $red获取 V2Ray 最新版本失败!!!$none"
echo
echo -e " 请尝试执行如下命令: $green echo 'nameserver 8.8.8.8' >/etc/resolv.conf $none"
echo
echo " 然后再重新运行脚本...."
echo
exit 1
fi
}
_download_v2ray_file() {
_get_latest_version
[[ -d /tmp/v2ray ]] && rm -rf /tmp/v2ray
mkdir -p /tmp/v2ray
v2ray_tmp_file="/tmp/v2ray/v2ray.zip"
v2ray_download_link="https://github.com/v2ray/v2ray-core/releases/download/$v2ray_latest_ver/v2ray-linux-${v2ray_bit}.zip"
if ! wget --no-check-certificate -O "$v2ray_tmp_file" $v2ray_download_link; then
echo -e "
$red 下载 V2Ray 失败啦..可能是你的 VPS 网络太辣鸡了...请重试...$none
" && exit 1
fi
unzip $v2ray_tmp_file -d "/tmp/v2ray/"
mkdir -p /usr/bin/v2ray
cp -f "/tmp/v2ray/v2ray" "/usr/bin/v2ray/v2ray"
chmod +x "/usr/bin/v2ray/v2ray"
cp -f "/tmp/v2ray/v2ctl" "/usr/bin/v2ray/v2ctl"
chmod +x "/usr/bin/v2ray/v2ctl"
}
_install_v2ray_service() {
if [[ $systemd ]]; then
cp -f "/tmp/v2ray/systemd/v2ray.service" "/lib/systemd/system/"
sed -i "s/on-failure/always/" /lib/systemd/system/v2ray.service
systemctl enable v2ray
else
apt-get install -y daemon
cp "/tmp/v2ray/systemv/v2ray" "/etc/init.d/v2ray"
chmod +x "/etc/init.d/v2ray"
update-rc.d -f v2ray defaults
fi
}
_update_v2ray_version() {
_get_latest_version
if [[ $v2ray_ver != $v2ray_latest_ver ]]; then
echo
echo -e " $green 咦...发现新版本耶....正在拼命更新.......$none"
echo
_download_v2ray_file
do_service restart v2ray
echo
echo -e " $green 更新成功啦...当前 V2Ray 版本: ${cyan}$v2ray_latest_ver$none"
echo
echo -e " $yellow 温馨提示: 为了避免出现莫名其妙的问题...V2Ray 客户端的版本最好和服务器的版本保持一致$none"
echo
else
echo
echo -e " $green 木有发现新版本....$none"
echo
fi
}
_mkdir_dir() {
mkdir -p /var/log/v2ray
mkdir -p /etc/v2ray
}

@ -0,0 +1,17 @@
_rm() {
rm -rf "$@"
}
_cp() {
cp -f "$@"
}
_sed() {
sed -i "$@"
}
_mkdir() {
mkdir -p "$@"
}
_load() {
local _dir="/etc/v2ray/233boy/v2ray/src/"
. "${_dir}$@"
}

@ -0,0 +1,10 @@
# shadowsocks config
if [[ $mtproto ]]; then
mtproto_file="/etc/v2ray/233boy/v2ray/config/server/include/mtproto.json"
mtproto_file_tmp="/tmp/ss.json.tmp"
cp -f $mtproto_file $mtproto_file_tmp
sed -i "s/6666/$mtproto_port/; s/bb8a7fbd7190e345024845f07373ec48/$mtproto_secret/" $mtproto_file_tmp
sed -i "/\/\/include_mtproto/r $mtproto_file_tmp" $v2ray_server_config
sed -i "s#//include_mtproto#,#" $v2ray_server_config
rm -rf $mtproto_file_tmp
fi

@ -0,0 +1,288 @@
_view_mtproto_info() {
if [[ $mtproto ]]; then
_mtproto_info
else
_mtproto_ask
fi
}
_mtproto_info() {
[[ -z $ip ]] && get_ip
echo
echo "---------- Telegram MTProto 配置信息 -------------"
echo
echo -e "$yellow 主机 (Hostname) = $cyan${ip}$none"
echo
echo -e "$yellow 端口 (Port) = $cyan$mtproto_port$none"
echo
echo -e "$yellow 密钥 (Secret) = $cyan$mtproto_secret$none"
echo
echo -e "$yellow Telegram 代理配置链接 = ${cyan}tg://proxy?server=${ip}&port=${mtproto_port}&secret=${mtproto_secret}$none"
echo
}
_mtproto_main() {
if [[ $mtproto ]]; then
while :; do
echo
echo -e "$yellow 1. $none查看 Telegram MTProto 配置信息"
echo
echo -e "$yellow 2. $none修改 Telegram MTProto 端口"
echo
echo -e "$yellow 3. $none修改 Telegram MTProto 密钥"
echo
echo -e "$yellow 4. $none关闭 Telegram MTProto"
echo
read -p "$(echo -e "请选择 [${magenta}1-4$none]:")" _opt
if [[ -z $_opt ]]; then
error
else
case $_opt in
1)
_mtproto_info
break
;;
2)
change_mtproto_port
break
;;
3)
change_mtproto_secret
break
;;
4)
disable_mtproto
break
;;
*)
error
;;
esac
fi
done
else
_mtproto_ask
fi
}
_mtproto_ask() {
echo
echo
echo -e " $red大佬...你没有配置 Telegram MTProto $none...不过现在想要配置的话也是可以的 ^_^"
echo
echo
new_mtproto_secret=$(date | md5sum | cut -c-32)
while :; do
echo -e "是否配置 ${yellow}Telegram MTProto${none} [${magenta}Y/N$none]"
read -p "$(echo -e "(默认 [${cyan}N$none]):") " new_mtproto
[[ -z "$new_mtproto" ]] && new_mtproto="n"
if [[ "$new_mtproto" == [Yy] ]]; then
echo
mtproto=true
mtproto_port_config
pause
open_port $new_mtproto_port
backup_config +mtproto
mtproto_port=$new_mtproto_port
mtproto_secret=$new_mtproto_secret
config
clear
_mtproto_info
break
elif [[ "$new_mtproto" == [Nn] ]]; then
echo
echo -e " $green已取消配置 Telegram MTProto ....$none"
echo
break
else
error
fi
done
}
disable_mtproto() {
echo
while :; do
echo -e "是否关闭 ${yellow}Telegram MTProto${none} [${magenta}Y/N$none]"
read -p "$(echo -e "(默认 [${cyan}N$none]):") " y_n
[[ -z "$y_n" ]] && y_n="n"
if [[ "$y_n" == [Yy] ]]; then
echo
echo
echo -e "$yellow 关闭 Telegram MTProto = $cyan是$none"
echo "----------------------------------------------------------------"
echo
pause
backup_config -mtproto
del_port $mtproto_port
mtproto=''
config
echo
echo
echo
echo -e "$green Telegram MTProto 已关闭...不过你也可以随时重新启用 Telegram MTProto ...只要你喜欢$none"
echo
break
elif [[ "$y_n" == [Nn] ]]; then
echo
echo -e " $green已取消关闭 Telegram MTProto ....$none"
echo
break
else
error
fi
done
}
mtproto_port_config() {
local random=$(shuf -i20001-65535 -n1)
echo
while :; do
echo -e "请输入 "$yellow"Telegram MTProto"$none" 端口 ["$magenta"1-65535"$none"],不能和 "$yellow"V2Ray"$none" 端口相同"
read -p "$(echo -e "(默认端口: ${cyan}${random}$none):") " new_mtproto_port
[ -z "$new_mtproto_port" ] && new_mtproto_port=$random
case $new_mtproto_port in
$v2ray_port)
echo
echo " 不能和 V2Ray 端口一毛一样...."
error
;;
[1-9] | [1-9][0-9] | [1-9][0-9][0-9] | [1-9][0-9][0-9][0-9] | [1-5][0-9][0-9][0-9][0-9] | 6[0-4][0-9][0-9][0-9] | 65[0-4][0-9][0-9] | 655[0-3][0-5])
if [[ $v2ray_transport == [45] ]]; then
local tls=ture
fi
if [[ $tls && $new_mtproto_port == "80" ]] || [[ $tls && $new_mtproto_port == "443" ]]; then
echo
echo -e "由于你已选择了 "$green"WebSocket + TLS $none或$green HTTP/2"$none" 传输协议."
echo
echo -e "所以不能选择 "$magenta"80"$none" 或 "$magenta"443"$none" 端口"
error
elif [[ $dynamicPort ]] && [[ $v2ray_dynamicPort_start == $new_mtproto_port || $v2ray_dynamicPort_end == $new_mtproto_port ]]; then
echo
echo -e " 抱歉,此端口和 V2Ray 动态端口 冲突,当前 V2Ray 动态端口范围为:${cyan}$port_range${none}"
error
elif [[ $dynamicPort ]] && [[ $v2ray_dynamicPort_start -lt $new_mtproto_port && $new_mtproto_port -le $v2ray_dynamicPort_end ]]; then
echo
echo -e " 抱歉,此端口和 V2Ray 动态端口 冲突,当前 V2Ray 动态端口范围为:${cyan}$port_range${none}"
error
elif [[ $shadowsocks && $new_mtproto_port == $ssport ]]; then
echo
echo -e "抱歉, 此端口跟 Shadowsocks 端口冲突...当前 Shadowsocks 端口: ${cyan}$ssport$none"
error
elif [[ $socks && $new_mtproto_port == $socks_port ]]; then
echo
echo -e "抱歉, 此端口跟 Socks 端口冲突...当前 Socks 端口: ${cyan}$socks_port$none"
error
else
echo
echo
echo -e "$yellow Telegram MTProto 端口 = $cyan$new_mtproto_port$none"
echo "----------------------------------------------------------------"
echo
break
fi
;;
*)
error
;;
esac
done
}
change_mtproto_secret() {
new_mtproto_secret=$(date | md5sum | cut -c-32)
echo
while :; do
read -p "$(echo -e "是否更改 ${yellow}Telegram MTProto 密钥${none} [${magenta}Y/N$none]"): " y_n
[ -z "$y_n" ] && error && continue
case $y_n in
n | N)
echo
echo -e " 已取消更改.... "
echo
break
;;
y | Y)
echo
echo
echo -e "$yellow 更改 Telegram MTProto 密钥 = $cyan是$none"
echo "----------------------------------------------------------------"
echo
pause
backup_config mtproto_secret
mtproto_secret=$new_mtproto_secret
config
clear
_mtproto_info
break
;;
esac
done
}
change_mtproto_port() {
echo
while :; do
echo -e "请输入新的 "$yellow"Telegram MTProto"$none" 端口 ["$magenta"1-65535"$none"]"
read -p "$(echo -e "(当前端口: ${cyan}${mtproto_port}$none):") " new_mtproto_port
[ -z "$new_mtproto_port" ] && error && continue
case $new_mtproto_port in
$mtproto_port)
echo
echo " 不能跟当前端口一毛一样...."
error
;;
$v2ray_port)
echo
echo " 不能和 V2Ray 端口一毛一样...."
error
;;
[1-9] | [1-9][0-9] | [1-9][0-9][0-9] | [1-9][0-9][0-9][0-9] | [1-5][0-9][0-9][0-9][0-9] | 6[0-4][0-9][0-9][0-9] | 65[0-4][0-9][0-9] | 655[0-3][0-5])
if [[ $v2ray_transport == [45] ]]; then
local tls=ture
fi
if [[ $tls && $new_mtproto_port == "80" ]] || [[ $tls && $new_mtproto_port == "443" ]]; then
echo
echo -e "由于你已选择了 "$green"WebSocket + TLS $none或$green HTTP/2"$none" 传输协议."
echo
echo -e "所以不能选择 "$magenta"80"$none" 或 "$magenta"443"$none" 端口"
error
elif [[ $dynamicPort ]] && [[ $v2ray_dynamicPort_start == $new_mtproto_port || $v2ray_dynamicPort_end == $new_mtproto_port ]]; then
echo
echo -e " 抱歉,此端口和 V2Ray 动态端口 冲突,当前 V2Ray 动态端口范围为:${cyan}$port_range${none}"
error
elif [[ $dynamicPort ]] && [[ $v2ray_dynamicPort_start -lt $new_mtproto_port && $new_mtproto_port -le $v2ray_dynamicPort_end ]]; then
echo
echo -e " 抱歉,此端口和 V2Ray 动态端口 冲突,当前 V2Ray 动态端口范围为:${cyan}$port_range${none}"
error
elif [[ $shadowsocks && $new_mtproto_port == $ssport ]]; then
echo
echo -e "抱歉, 此端口跟 Shadowsocks 端口冲突...当前 Shadowsocks 端口: ${cyan}$ssport$none"
error
elif [[ $socks && $new_mtproto_port == $socks_port ]]; then
echo
echo -e "抱歉, 此端口跟 Socks 端口冲突...当前 Socks 端口: ${cyan}$socks_port$none"
error
else
echo
echo
echo -e "$yellow socks 端口 = $cyan$new_mtproto_port$none"
echo "----------------------------------------------------------------"
echo
pause
backup_config mtproto_port
mtproto_port=$new_mtproto_port
config
clear
_mtproto_info
break
fi
;;
*)
error
;;
esac
done
}

@ -0,0 +1,10 @@
# Socks config
if [[ $socks ]]; then
socks_file="/etc/v2ray/233boy/v2ray/config/server/include/socks.json"
socks_file_tmp="/tmp/socks.json.tmp"
cp -f $socks_file $socks_file_tmp
sed -i "s/6666/$socks_port/; s/v2ray66.com/$socks_username/; s/233blog.com/$socks_userpass/" $socks_file_tmp
sed -i "/\/\/include_socks/r $socks_file_tmp" $v2ray_server_config
sed -i "s#//include_socks#,#" $v2ray_server_config
rm -rf $socks_file_tmp
fi

@ -0,0 +1,386 @@
_view_socks_info() {
if [[ $socks ]]; then
_socks_info
else
_socks_ask
fi
}
_socks_info() {
[[ -z $ip ]] && get_ip
echo
echo "---------- Socks 配置信息 -------------"
echo
echo -e "$yellow 主机 (Hostname) = $cyan${ip}$none"
echo
echo -e "$yellow 端口 (Port) = $cyan$socks_port$none"
echo
echo -e "$yellow 用户名 (Username) = $cyan$socks_username$none"
echo
echo -e "$yellow 密码 (Password) = $cyan$socks_userpass$none"
echo
echo -e "$yellow Telegram 代理配置链接 = ${cyan}tg://socks?server=${ip}&port=${socks_port}&user=${socks_username}&pass=${socks_userpass}$none"
echo
}
_socks_main() {
if [[ $socks ]]; then
while :; do
echo
echo -e "$yellow 1. $none查看 Socks 配置信息"
echo
echo -e "$yellow 2. $none修改 Socks 端口"
echo
echo -e "$yellow 3. $none修改 Socks 用户名"
echo
echo -e "$yellow 4. $none修改 Socks 密码"
echo
echo -e "$yellow 5. $none关闭 Socks"
echo
read -p "$(echo -e "请选择 [${magenta}1-4$none]:")" _opt
if [[ -z $_opt ]]; then
error
else
case $_opt in
1)
_socks_info
break
;;
2)
change_socks_port_config
break
;;
3)
change_socks_user_config
break
;;
4)
change_socks_pass_config
break
;;
5)
disable_socks
break
;;
*)
error
;;
esac
fi
done
else
_socks_ask
fi
}
_socks_ask() {
echo
echo
echo -e " $red大佬...你没有配置 Socks $none...不过现在想要配置的话也是可以的 ^_^"
echo
echo
while :; do
echo -e "是否配置 ${yellow}Socks${none} [${magenta}Y/N$none]"
read -p "$(echo -e "(默认 [${cyan}N$none]):") " new_socks
[[ -z "$new_socks" ]] && new_socks="n"
if [[ "$new_socks" == [Yy] ]]; then
echo
socks=true
socks_port_config
socks_user_config
socks_pass_config
pause
open_port $new_socks_port
backup_config +socks
socks_port=$new_socks_port
socks_username=$new_socks_username
socks_userpass=$new_socks_userpass
config
clear
_socks_info
break
elif [[ "$new_socks" == [Nn] ]]; then
echo
echo -e " $green已取消配置 Socks ....$none"
echo
break
else
error
fi
done
}
disable_socks() {
echo
while :; do
echo -e "是否关闭 ${yellow}Socks${none} [${magenta}Y/N$none]"
read -p "$(echo -e "(默认 [${cyan}N$none]):") " y_n
[[ -z "$y_n" ]] && y_n="n"
if [[ "$y_n" == [Yy] ]]; then
echo
echo
echo -e "$yellow 关闭 Socks = $cyan是$none"
echo "----------------------------------------------------------------"
echo
pause
backup_config -socks
del_port $socks_port
socks=''
config
echo
echo
echo
echo -e "$green Socks 已关闭...不过你也可以随时重新启用 Socks ...只要你喜欢$none"
echo
break
elif [[ "$y_n" == [Nn] ]]; then
echo
echo -e " $green已取消关闭 Socks ....$none"
echo
break
else
error
fi
done
}
socks_port_config() {
local random=$(shuf -i20001-65535 -n1)
echo
while :; do
echo -e "请输入 "$yellow"Socks"$none" 端口 ["$magenta"1-65535"$none"],不能和 "$yellow"V2Ray"$none" 端口相同"
read -p "$(echo -e "(默认端口: ${cyan}${random}$none):") " new_socks_port
[ -z "$new_socks_port" ] && new_socks_port=$random
case $new_socks_port in
$v2ray_port)
echo
echo " 不能和 V2Ray 端口一毛一样...."
error
;;
[1-9] | [1-9][0-9] | [1-9][0-9][0-9] | [1-9][0-9][0-9][0-9] | [1-5][0-9][0-9][0-9][0-9] | 6[0-4][0-9][0-9][0-9] | 65[0-4][0-9][0-9] | 655[0-3][0-5])
if [[ $v2ray_transport == [45] ]]; then
local tls=ture
fi
if [[ $tls && $new_socks_port == "80" ]] || [[ $tls && $new_socks_port == "443" ]]; then
echo
echo -e "由于你已选择了 "$green"WebSocket + TLS $none或$green HTTP/2"$none" 传输协议."
echo
echo -e "所以不能选择 "$magenta"80"$none" 或 "$magenta"443"$none" 端口"
error
elif [[ $dynamicPort ]] && [[ $v2ray_dynamicPort_start == $new_socks_port || $v2ray_dynamicPort_end == $new_socks_port ]]; then
echo
echo -e " 抱歉,此端口和 V2Ray 动态端口 冲突,当前 V2Ray 动态端口范围为:${cyan}$port_range${none}"
error
elif [[ $dynamicPort ]] && [[ $v2ray_dynamicPort_start -lt $new_socks_port && $new_socks_port -le $v2ray_dynamicPort_end ]]; then
echo
echo -e " 抱歉,此端口和 V2Ray 动态端口 冲突,当前 V2Ray 动态端口范围为:${cyan}$port_range${none}"
error
elif [[ $shadowsocks && $new_socks_port == $ssport ]]; then
echo
echo -e "抱歉, 此端口跟 Shadowsocks 端口冲突...当前 Shadowsocks 端口: ${cyan}$ssport$none"
error
elif [[ $mtproto && $new_socks_port == $mtproto_port ]]; then
echo
echo -e "抱歉, 此端口跟 MTProto 端口冲突...当前 MTProto 端口: ${cyan}$mtproto_port$none"
error
else
echo
echo
echo -e "$yellow Socks 端口 = $cyan$new_socks_port$none"
echo "----------------------------------------------------------------"
echo
break
fi
;;
*)
error
;;
esac
done
}
socks_user_config() {
echo
while :; do
read -p "$(echo -e "请输入$yellow用户名$none...(默认用户名: ${cyan}233blog$none)"): " new_socks_username
[ -z "$new_socks_username" ] && new_socks_username="233blog"
case $new_socks_username in
*[/$]* | *\&*)
echo
echo -e " 由于这个脚本太辣鸡了..所以用户名不能包含$red / $none或$red $ $none或$red & $none这三个符号.... "
echo
error
;;
*)
echo
echo
echo -e "$yellow 用户名 = $cyan$new_socks_username$none"
echo "----------------------------------------------------------------"
echo
break
;;
esac
done
}
socks_pass_config() {
echo
while :; do
read -p "$(echo -e "请输入$yellow密码$none...(默认密码: ${cyan}233blog.com$none)"): " new_socks_userpass
[ -z "$new_socks_userpass" ] && new_socks_userpass="233blog.com"
case $new_socks_userpass in
*[/$]* | *\&*)
echo
echo -e " 由于这个脚本太辣鸡了..所以密码不能包含$red / $none或$red $ $none或$red & $none这三个符号.... "
echo
error
;;
*)
echo
echo
echo -e "$yellow 密码 = $cyan$new_socks_userpass$none"
echo "----------------------------------------------------------------"
echo
break
;;
esac
done
}
change_socks_user_config() {
echo
while :; do
read -p "$(echo -e "请输入$yellow用户名$none...(当前用户名: ${cyan}$socks_username$none)"): " new_socks_username
[ -z "$new_socks_username" ] && error && continue
case $new_socks_username in
$socks_username)
echo
echo -e " 大佬...跟 当前用户名 一毛一样啊...修改个鸡鸡哦 "
echo
error
;;
*[/$]* | *\&*)
echo
echo -e " 由于这个脚本太辣鸡了..所以用户名不能包含$red / $none或$red $ $none或$red & $none这三个符号.... "
echo
error
;;
*)
echo
echo
echo -e "$yellow 用户名 = $cyan$new_socks_username$none"
echo "----------------------------------------------------------------"
echo
pause
backup_config socks_username
socks_username=$new_socks_username
config
clear
_socks_info
break
;;
esac
done
}
change_socks_pass_config() {
echo
while :; do
read -p "$(echo -e "请输入$yellow密码$none...(当前密码: ${cyan}$socks_userpass$none)"): " new_socks_userpass
[ -z "$new_socks_userpass" ] && error && continue
case $new_socks_userpass in
$socks_userpass)
echo
echo -e " 大佬...跟 当前密码 一毛一样啊...修改个鸡鸡哦 "
echo
error
;;
*[/$]* | *\&*)
echo
echo -e " 由于这个脚本太辣鸡了..所以密码不能包含$red / $none或$red $ $none或$red & $none这三个符号.... "
echo
error
;;
*)
echo
echo
echo -e "$yellow 密码 = $cyan$new_socks_userpass$none"
echo "----------------------------------------------------------------"
echo
pause
backup_config socks_userpass
socks_userpass=$new_socks_userpass
config
clear
_socks_info
break
;;
esac
done
}
change_socks_port_config() {
echo
while :; do
echo -e "请输入新的 "$yellow"Socks"$none" 端口 ["$magenta"1-65535"$none"]"
read -p "$(echo -e "(当前端口: ${cyan}${socks_port}$none):") " new_socks_port
[ -z "$new_socks_port" ] && error && continue
case $new_socks_port in
$socks_port)
echo
echo " 不能和当前端口一毛一样...."
error
;;
$v2ray_port)
echo
echo " 不能和 V2Ray 端口一毛一样...."
error
;;
[1-9] | [1-9][0-9] | [1-9][0-9][0-9] | [1-9][0-9][0-9][0-9] | [1-5][0-9][0-9][0-9][0-9] | 6[0-4][0-9][0-9][0-9] | 65[0-4][0-9][0-9] | 655[0-3][0-5])
if [[ $v2ray_transport == [45] ]]; then
local tls=ture
fi
if [[ $tls && $new_socks_port == "80" ]] || [[ $tls && $new_socks_port == "443" ]]; then
echo
echo -e "由于你已选择了 "$green"WebSocket + TLS $none或$green HTTP/2"$none" 传输协议."
echo
echo -e "所以不能选择 "$magenta"80"$none" 或 "$magenta"443"$none" 端口"
error
elif [[ $dynamicPort ]] && [[ $v2ray_dynamicPort_start == $new_socks_port || $v2ray_dynamicPort_end == $new_socks_port ]]; then
echo
echo -e " 抱歉,此端口和 V2Ray 动态端口 冲突,当前 V2Ray 动态端口范围为:${cyan}$port_range${none}"
error
elif [[ $dynamicPort ]] && [[ $v2ray_dynamicPort_start -lt $new_socks_port && $new_socks_port -le $v2ray_dynamicPort_end ]]; then
echo
echo -e " 抱歉,此端口和 V2Ray 动态端口 冲突,当前 V2Ray 动态端口范围为:${cyan}$port_range${none}"
error
elif [[ $shadowsocks && $new_socks_port == $ssport ]]; then
echo
echo -e "抱歉, 此端口跟 Shadowsocks 端口冲突...当前 Shadowsocks 端口: ${cyan}$ssport$none"
error
elif [[ $mtproto && $new_socks_port == $mtproto_port ]]; then
echo
echo -e "抱歉, 此端口跟 MTProto 端口冲突...当前 MTProto 端口: ${cyan}$mtproto_port$none"
error
else
echo
echo
echo -e "$yellow socks 端口 = $cyan$new_socks_port$none"
echo "----------------------------------------------------------------"
echo
pause
backup_config socks_port
socks_port=$new_socks_port
config
clear
_socks_info
break
fi
;;
*)
error
;;
esac
done
}

@ -0,0 +1,10 @@
# shadowsocks config
if [[ $shadowsocks ]]; then
ss_file="/etc/v2ray/233boy/v2ray/config/server/include/ss.json"
ss_file_tmp="/tmp/ss.json.tmp"
cp -f $ss_file $ss_file_tmp
sed -i "s/6666/$ssport/; s/chacha20-ietf/$ssciphers/; s/233blog.com/$sspass/" $ss_file_tmp
sed -i "/\/\/include_ss/r $ss_file_tmp" $v2ray_server_config
sed -i "s#//include_ss#,#" $v2ray_server_config
rm -rf $ss_file_tmp
fi

@ -0,0 +1,21 @@
[[ -z $ip ]] && get_ip
if [[ $shadowsocks ]]; then
local ss="ss://$(echo -n "${ssciphers}:${sspass}@${ip}:${ssport}" | base64 -w 0)#233yes.com_ss_${ip}"
echo
echo "---------- Shadowsocks 配置信息 -------------"
echo
echo -e "$yellow 服务器地址 = $cyan${ip}$none"
echo
echo -e "$yellow 服务器端口 = $cyan$ssport$none"
echo
echo -e "$yellow 密码 = $cyan$sspass$none"
echo
echo -e "$yellow 加密协议 = $cyan${ssciphers}$none"
echo
echo -e "$yellow SS 链接 = ${cyan}$ss$none"
echo
echo -e " 备注:$red Shadowsocks Win 4.0.6 $none客户端可能无法识别该 SS 链接"
echo
echo -e "提示: 输入$cyan v2ray ssqr $none可生成 Shadowsocks 二维码链接"
echo
fi

@ -0,0 +1,34 @@
transport=(
TCP
TCP_HTTP
WebSocket
"WebSocket + TLS"
HTTP/2
mKCP
mKCP_utp
mKCP_srtp
mKCP_wechat-video
mKCP_dtls
mKCP_wireguard
QUIC
QUIC_utp
QUIC_srtp
QUIC_wechat-video
QUIC_dtls
QUIC_wireguard
TCP_dynamicPort
TCP_HTTP_dynamicPort
WebSocket_dynamicPort
mKCP_dynamicPort
mKCP_utp_dynamicPort
mKCP_srtp_dynamicPort
mKCP_wechat-video_dynamicPort
mKCP_dtls_dynamicPort
mKCP_wireguard_dynamicPort
QUIC_dynamicPort
QUIC_utp_dynamicPort
QUIC_srtp_dynamicPort
QUIC_wechat-video_dynamicPort
QUIC_dtls_dynamicPort
QUIC_wireguard_dynamicPort
)

@ -0,0 +1,168 @@
while :; do
echo
read -p "$(echo -e "是否卸载 ${yellow}V2Ray$none [${magenta}Y/N$none]:")" uninstall_v2ray_ask
if [[ -z $uninstall_v2ray_ask ]]; then
error
else
case $uninstall_v2ray_ask in
Y | y)
is_uninstall_v2ray=true
echo
echo -e "$yellow 卸载 V2Ray = ${cyan}${none}"
echo
break
;;
N | n)
echo
echo -e "$red 卸载已取消...$none"
echo
break
;;
*)
error
;;
esac
fi
done
if [[ $caddy && $is_uninstall_v2ray ]] && [[ -f /usr/local/bin/caddy && -f /etc/caddy/Caddyfile ]]; then
while :; do
echo
read -p "$(echo -e "是否卸载 ${yellow}Caddy$none [${magenta}Y/N$none]:")" uninstall_caddy_ask
if [[ -z $uninstall_caddy_ask ]]; then
error
else
case $uninstall_caddy_ask in
Y | y)
is_uninstall_caddy=true
echo
echo -e "$yellow 卸载 Caddy = ${cyan}${none}"
echo
break
;;
N | n)
echo
echo -e "$yellow 卸载 Caddy = ${cyan}${none}"
echo
break
;;
*)
error
;;
esac
fi
done
fi
if [[ $is_uninstall_v2ray && $is_uninstall_caddy ]]; then
pause
echo
if [[ $shadowsocks ]]; then
del_port $ssport
fi
if [[ $socks ]]; then
del_port $socks_port
fi
if [[ $mtproto ]]; then
del_port $mtproto_port
fi
if [[ $v2ray_transport == [45] ]]; then
del_port "80"
del_port "443"
del_port $v2ray_port
elif [[ $v2ray_transport -ge 18 ]]; then
del_port $v2ray_port
del_port "multiport"
else
del_port $v2ray_port
fi
[ $cmd == "apt-get" ] && rm -rf /etc/network/if-pre-up.d/iptables
# [ $v2ray_pid ] && systemctl stop v2ray
[ $v2ray_pid ] && do_service stop v2ray
rm -rf /usr/bin/v2ray
rm -rf $_v2ray_sh
rm -rf /etc/v2ray
rm -rf /var/log/v2ray
# [ $caddy_pid ] && systemctl stop caddy
[ $caddy_pid ] && do_service stop caddy
rm -rf /usr/local/bin/caddy
rm -rf /etc/caddy
rm -rf /etc/ssl/caddy
if [[ $systemd ]]; then
systemctl disable v2ray >/dev/null 2>&1
rm -rf /lib/systemd/system/v2ray.service
systemctl disable caddy >/dev/null 2>&1
rm -rf /lib/systemd/system/caddy.service
else
update-rc.d -f caddy remove >/dev/null 2>&1
update-rc.d -f v2ray remove >/dev/null 2>&1
rm -rf /etc/init.d/caddy
rm -rf /etc/init.d/v2ray
fi
# clear
echo
echo -e "$green V2Ray 卸载完成啦 ....$none"
echo
echo "如果你觉得这个脚本有哪些地方不够好的话...请告诉我"
echo
echo "反馈问题: https://github.com/233boy/v2ray/issues"
echo
elif [[ $is_uninstall_v2ray ]]; then
pause
echo
if [[ $shadowsocks ]]; then
del_port $ssport
fi
if [[ $socks ]]; then
del_port $socks_port
fi
if [[ $mtproto ]]; then
del_port $mtproto_port
fi
if [[ $v2ray_transport == [45] ]]; then
del_port "80"
del_port "443"
del_port $v2ray_port
elif [[ $v2ray_transport -ge 18 ]]; then
del_port $v2ray_port
del_port "multiport"
else
del_port $v2ray_port
fi
[ $cmd == "apt-get" ] && rm -rf /etc/network/if-pre-up.d/iptables
# [ $v2ray_pid ] && systemctl stop v2ray
[ $v2ray_pid ] && do_service stop v2ray
rm -rf /usr/bin/v2ray
rm -rf $_v2ray_sh
rm -rf /etc/v2ray
rm -rf /var/log/v2ray
if [[ $systemd ]]; then
systemctl disable v2ray >/dev/null 2>&1
rm -rf /lib/systemd/system/v2ray.service
else
update-rc.d -f v2ray remove >/dev/null 2>&1
rm -rf /etc/init.d/v2ray
fi
# clear
echo
echo -e "$green V2Ray 卸载完成啦 ....$none"
echo
echo "如果你觉得这个脚本有哪些地方不够好的话...请告诉我"
echo
echo "反馈问题: https://github.com/233boy/v2ray/issues"
echo
fi

@ -0,0 +1,136 @@
[[ -z $ip ]] && get_ip
_v2_args() {
header="none"
if [[ $is_path ]]; then
_path="/$path"
else
_path="/"
fi
case $v2ray_transport in
1 | 18)
net="tcp"
;;
2 | 19)
net="tcp"
header="http"
host="www.baidu.com"
;;
3 | 4 | 20)
net="ws"
;;
5)
net="h2"
;;
6 | 21)
net="kcp"
;;
7 | 22)
net="kcp"
header="utp"
;;
8 | 23)
net="kcp"
header="srtp"
;;
9 | 24)
net="kcp"
header="wechat-video"
;;
10 | 25)
net="kcp"
header="dtls"
;;
11 | 26)
net="kcp"
header="wireguard"
;;
12 | 27)
net="quic"
;;
13 | 28)
net="quic"
header="utp"
;;
14 | 29)
net="quic"
header="srtp"
;;
15 | 30)
net="quic"
header="wechat-video"
;;
16 | 31)
net="quic"
header="dtls"
;;
17 | 32)
net="quic"
header="wireguard"
;;
esac
}
_v2_info() {
echo
echo
echo "---------- V2Ray 配置信息 -------------"
if [[ $v2ray_transport == [45] ]]; then
if [[ ! $caddy ]]; then
echo
echo -e " $red警告$none$yellow请自行配置 TLS...教程: https://233yes.com/post/3/$none"
fi
echo
echo -e "$yellow 地址 (Address) = $cyan${domain}$none"
echo
echo -e "$yellow 端口 (Port) = ${cyan}443${none}"
echo
echo -e "$yellow 用户ID (User ID / UUID) = $cyan${v2ray_id}$none"
echo
echo -e "$yellow 额外ID (Alter Id) = ${cyan}${alterId}${none}"
echo
echo -e "$yellow 传输协议 (Network) = ${cyan}${net}$none"
echo
echo -e "$yellow 伪装类型 (header type) = ${cyan}${header}$none"
echo
echo -e "$yellow 伪装域名 (host) = ${cyan}${domain}$none"
echo
echo -e "$yellow 路径 (path) = ${cyan}${_path}$none"
echo
echo -e "$yellow TLS (Enable TLS) = ${cyan}打开$none"
echo
if [[ $ban_ad ]]; then
echo " 备注: 广告拦截已开启.."
echo
fi
else
echo
echo -e "$yellow 地址 (Address) = $cyan${ip}$none"
echo
echo -e "$yellow 端口 (Port) = $cyan$v2ray_port$none"
echo
echo -e "$yellow 用户ID (User ID / UUID) = $cyan${v2ray_id}$none"
echo
echo -e "$yellow 额外ID (Alter Id) = ${cyan}${alterId}${none}"
echo
echo -e "$yellow 传输协议 (Network) = ${cyan}${net}$none"
echo
echo -e "$yellow 伪装类型 (header type) = ${cyan}${header}$none"
echo
fi
if [[ $v2ray_transport -ge 18 ]] && [[ $ban_ad ]]; then
echo " 备注: 动态端口已启用...广告拦截已开启..."
echo
elif [[ $v2ray_transport -ge 18 ]]; then
echo " 备注: 动态端口已启用..."
echo
elif [[ $ban_ad ]]; then
echo " 备注: 广告拦截已开启.."
echo
fi
echo "---------- END -------------"
echo
echo "V2Ray 客户端使用教程: https://233yes.com/post/4/"
echo
echo -e "提示: 输入$cyan v2ray url $none可生成 vmess URL 链接 / 输入$cyan v2ray qr $none可生成二维码链接"
echo
}

@ -0,0 +1,111 @@
# config file
case $v2ray_transport in
1)
v2ray_server_config_file="/etc/v2ray/233boy/v2ray/config/server/tcp.json"
v2ray_client_config_file="/etc/v2ray/233boy/v2ray/config/client/tcp.json"
;;
2)
v2ray_server_config_file="/etc/v2ray/233boy/v2ray/config/server/http.json"
v2ray_client_config_file="/etc/v2ray/233boy/v2ray/config/client/http.json"
;;
3)
v2ray_server_config_file="/etc/v2ray/233boy/v2ray/config/server/ws.json"
v2ray_client_config_file="/etc/v2ray/233boy/v2ray/config/client/ws.json"
;;
4)
v2ray_server_config_file="/etc/v2ray/233boy/v2ray/config/server/ws.json"
v2ray_client_config_file="/etc/v2ray/233boy/v2ray/config/client/ws_tls.json"
;;
5)
v2ray_server_config_file="/etc/v2ray/233boy/v2ray/config/server/h2.json"
v2ray_client_config_file="/etc/v2ray/233boy/v2ray/config/client/h2.json"
;;
[6-9] | 10 | 11)
v2ray_server_config_file="/etc/v2ray/233boy/v2ray/config/server/kcp.json"
v2ray_client_config_file="/etc/v2ray/233boy/v2ray/config/client/kcp.json"
;;
1[2-7])
v2ray_server_config_file="/etc/v2ray/233boy/v2ray/config/server/quic.json"
v2ray_client_config_file="/etc/v2ray/233boy/v2ray/config/client/quic.json"
;;
18)
v2ray_server_config_file="/etc/v2ray/233boy/v2ray/config/server/dynamic/tcp.json"
v2ray_client_config_file="/etc/v2ray/233boy/v2ray/config/client/tcp.json"
;;
19)
v2ray_server_config_file="/etc/v2ray/233boy/v2ray/config/server/dynamic/http.json"
v2ray_client_config_file="/etc/v2ray/233boy/v2ray/config/client/http.json"
;;
20)
v2ray_server_config_file="/etc/v2ray/233boy/v2ray/config/server/dynamic/ws.json"
v2ray_client_config_file="/etc/v2ray/233boy/v2ray/config/client/ws.json"
;;
2[1-6])
v2ray_server_config_file="/etc/v2ray/233boy/v2ray/config/server/dynamic/kcp.json"
v2ray_client_config_file="/etc/v2ray/233boy/v2ray/config/client/kcp.json"
;;
*)
v2ray_server_config_file="/etc/v2ray/233boy/v2ray/config/server/dynamic/quic.json"
v2ray_client_config_file="/etc/v2ray/233boy/v2ray/config/client/quic.json"
;;
esac
# copy config file
cp -f $v2ray_server_config_file $v2ray_server_config
cp -f $v2ray_client_config_file $v2ray_client_config
# change port, uuid, alterId
sed -i "9s/2333/$v2ray_port/; 14s/$old_id/$v2ray_id/; 16s/233/$alterId/" $v2ray_server_config
# change dynamic port
if [[ $v2ray_transport -ge 18 ]]; then
local multi_port="${v2ray_dynamicPort_start}-${v2ray_dynamicPort_end}"
sed -i "s/10000-20000/$multi_port/" $v2ray_server_config
fi
# change domain and path, or header type
case $v2ray_transport in
5)
sed -i "24s/233blog.com/$domain/" $v2ray_server_config
if [[ $is_path ]]; then
sed -i "26s/233blog/$path/" $v2ray_server_config
else
sed -i "26s/233blog//" $v2ray_server_config
fi
;;
7 | 13 | 22 | 28)
sed -i "s/none/utp/" $v2ray_server_config
sed -i "s/none/utp/" $v2ray_client_config
;;
8 | 14 | 23 | 29)
sed -i "s/none/srtp/" $v2ray_server_config
sed -i "s/none/srtp/" $v2ray_client_config
;;
9 | 15 | 24 | 30)
sed -i "s/none/wechat-video/" $v2ray_server_config
sed -i "s/none/wechat-video/" $v2ray_client_config
;;
10 | 16 | 25 | 31)
sed -i "s/none/dtls/" $v2ray_server_config
sed -i "s/none/dtls/" $v2ray_client_config
;;
11 | 17 | 26 | 32)
sed -i "s/none/wireguard/" $v2ray_server_config
sed -i "s/none/wireguard/" $v2ray_client_config
;;
esac
## change client config file
[[ -z $ip ]] && get_ip
if [[ $v2ray_transport == [45] ]]; then
sed -i "s/233blog.com/$domain/; 13s/2333/443/; 16s/$old_id/$v2ray_id/; 17s/233/$alterId/" $v2ray_client_config
if [[ $is_path ]]; then
sed -i "31s/233blog/$path/" $v2ray_client_config
else
sed -i "31s/233blog//" $v2ray_client_config
fi
else
sed -i "s/233blog.com/$ip/; 13s/2333/$v2ray_port/; 16s/$old_id/$v2ray_id/; 17s/233/$alterId/" $v2ray_client_config
fi
# zip -q -r -j --password "233blog.com" /etc/v2ray/233blog_v2ray.zip $v2ray_client_config

@ -0,0 +1,38 @@
{
"port": 2333, // v2ray port
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "e55c8d17-2cf3-b21a-bcf1-eeacb011ed79", // uuid
"level": 1,
"alterId": 233 // alterid
}
]
},
"streamSettings": {
"network": "h2",
"httpSettings": {
"host": [
"233blog.com" // domain
],
"path": "/233blog" // path
},
"security": "tls",
"tlsSettings": {
"certificates": [
{
"certificateFile": "/etc/v2ray/233boy/v2ray/config/233blog.com.cer",
"keyFile": "/etc/v2ray/233boy/v2ray/config/233blog.com.key"
}
]
}
},
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls"
]
}
}

@ -0,0 +1,56 @@
{
"port": 2333, // v2ray port
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "e55c8d17-2cf3-b21a-bcf1-eeacb011ed79", // uuid
"level": 1,
"alterId": 233 // alterid
}
]
},
"streamSettings": {
"network": "tcp",
"tcpSettings": {
"header": {
"type": "http",
"response": {
"version": "1.1",
"status": "200",
"reason": "OK",
"headers": {
"Content-encoding": [
"gzip"
],
"Content-Type": [
"text/html; charset=utf-8"
],
"Cache-Control": [
"no-cache"
],
"Vary": [
"Accept-Encoding"
],
"X-Frame-Options": [
"deny"
],
"X-XSS-Protection": [
"1; mode=block"
],
"X-content-type-options": [
"nosniff"
]
}
}
}
}
},
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls"
]
}
}

@ -0,0 +1,28 @@
{
"port": 2333, // v2ray port
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "e55c8d17-2cf3-b21a-bcf1-eeacb011ed79", // uuid
"level": 1,
"alterId": 233 // alaterid
}
]
},
"streamSettings": {
"network": "kcp",
"kcpSettings": {
"header": {
"type": "none" // options > [none, srtp, utp, wechat-video, dtls, wireguard]
}
}
},
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls"
]
}
}

@ -0,0 +1,12 @@
{
"protocol": "mtproto",
"port": 6666, //port
"tag": "tg-in",
"settings": {
"users": [
{
"secret": "bb8a7fbd7190e345024845f07373ec48" // secret
}
]
}
}

@ -0,0 +1,34 @@
{
"port": 2333, // v2ray port
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "e55c8d17-2cf3-b21a-bcf1-eeacb011ed79", // uuid
"level": 1,
"alterId": 233 // alterid
}
]
},
"streamSettings": {
"network": "tcp"
},
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls"
]
}
}, // ignore this error
{
"protocol": "shadowsocks",
"port": 6666, // port
"settings": {
"method": "chacha20-ietf", // options > [aes-256-cfb, aes-128-cfb, chacha20, chacha20-ietf, aes-256-gcm, aes-128-gcm, chacha20-ietf-poly1305]
"password": "233blog.com", // password
"network": "tcp,udp",
"level": 1,
"ota": false
}
}

@ -0,0 +1,30 @@
{
"port": 2333, // v2ray port
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "e55c8d17-2cf3-b21a-bcf1-eeacb011ed79", // uuid
"level": 1,
"alterId": 233 // alaterid
}
]
},
"streamSettings": {
"network": "quic",
"security": "aes-128-gcm",
"key": "",
"quicSettings": {
"header": {
"type": "none" // options > [none, srtp, utp, wechat-video, dtls, wireguard]
}
}
},
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls"
]
}
}

@ -0,0 +1,10 @@
{
"type": "field",
"source": [
"127.0.0.0/8",
"1.1.1.1",
"1.1.1.2"
],
"outboundTag": "blocked" // don't change this tag
}
// https://v2ray.com/chapter_02/03_routing.html

@ -0,0 +1,10 @@
{
"type": "field",
"domain": [
"domain:baidu.com",
"2345.com",
"360.com"
],
"outboundTag": "blocked" // don't change this tag
}
// https://v2ray.com/chapter_02/03_routing.html

@ -0,0 +1,10 @@
{
"type": "field",
"ip": [
"127.0.0.0/8",
"1.1.1.1",
"1.1.1.2"
],
"outboundTag": "blocked" // don't change this tag
}
// https://v2ray.com/chapter_02/03_routing.html

@ -0,0 +1,15 @@
{
"type": "field",
"ip": [
"1.1.1.1",
"1.1.1.2",
"3.3.3.3"
],
"outboundTag": "direct" // don't change this tag
}, // ignore this error
{
"type": "field",
"network": "tcp,udp",
"outboundTag": "blocked" // don't change this tag
}
// https://v2ray.com/chapter_02/03_routing.html

@ -0,0 +1,15 @@
{
"type": "field",
"domain": [
"domain:google.com",
"domain:github.com",
"youtube.com"
],
"outboundTag": "direct" // don't change this tag
}, // ignore this error
{
"type": "field",
"network": "tcp,udp",
"outboundTag": "blocked" // don't change this tag
}
// https://v2ray.com/chapter_02/03_routing.html

@ -0,0 +1,16 @@
{
"protocol": "socks",
"port": 6666, // port
"settings": {
"auth": "password",
"accounts": [
{
"user": "v2ray66.com", // username
"pass": "233blog.com" // passowrd
}
],
"udp": true,
"timeout": 0,
"userLevel": 1
}
}

@ -0,0 +1,11 @@
{
"protocol": "shadowsocks",
"port": 6666, // port
"settings": {
"method": "chacha20-ietf", // options > [aes-256-cfb, aes-128-cfb, chacha20, chacha20-ietf, aes-256-gcm, aes-128-gcm, chacha20-ietf-poly1305]
"password": "233blog.com", // password
"network": "tcp,udp",
"level": 1,
"ota": false
}
}

@ -0,0 +1,23 @@
{
"port": 2333, // v2ray port
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "e55c8d17-2cf3-b21a-bcf1-eeacb011ed79", // uuid
"level": 1,
"alterId": 233 // alterid
}
]
},
"streamSettings": {
"network": "tcp"
},
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls"
]
}
}

@ -0,0 +1,23 @@
{
"port": 2333, // v2ray port
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "e55c8d17-2cf3-b21a-bcf1-eeacb011ed79", // uuid
"level": 1,
"alterId": 233 // alterid
}
]
},
"streamSettings": {
"network": "ws"
},
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls"
]
}
}

@ -0,0 +1,8 @@
#!/bin/bash
backup="/etc/v2ray/233blog_v2ray_backup.conf"
. $backup
if [[ $v2ray_transport -ge 13 ]]; then
tmp_transport=$(($v2ray_transport +6))
sed -i "18s/=$v2ray_transport/=$tmp_transport/" $backup
fi
v2ray update.sh

@ -40,10 +40,10 @@ cat >/etc/v2ray/233blog_v2ray_backup.conf <<-EOF
# ---- 说明 ---- # ---- 说明 ----
# 嗯……这个文件呢,是用来备份一些设置的 # 嗯……这个文件呢,是用来备份一些设置的
# 我懒...不想用 JQ 去解析 JSON.... #
# 那就把 V2Ray 配置文件的一些重要参数提取出来 #mark=v3
# 然后..在修改 V2Ray 配置的时候再重写一下就 OK 啦... #
# 嗯…笨笨的方法 #
# ---- V2Ray 传输协议 ----- # ---- V2Ray 传输协议 -----
v2ray_transport=$v2ray_transport v2ray_transport=$v2ray_transport
@ -85,20 +85,48 @@ ssciphers=$ssciphers
blocked_ad_status=$is_blocked_ad blocked_ad_status=$is_blocked_ad
#---- 网站伪装 ----- #---- 网站伪装 -----
ws_path_status=$is_ws_path path_status=$is_ws_path
#---- 伪装的路径 ----- #---- 伪装的路径 -----
ws_path=$ws_path path=$ws_path
#---- 伪装的网址 ----- #---- 伪装的网址 -----
proxy_site=$proxy_site proxy_site=$proxy_site
#---- Socks -----
socks=
#---- Socks 端口-----
socks_port=233
#---- Socks 用户名 -----
socks_username=233blog
#---- Socks 密码 -----
socks_userpass=233blog.com
#---- MTProto -----
mtproto=
#---- MTProto 端口-----
mtproto_port=233
#---- MTProto 用户密钥 -----
mtproto_secret=lalala
#---- 屏蔽 BT -----
ban_bt=true
EOF EOF
cp -f /etc/v2ray/233boy/v2ray/v2ray.sh /usr/local/bin/v2ray if [[ -f /usr/local/bin/v2ray ]]; then
chmod +x /usr/local/bin/v2ray cp -f /etc/v2ray/233boy/v2ray/v2ray.sh /usr/local/sbin/v2ray
chmod +x /usr/local/sbin/v2ray
rm -rf $backup rm -rf $backup
rm -rf /usr/local/bin/v2ray
fi
echo echo
echo -e " 哇哦.. 由于大佬你是从 1.xx 升级到 2.xx 管理脚本的.." echo -e " 哇哦...脚本差点就跪了..."
echo echo
echo -e " 请使用命令$yellow v2ray reload $none重新加载配置...以避免发生莫名其妙的问题" echo -e "\n $yellow 警告: 请重新登录 SSH 以避免出现 v2ray 命令未找到的情况。$none \n" && exit 1
echo echo
exit 1 exit 1

@ -1,6 +1,26 @@
#!/bin/bash #!/bin/bash
[[ $ws_path_status ]] && path_status=$ws_path_status case $v2ray_transport in
[[ $ws_path ]] && path=$ws_path [5-8])
_transport=$(($v2ray_transport + 1))
;;
9 | 1[0-5])
_transport=$(($v2ray_transport + 9))
;;
16)
_transport=5
;;
17)
_transport=1
;;
*)
_transport=$v2ray_transport
;;
esac
if [[ $v2ray_transport == 17 ]]; then
v2ray_id=$(cat /proc/sys/kernel/random/uuid)
fi
cat >$backup <<-EOF cat >$backup <<-EOF
# ----------------------------------- # -----------------------------------
# 警告...请不要修改或删除这个文件...谢谢 # 警告...请不要修改或删除这个文件...谢谢
@ -13,13 +33,13 @@ cat >$backup <<-EOF
# ---- 说明 ---- # ---- 说明 ----
# 嗯……这个文件呢,是用来备份一些设置的 # 嗯……这个文件呢,是用来备份一些设置的
# 我懒...不想用 JQ 去解析 JSON.... #
# 那就把 V2Ray 配置文件的一些重要参数提取出来 mark=v3
# 然后..在修改 V2Ray 配置的时候再重写一下就 OK 啦... #
# 嗯…笨笨的方法 #
# ---- V2Ray 传输协议 ----- # ---- V2Ray 传输协议 -----
v2ray_transport=$v2ray_transport v2ray_transport=$_transport
#---- V2Ray 端口 ----- #---- V2Ray 端口 -----
v2ray_port=$v2ray_port v2ray_port=$v2ray_port
@ -40,10 +60,10 @@ v2ray_dynamicPort_end=$v2ray_dynamicPort_end
domain=$domain domain=$domain
#---- caddy ----- #---- caddy -----
caddy_status=$caddy_status caddy=$caddy_status
#---- Shadowsocks ----- #---- Shadowsocks -----
shadowsocks_status=$shadowsocks_status shadowsocks=$shadowsocks_status
#---- Shadowsocks 端口 ----- #---- Shadowsocks 端口 -----
ssport=$ssport ssport=$ssport
@ -55,7 +75,7 @@ sspass=$sspass
ssciphers=$ssciphers ssciphers=$ssciphers
#---- 屏蔽广告 ----- #---- 屏蔽广告 -----
blocked_ad_status=$blocked_ad_status ban_ad=$blocked_ad_status
#---- 网站伪装 ----- #---- 网站伪装 -----
path_status=$path_status path_status=$path_status
@ -66,10 +86,29 @@ path=$path
#---- 伪装的网址 ----- #---- 伪装的网址 -----
proxy_site=$proxy_site proxy_site=$proxy_site
#---- Socks5 用户名 ----- #---- Socks -----
username=233blog socks=
#---- Socks 端口-----
socks_port=233
#---- Socks 用户名 -----
socks_username=233blog
#---- Socks 密码 -----
socks_userpass=233blog.com
#---- Socks5 密码 ----- #---- MTProto -----
userpass=233blog.com mtproto=
#---- MTProto 端口-----
mtproto_port=233
#---- MTProto 用户密钥 -----
mtproto_secret=lalala
#---- 屏蔽 BT -----
ban_bt=true
EOF EOF
. $backup . $backup

File diff suppressed because it is too large Load Diff

1508
v2ray.sh

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save