pull/95/head
233boy 6 years ago
parent 6d6a4a34d2
commit 4dd0bd7c9c
  1. 2
      .github/ISSUE_TEMPLATE.md
  2. 19
      config/233blog.com.cer
  3. 27
      config/233blog.com.key
  4. 44
      config/backup.conf
  5. 13235
      config/blocked_hosts/server/http.json
  6. 13307
      config/blocked_hosts/server/http_dynamic.json
  7. 13248
      config/blocked_hosts/server/http_ss.json
  8. 13318
      config/blocked_hosts/server/http_ss_dynamic.json
  9. 13228
      config/blocked_hosts/server/kcp.json
  10. 13255
      config/blocked_hosts/server/kcp_dynamic.json
  11. 13241
      config/blocked_hosts/server/kcp_ss.json
  12. 13266
      config/blocked_hosts/server/kcp_ss_dynamic.json
  13. 13235
      config/blocked_hosts/server/tcp_dynamic.json
  14. 13226
      config/blocked_hosts/server/tcp_ss.json
  15. 13246
      config/blocked_hosts/server/tcp_ss_dynamic.json
  16. 13216
      config/blocked_hosts/server/ws.json
  17. 13241
      config/blocked_hosts/server/ws_dynamic.json
  18. 13229
      config/blocked_hosts/server/ws_ss.json
  19. 13252
      config/blocked_hosts/server/ws_ss_dynamic.json
  20. 164
      config/client/h2.json
  21. 219
      config/client/http.json
  22. 171
      config/client/kcp.json
  23. 149
      config/client/tcp.json
  24. 155
      config/client/ws.json
  25. 167
      config/client/ws_tls.json
  26. 198
      config/server/dynamic/http.json
  27. 165
      config/server/dynamic/kcp.json
  28. 157
      config/server/dynamic/tcp.json
  29. 160
      config/server/dynamic/ws.json
  30. 153
      config/server/h2.json
  31. 261
      config/server/http.json
  32. 154
      config/server/http_dynamic.json
  33. 109
      config/server/http_ss.json
  34. 165
      config/server/http_ss_dynamic.json
  35. 992
      config/server/include/ad.json
  36. 7
      config/server/include/bt.json
  37. 12
      config/server/include/mtproto.json
  38. 16
      config/server/include/socks.json
  39. 11
      config/server/include/ss.json
  40. 210
      config/server/kcp.json
  41. 102
      config/server/kcp_dynamic.json
  42. 88
      config/server/kcp_ss.json
  43. 113
      config/server/kcp_ss_dynamic.json
  44. 194
      config/server/tcp.json
  45. 82
      config/server/tcp_dynamic.json
  46. 73
      config/server/tcp_ss.json
  47. 93
      config/server/tcp_ss_dynamic.json
  48. 195
      config/server/ws.json
  49. 88
      config/server/ws_dynamic.json
  50. 76
      config/server/ws_ss.json
  51. 99
      config/server/ws_ss_dynamic.json
  52. 1307
      install.sh
  53. 6
      src/ban_ad.sh
  54. 6
      src/ban_bt.sh
  55. 71
      src/bt.sh
  56. 67
      src/caddy-config.sh
  57. 26
      src/config.sh
  58. 6
      src/custom_config.sh
  59. 6
      src/custom_rules.sh
  60. 47
      src/download-caddy.sh
  61. 73
      src/download-v2ray.sh
  62. 17
      src/init.sh
  63. 10
      src/mtproto-config.sh
  64. 288
      src/mtproto.sh
  65. 10
      src/socks-config.sh
  66. 386
      src/socks.sh
  67. 10
      src/ss-config.sh
  68. 21
      src/ss-info.sh
  69. 168
      src/uninstall.sh
  70. 113
      src/v2ray-info.sh
  71. 1
      src/v2ray-transport-args.sh
  72. 103
      src/vmess-config.sh
  73. 38
      templates/h2.json
  74. 56
      templates/http.json
  75. 28
      templates/kcp.json
  76. 12
      templates/mtproto.json
  77. 34
      templates/multiple.json
  78. 10
      templates/rules/ban_client_ip.json
  79. 10
      templates/rules/ban_domain.json
  80. 10
      templates/rules/ban_ip.json
  81. 15
      templates/rules/only_allow_client_ip.json
  82. 15
      templates/rules/only_allow_domain.json
  83. 16
      templates/socks.json
  84. 11
      templates/ss.json
  85. 23
      templates/tcp.json
  86. 23
      templates/ws.json
  87. 75
      tools/reconfig.sh
  88. 132
      tools/v1xx_to_v3xx.sh
  89. 111
      tools/v3.sh
  90. 3699
      v2ray.old.sh
  91. 2069
      v2ray.sh

@ -1,3 +1,3 @@
提问之前,请先查阅:[V2Ray 一键安装脚本疑问集合](https://233blog.com/post/27/) 提问之前,请先查阅:[V2Ray 一键安装脚本疑问集合](https://v2ray66.com/post/10/)
若需要发起提问,请删除这些内容 若需要发起提问,请删除这些内容

@ -0,0 +1,19 @@
-----BEGIN CERTIFICATE-----
MIIDFzCCAf+gAwIBAgIQVeM+8iZUKrI+M9rkL41DjjANBgkqhkiG9w0BAQsFADAf
MQswCQYDVQQKEwJBSTEQMA4GA1UEAxMHMjMzQmxvZzAgFw0xODA1MDExMDIwMjFa
GA8yMjg0MDcwNzE2MjAyMVowHzELMAkGA1UEChMCQUkxEDAOBgNVBAMTBzIzM0Js
b2cwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDn4tPOuedCbB6kerwg
5PSU9tdmGvQc2jVh9xXDfBjSknKkjZoylJ1+IFLRhxl3RtYBgN1xFLhVVOnqpprA
KqTbDomsk59+iktmNzZW2b5HuIi3onZ9jxtcwos+rvILrJPgcjX/4qCki/4QWekR
aY6LOSuRGqEbIq9Yqqd4/PzLWh1q2pgv2qwwKZlkQTnTj8xs1rlEE7wd/2ibmaHR
FgcvRw04TEFUbRRevC7gcyesB8dpfZX1c2OUKtUHp0z0CHF2Tby5g52FAti4YJag
HSQmOssCz8JLOhZ9fVp2cuwrDZc2sOn/Jl22ZJHHwNU142HkcuBTye/aAnl0SM3f
/vGTAgMBAAGjTTBLMA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcD
ATAMBgNVHRMBAf8EAjAAMBYGA1UdEQQPMA2CCzIzM2Jsb2cuY29tMA0GCSqGSIb3
DQEBCwUAA4IBAQCmyLW3R2Je30zEbMObtjF2oNNj7ELH+bLgRXUIlCzjMcYB9m7d
K+2ntfK5iA6tNV2Q4timcSxls15wxPd59oI76ShXA/jSV08fRaq7drDQsOy/jGyn
pU1PiQKEDj7dJOLgPWlNZM3cAkretn+owWtY2JIjrVrU8OA9anGes3nT2egrXmHR
B+6YPvl+WtPkFIpf+dBJxtIvvJEg0of6HDQvsQfXDIgCQzUHcRt0jtRejK1WzSLf
CVjs6H4GFRCr74dC3ovGyQqOznOK0m3QRYUNonQG9s1EAMJ2XBflq5/tqbx9Ef/o
CwOT+fjKVhMnbvMN4yCkJeJyDIPdWvHOdawk
-----END CERTIFICATE-----

@ -0,0 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEA5+LTzrnnQmwepHq8IOT0lPbXZhr0HNo1YfcVw3wY0pJypI2a
MpSdfiBS0YcZd0bWAYDdcRS4VVTp6qaawCqk2w6JrJOffopLZjc2Vtm+R7iIt6J2
fY8bXMKLPq7yC6yT4HI1/+KgpIv+EFnpEWmOizkrkRqhGyKvWKqnePz8y1odatqY
L9qsMCmZZEE504/MbNa5RBO8Hf9om5mh0RYHL0cNOExBVG0UXrwu4HMnrAfHaX2V
9XNjlCrVB6dM9Ahxdk28uYOdhQLYuGCWoB0kJjrLAs/CSzoWfX1adnLsKw2XNrDp
/yZdtmSRx8DVNeNh5HLgU8nv2gJ5dEjN3/7xkwIDAQABAoIBAEqvb/DBR47JLAVl
0nn1xCDGcBHe1IkGbvMilcvkiEoqCOqfAO8RlrgsyP/bN4SHOB471xa4ybYSJ1UA
XA9QrNAxGn6O/WvQNwCw/7txXivTb5VVqjw+f12c+yQxTJwd9XLw1huYbo0Q2b+C
deK50MNeon2VyhXnUfqI3G/Ha9RCkP1kLXUJY5cU/BCHtY/tBxcgxeAqHp39h92Z
6yqJcZ7zcu+UUrQPbn3Oo8+rohKLz1crIfe3EEH72OO9LkaAA8nXeA06bKqaoZjP
o+KF6Mb7E67JBlalpadWIYUEj7lGmUU22kP57T6YNF/2E1PyPNHCyO5PoUzGgTFV
G+cCCuECgYEA7RHo8cdsZZdIPYc1sBu9qfhxNezdElzT4qfjJ1sibD7rtO6ZVS/9
eqRj8H0KSQzERQ9G8OuiBvcmzjo2VNiSCT/9wRIH7TrvAxcnCFdOI5k+W5XAYxoz
BoxdfB3KziTLlcOSLFU8ID5BjbkwBiIbZ+RZ4MhPGOHcQokvspWiUiUCgYEA+mbz
KvpF5+Uu8Mc3nEEUXa+6l3ZC85bRH0MCS0CtdFF3N3Tuteaa8IzTiumy4OAy8Y4j
57VYX0TRosZhwqaFFB4dHnpJvxK7u8eI3Xqb7VQ6c0jQDK0GhmWz0i4WCZQUeFsa
3b6goclgo5y5z31G08XKYB6o4foLK1NrnHpEu1cCgYB7h1qPKW/VG9gbn2mdQ0c3
2un6xFqJZ+9MaljVuAoex0aAt9cT6Xa2QhSFSlJisBFRPt2jSdTatkv1J6YJ3fNy
eHKb+O5CcfP680R2dy+TIxW4GTbvLMarwdYwh0GW2ttuRULUcPFsh6QW2gkpGPqY
zwb6NsXoXEAuN1ewQYIcNQKBgQCrtpmeqU3y/lk4SIU8I+zhajac0z6KaKwzsfIK
xOmt0IfegdOI7gDmYMxYgHZoe5azy3OX2+YkPr87zqsPnr231AbH9bhIzYHr/aM/
rmrrT01d7VqutqC43Vl5Ep2OJ/v5pRBBbA4fpEcfK8TIIvLFGufzDlNl0+CA743m
GnqztQKBgGxqQTInnvP8AHF7eu5L7gMs3gSrZbaSB4e6Hb9qaMdru9sOiHTmtKFc
P5z1pGgKWAN7VYF2ZLzJ+NYxJn63R9mkH0PuPzh8j+0Wdkpe2msVCIuZ/wm3Iv7f
VkFaQ64OitX/HpifTmh+dUaOWJ7GjW1PyDWjdPxViPdB+DQcDXFV
-----END RSA PRIVATE KEY-----

@ -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,13 +51,37 @@ sspass=233blog.com
ssciphers=chacha20-ietf ssciphers=chacha20-ietf
#---- 屏蔽广告 ----- #---- 屏蔽广告 -----
blocked_ad_status= ban_ad=
#---- 网站伪装 ----- #---- 网站伪装 -----
ws_path_status= path_status=
#---- 伪装的路径 ----- #---- 伪装的路径 -----
ws_path=233blog path=233blog
#---- 伪装的网址 ----- #---- 伪装的网址 -----
proxy_site=https://liyafly.com proxy_site=https://liyafly.com
#---- 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

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,49 +3,55 @@
"error": "error.log", "error": "error.log",
"loglevel": "warning" "loglevel": "warning"
}, },
"inbound": { "outbounds": [
"port": 2333, {
"listen": "127.0.0.1", "protocol": "vmess",
"protocol": "socks", "settings": {
"settings": { "vnext": [
"auth": "noauth", {
"udp": true, "address": "233blog.com",
"ip": "127.0.0.1" "port": 2333,
} "users": [
}, {
"outbound": { "id": "e55c8d17-2cf3-b21a-bcf1-eeacb011ed79",
"protocol": "vmess", "alterId": 233,
"settings": { "security": "auto"
"vnext": [ }
{ ]
"address": "233blog.com", }
"port": 2333, ]
"users": [ },
{ "streamSettings": {
"id": "23332333-2333-2333-2333-233boy233boy", "network": "h2",
"alterId": 233, "security": "tls",
"security": "auto" "httpSettings": {
} "host": [
] "233blog.com"
],
"path": "/233blog"
} }
]
},
"streamSettings": {
"network": "h2",
"security": "tls",
"tlsSettings": {
"serverName": "233blog.com",
"allowInsecure": false
}, },
"httpSettings": { "mux": {
"path": "/233blog" "enabled": true
} }
}, },
"mux": { {
"enabled": true "protocol": "freedom",
"settings": {},
"tag": "direct"
} }
}, ],
"inboundDetour": [ "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",
@ -57,13 +63,6 @@
} }
} }
], ],
"outboundDetour": [
{
"protocol": "freedom",
"settings": {},
"tag": "direct"
}
],
"dns": { "dns": {
"servers": [ "servers": [
"8.8.8.8", "8.8.8.8",
@ -72,44 +71,41 @@
] ]
}, },
"routing": { "routing": {
"strategy": "rules", "domainStrategy": "IPOnDemand",
"settings": { "rules": [
"domainStrategy": "IPIfNonMatch", {
"rules": [ "type": "field",
{ "ip": [
"type": "field", "0.0.0.0/8",
"ip": [ "10.0.0.0/8",
"0.0.0.0/8", "100.64.0.0/10",
"10.0.0.0/8", "127.0.0.0/8",
"100.64.0.0/10", "169.254.0.0/16",
"127.0.0.0/8", "172.16.0.0/12",
"169.254.0.0/16", "192.0.0.0/24",
"172.16.0.0/12", "192.0.2.0/24",
"192.0.0.0/24", "192.168.0.0/16",
"192.0.2.0/24", "198.18.0.0/15",
"192.168.0.0/16", "198.51.100.0/24",
"198.18.0.0/15", "203.0.113.0/24",
"198.51.100.0/24", "::1/128",
"203.0.113.0/24", "fc00::/7",
"::1/128", "fe80::/10",
"fc00::/7", "geoip:cn"
"fe80::/10", ],
"geoip:cn" "domain": [
], "geosite:cn"
"domain": [ ],
"geosite:cn" "outboundTag": "direct"
], },
"outboundTag": "direct" {
}, "type": "chinasites",
{ "outboundTag": "direct"
"type": "chinasites", },
"outboundTag": "direct" {
}, "type": "chinaip",
{ "outboundTag": "direct"
"type": "chinaip", }
"outboundTag": "direct" ]
}
]
}
} }
} }

@ -3,78 +3,85 @@
"error": "error.log", "error": "error.log",
"loglevel": "warning" "loglevel": "warning"
}, },
"inbound": { "outbounds": [
"port": 2333, {
"listen": "127.0.0.1", "protocol": "vmess",
"protocol": "socks", "settings": {
"settings": { "vnext": [
"auth": "noauth", {
"udp": true, "address": "233blog.com",
"ip": "127.0.0.1" "port": 2333,
} "users": [
}, {
"outbound": { "id": "e55c8d17-2cf3-b21a-bcf1-eeacb011ed79",
"protocol": "vmess", "alterId": 233,
"settings": { "security": "auto"
"vnext": [ }
{ ]
"address": "233blog.com", }
"port": 2333, ]
"users": [ },
{ "streamSettings": {
"id": "23332333-2333-2333-2333-233boy233boy", "network": "tcp",
"alterId": 233, "tcpSettings": {
"security": "auto" "header": {
} "type": "http",
] "request": {
} "version": "1.1",
] "method": "GET",
}, "path": [
"streamSettings": { "/"
"network": "tcp",
"tcpSettings": {
"header": {
"type": "http",
"request": {
"version": "1.1",
"method": "GET",
"path": [
"/"
],
"headers": {
"Host": [
"www.cloudflare.com",
"www.amazon.com"
],
"User-Agent": [
"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36",
"Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.75 Safari/537.36",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0"
],
"Accept": [
"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8"
],
"Accept-language": [
"zh-CN,zh;q=0.8,en-US;q=0.6,en;q=0.4"
],
"Accept-Encoding": [
"gzip, deflate, br"
],
"Cache-Control": [
"no-cache"
], ],
"Pragma": "no-cache" "headers": {
"Host": [
"www.cloudflare.com",
"www.amazon.com"
],
"User-Agent": [
"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36",
"Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.75 Safari/537.36",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0"
],
"Accept": [
"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8"
],
"Accept-language": [
"zh-CN,zh;q=0.8,en-US;q=0.6,en;q=0.4"
],
"Accept-Encoding": [
"gzip, deflate, br"
],
"Cache-Control": [
"no-cache"
],
"Pragma": "no-cache"
}
} }
} }
} }
},
"mux": {
"enabled": true
} }
}, },
"mux": { {
"enabled": true "protocol": "freedom",
"settings": {},
"tag": "direct"
} }
}, ],
"inboundDetour": [ "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,44 +101,41 @@
] ]
}, },
"routing": { "routing": {
"strategy": "rules", "domainStrategy": "IPOnDemand",
"settings": { "rules": [
"domainStrategy": "IPIfNonMatch", {
"rules": [ "type": "field",
{ "ip": [
"type": "field", "0.0.0.0/8",
"ip": [ "10.0.0.0/8",
"0.0.0.0/8", "100.64.0.0/10",
"10.0.0.0/8", "127.0.0.0/8",
"100.64.0.0/10", "169.254.0.0/16",
"127.0.0.0/8", "172.16.0.0/12",
"169.254.0.0/16", "192.0.0.0/24",
"172.16.0.0/12", "192.0.2.0/24",
"192.0.0.0/24", "192.168.0.0/16",
"192.0.2.0/24", "198.18.0.0/15",
"192.168.0.0/16", "198.51.100.0/24",
"198.18.0.0/15", "203.0.113.0/24",
"198.51.100.0/24", "::1/128",
"203.0.113.0/24", "fc00::/7",
"::1/128", "fe80::/10",
"fc00::/7", "geoip:cn"
"fe80::/10", ],
"geoip:cn" "domain": [
], "geosite:cn"
"domain": [ ],
"geosite:cn" "outboundTag": "direct"
], },
"outboundTag": "direct" {
}, "type": "chinasites",
{ "outboundTag": "direct"
"type": "chinasites", },
"outboundTag": "direct" {
}, "type": "chinaip",
{ "outboundTag": "direct"
"type": "chinaip", }
"outboundTag": "direct" ]
}
]
}
} }
} }

@ -3,53 +3,56 @@
"error": "error.log", "error": "error.log",
"loglevel": "warning" "loglevel": "warning"
}, },
"inbound": { "outbounds": [
"port": 2333, {
"listen": "127.0.0.1", "protocol": "vmess",
"protocol": "socks", "settings": {
"settings": { "vnext": [
"auth": "noauth", {
"udp": true, "address": "233blog.com",
"ip": "127.0.0.1" "port": 2333,
} "users": [
}, {
"outbound": { "id": "e55c8d17-2cf3-b21a-bcf1-eeacb011ed79",
"protocol": "vmess", "alterId": 233,
"settings": { "security": "auto"
"vnext": [ }
{ ]
"address": "233blog.com", }
"port": 2333, ]
"users": [ },
{ "streamSettings": {
"id": "23332333-2333-2333-2333-233boy233boy", "network": "kcp",
"alterId": 233, "kcpSettings": {
"security": "auto" "uplinkCapacity": 100,
} "downlinkCapacity": 100,
] "congestion": true,
} "header": {
] "type": "none"
}, }
"streamSettings": {
"network": "kcp",
"kcpSettings": {
"mtu": 1350,
"tti": 50,
"uplinkCapacity": 100,
"downlinkCapacity": 100,
"congestion": false,
"readBufferSize": 2,
"writeBufferSize": 2,
"header": {
"type": "none"
} }
},
"mux": {
"enabled": true
} }
}, },
"mux": { {
"enabled": true "protocol": "freedom",
"settings": {},
"tag": "direct"
} }
}, ],
"inboundDetour": [ "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,44 +72,41 @@
] ]
}, },
"routing": { "routing": {
"strategy": "rules", "domainStrategy": "IPOnDemand",
"settings": { "rules": [
"domainStrategy": "IPIfNonMatch", {
"rules": [ "type": "field",
{ "ip": [
"type": "field", "0.0.0.0/8",
"ip": [ "10.0.0.0/8",
"0.0.0.0/8", "100.64.0.0/10",
"10.0.0.0/8", "127.0.0.0/8",
"100.64.0.0/10", "169.254.0.0/16",
"127.0.0.0/8", "172.16.0.0/12",
"169.254.0.0/16", "192.0.0.0/24",
"172.16.0.0/12", "192.0.2.0/24",
"192.0.0.0/24", "192.168.0.0/16",
"192.0.2.0/24", "198.18.0.0/15",
"192.168.0.0/16", "198.51.100.0/24",
"198.18.0.0/15", "203.0.113.0/24",
"198.51.100.0/24", "::1/128",
"203.0.113.0/24", "fc00::/7",
"::1/128", "fe80::/10",
"fc00::/7", "geoip:cn"
"fe80::/10", ],
"geoip:cn" "domain": [
], "geosite:cn"
"domain": [ ],
"geosite:cn" "outboundTag": "direct"
], },
"outboundTag": "direct" {
}, "type": "chinasites",
{ "outboundTag": "direct"
"type": "chinasites", },
"outboundTag": "direct" {
}, "type": "chinaip",
{ "outboundTag": "direct"
"type": "chinaip", }
"outboundTag": "direct" ]
}
]
}
} }
} }

@ -3,38 +3,45 @@
"error": "error.log", "error": "error.log",
"loglevel": "warning" "loglevel": "warning"
}, },
"inbound": { "outbounds": [
"port": 2333, {
"listen": "127.0.0.1", "protocol": "vmess",
"protocol": "socks", "settings": {
"settings": { "vnext": [
"auth": "noauth", {
"udp": true, "address": "233blog.com",
"ip": "127.0.0.1" "port": 2333,
} "users": [
}, {
"outbound": { "id": "e55c8d17-2cf3-b21a-bcf1-eeacb011ed79",
"protocol": "vmess", "alterId": 233,
"settings": { "security": "auto"
"vnext": [ }
{ ]
"address": "233blog.com", }
"port": 2333, ]
"users": [ },
{ "mux": {
"id": "23332333-2333-2333-2333-233boy233boy", "enabled": true
"alterId": 233, }
"security": "auto"
}
]
}
]
}, },
"mux": { {
"enabled": true "protocol": "freedom",
"settings": {},
"tag": "direct"
} }
}, ],
"inboundDetour": [ "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,44 +61,41 @@
] ]
}, },
"routing": { "routing": {
"strategy": "rules", "domainStrategy": "IPOnDemand",
"settings": { "rules": [
"domainStrategy": "IPIfNonMatch", {
"rules": [ "type": "field",
{ "ip": [
"type": "field", "0.0.0.0/8",
"ip": [ "10.0.0.0/8",
"0.0.0.0/8", "100.64.0.0/10",
"10.0.0.0/8", "127.0.0.0/8",
"100.64.0.0/10", "169.254.0.0/16",
"127.0.0.0/8", "172.16.0.0/12",
"169.254.0.0/16", "192.0.0.0/24",
"172.16.0.0/12", "192.0.2.0/24",
"192.0.0.0/24", "192.168.0.0/16",
"192.0.2.0/24", "198.18.0.0/15",
"192.168.0.0/16", "198.51.100.0/24",
"198.18.0.0/15", "203.0.113.0/24",
"198.51.100.0/24", "::1/128",
"203.0.113.0/24", "fc00::/7",
"::1/128", "fe80::/10",
"fc00::/7", "geoip:cn"
"fe80::/10", ],
"geoip:cn" "domain": [
], "geosite:cn"
"domain": [ ],
"geosite:cn" "outboundTag": "direct"
], },
"outboundTag": "direct" {
}, "type": "chinasites",
{ "outboundTag": "direct"
"type": "chinasites", },
"outboundTag": "direct" {
}, "type": "chinaip",
{ "outboundTag": "direct"
"type": "chinaip", }
"outboundTag": "direct" ]
}
]
}
} }
} }

@ -3,41 +3,48 @@
"error": "error.log", "error": "error.log",
"loglevel": "warning" "loglevel": "warning"
}, },
"inbound": { "outbounds": [
"port": 2333, {
"listen": "127.0.0.1", "protocol": "vmess",
"protocol": "socks", "settings": {
"settings": { "vnext": [
"auth": "noauth", {
"udp": true, "address": "233blog.com",
"ip": "127.0.0.1" "port": 2333,
} "users": [
}, {
"outbound": { "id": "e55c8d17-2cf3-b21a-bcf1-eeacb011ed79",
"protocol": "vmess", "alterId": 233,
"settings": { "security": "auto"
"vnext": [ }
{ ]
"address": "233blog.com", }
"port": 2333, ]
"users": [ },
{ "streamSettings": {
"id": "23332333-2333-2333-2333-233boy233boy", "network": "ws"
"alterId": 233, },
"security": "auto" "mux": {
} "enabled": true
] }
}
]
},
"streamSettings": {
"network": "ws"
}, },
"mux": { {
"enabled": true "protocol": "freedom",
"settings": {},
"tag": "direct"
} }
}, ],
"inboundDetour": [ "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,44 +64,41 @@
] ]
}, },
"routing": { "routing": {
"strategy": "rules", "domainStrategy": "IPOnDemand",
"settings": { "rules": [
"domainStrategy": "IPIfNonMatch", {
"rules": [ "type": "field",
{ "ip": [
"type": "field", "0.0.0.0/8",
"ip": [ "10.0.0.0/8",
"0.0.0.0/8", "100.64.0.0/10",
"10.0.0.0/8", "127.0.0.0/8",
"100.64.0.0/10", "169.254.0.0/16",
"127.0.0.0/8", "172.16.0.0/12",
"169.254.0.0/16", "192.0.0.0/24",
"172.16.0.0/12", "192.0.2.0/24",
"192.0.0.0/24", "192.168.0.0/16",
"192.0.2.0/24", "198.18.0.0/15",
"192.168.0.0/16", "198.51.100.0/24",
"198.18.0.0/15", "203.0.113.0/24",
"198.51.100.0/24", "::1/128",
"203.0.113.0/24", "fc00::/7",
"::1/128", "fe80::/10",
"fc00::/7", "geoip:cn"
"fe80::/10", ],
"geoip:cn" "domain": [
], "geosite:cn"
"domain": [ ],
"geosite:cn" "outboundTag": "direct"
], },
"outboundTag": "direct" {
}, "type": "chinasites",
{ "outboundTag": "direct"
"type": "chinasites", },
"outboundTag": "direct" {
}, "type": "chinaip",
{ "outboundTag": "direct"
"type": "chinaip", }
"outboundTag": "direct" ]
}
]
}
} }
} }

@ -3,49 +3,58 @@
"error": "error.log", "error": "error.log",
"loglevel": "warning" "loglevel": "warning"
}, },
"inbound": { "outbounds": [
"port": 2333, {
"listen": "127.0.0.1", "protocol": "vmess",
"protocol": "socks", "settings": {
"settings": { "vnext": [
"auth": "noauth", {
"udp": true, "address": "233blog.com",
"ip": "127.0.0.1" "port": 2333,
} "users": [
}, {
"outbound": { "id": "e55c8d17-2cf3-b21a-bcf1-eeacb011ed79",
"protocol": "vmess", "alterId": 233,
"settings": { "security": "auto"
"vnext": [ }
{ ]
"address": "233blog.com", }
"port": 2333, ]
"users": [ },
{ "streamSettings": {
"id": "23332333-2333-2333-2333-233boy233boy", "network": "ws",
"alterId": 233, "security": "tls",
"security": "auto" "tlsSettings": {
} "serverName": "233blog.com"
] },
"wsSettings": {
"path": "/233blog",
"headers": {
"Host": "233blog.com"
}
} }
]
},
"streamSettings": {
"network": "ws",
"security": "tls",
"tlsSettings": {
"serverName": "233blog.com",
"allowInsecure": false
}, },
"wsSettings": { "mux": {
"path": "/233blog" "enabled": true
} }
}, },
"mux": { {
"enabled": true "protocol": "freedom",
"settings": {},
"tag": "direct"
} }
}, ],
"inboundDetour": [ "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",
@ -57,13 +66,6 @@
} }
} }
], ],
"outboundDetour": [
{
"protocol": "freedom",
"settings": {},
"tag": "direct"
}
],
"dns": { "dns": {
"servers": [ "servers": [
"8.8.8.8", "8.8.8.8",
@ -72,44 +74,41 @@
] ]
}, },
"routing": { "routing": {
"strategy": "rules", "domainStrategy": "IPOnDemand",
"settings": { "rules": [
"domainStrategy": "IPIfNonMatch", {
"rules": [ "type": "field",
{ "ip": [
"type": "field", "0.0.0.0/8",
"ip": [ "10.0.0.0/8",
"0.0.0.0/8", "100.64.0.0/10",
"10.0.0.0/8", "127.0.0.0/8",
"100.64.0.0/10", "169.254.0.0/16",
"127.0.0.0/8", "172.16.0.0/12",
"169.254.0.0/16", "192.0.0.0/24",
"172.16.0.0/12", "192.0.2.0/24",
"192.0.0.0/24", "192.168.0.0/16",
"192.0.2.0/24", "198.18.0.0/15",
"192.168.0.0/16", "198.51.100.0/24",
"198.18.0.0/15", "203.0.113.0/24",
"198.51.100.0/24", "::1/128",
"203.0.113.0/24", "fc00::/7",
"::1/128", "fe80::/10",
"fc00::/7", "geoip:cn"
"fe80::/10", ],
"geoip:cn" "domain": [
], "geosite:cn"
"domain": [ ],
"geosite:cn" "outboundTag": "direct"
], },
"outboundTag": "direct" {
}, "type": "chinasites",
{ "outboundTag": "direct"
"type": "chinasites", },
"outboundTag": "direct" {
}, "type": "chinaip",
{ "outboundTag": "direct"
"type": "chinaip", }
"outboundTag": "direct" ]
}
]
}
} }
} }

@ -0,0 +1,198 @@
{
"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": "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,165 @@
{
"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": "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,157 @@
{
"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": "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,160 @@
{
"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": "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,153 @@
{
"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": "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"
}
]
}
},
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls"
]
}
}
//include_ss
//include_socks
//include_mtproto
//include_config
//
],
"outbounds": [
{
"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,96 +1,171 @@
{ {
"log": { "log": {
"access": "/var/log/v2ray/access.log", "access": "/var/log/v2ray/access.log",
"error": "/var/log/v2ray/error.log", "error": "/var/log/v2ray/error.log",
"loglevel": "warning" "loglevel": "warning"
}, },
"inbound": { "inbounds": [
"port": 2333, {
"protocol": "vmess", "port": 2333,
"settings": { "protocol": "vmess",
"udp": true, "settings": {
"clients": [ "clients": [
{ {
"id": "23332333-2333-2333-2333-233boy233boy", "id": "e55c8d17-2cf3-b21a-bcf1-eeacb011ed79",
"level": 1, "level": 1,
"alterId": 233 "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"
]
}
}
}
}
},
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls"
]
}
}
//include_ss
//include_socks
//include_mtproto
//include_config
//
],
"outbounds": [
{
"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
}, },
"streamSettings": { "sockopt": {
"network": "tcp", "tcpFastOpen": true
"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": {}
},
"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,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
}
}

@ -1,75 +1,143 @@
{ {
"log": { "log": {
"access": "/var/log/v2ray/access.log", "access": "/var/log/v2ray/access.log",
"error": "/var/log/v2ray/error.log", "error": "/var/log/v2ray/error.log",
"loglevel": "warning" "loglevel": "warning"
}, },
"inbound": { "inbounds": [
"port": 2333, {
"protocol": "vmess", "port": 2333,
"settings": { "protocol": "vmess",
"udp": true, "settings": {
"clients": [ "clients": [
{ {
"id": "23332333-2333-2333-2333-233boy233boy", "id": "e55c8d17-2cf3-b21a-bcf1-eeacb011ed79",
"level": 1, "level": 1,
"alterId": 233 "alterId": 233
} }
] ]
},
"streamSettings": {
"network": "kcp",
"kcpSettings": {
"header": {
"type": "none"
}
}
},
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls"
]
}
}
//include_ss
//include_socks
//include_mtproto
//include_config
//
],
"outbounds": [
{
"protocol": "blackhole",
"settings": {},
"tag": "blocked"
}, },
"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": {}
},
"outboundDetour": [
{ {
"protocol": "blackhole", "protocol": "freedom",
"settings": {}, "settings": {},
"tag": "blocked" "tag": "direct"
} },
], {
"routing": { "protocol": "mtproto",
"strategy": "rules", "settings": {},
"settings": { "tag": "tg-out"
"rules": [ }
{ ],
"type": "field", "dns": {
"ip": [ "server": [
"0.0.0.0/8", "8.8.8.8",
"10.0.0.0/8", "8.8.4.4",
"100.64.0.0/10", "1.1.1.1",
"127.0.0.0/8", "1.0.0.1",
"169.254.0.0/16", "localhost"
"172.16.0.0/12", ]
"192.0.0.0/24", },
"192.0.2.0/24", "routing": {
"192.168.0.0/16", "domainStrategy": "IPOnDemand",
"198.18.0.0/15", "rules": [
"198.51.100.0/24", {
"203.0.113.0/24", "type": "field",
"::1/128", "ip": [
"fc00::/7", "0.0.0.0/8",
"fe80::/10" "10.0.0.0/8",
], "100.64.0.0/10",
"outboundTag": "blocked" "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,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"
}
]
}
}
}

@ -1,60 +1,138 @@
{ {
"log": { "log": {
"access": "/var/log/v2ray/access.log", "access": "/var/log/v2ray/access.log",
"error": "/var/log/v2ray/error.log", "error": "/var/log/v2ray/error.log",
"loglevel": "warning" "loglevel": "warning"
}, },
"inbound": { "inbounds": [
"port": 2333, {
"protocol": "vmess", "port": 2333,
"settings": { "protocol": "vmess",
"udp": true, "settings": {
"clients": [ "clients": [
{ {
"id": "23332333-2333-2333-2333-233boy233boy", "id": "e55c8d17-2cf3-b21a-bcf1-eeacb011ed79",
"level": 1, "level": 1,
"alterId": 233 "alterId": 233
} }
] ]
} },
}, "streamSettings": {
"outbound": { "network": "tcp"
"protocol": "freedom", },
"settings": {} "sniffing": {
}, "enabled": true,
"outboundDetour": [ "destOverride": [
{ "http",
"protocol": "blackhole", "tls"
"settings": {}, ]
"tag": "blocked" }
} }
], //include_ss
"routing": { //include_socks
"strategy": "rules", //include_mtproto
"settings": { //include_config
"rules": [ //
{ ],
"type": "field", "outbounds": [
"ip": [ {
"0.0.0.0/8", "protocol": "blackhole",
"10.0.0.0/8", "settings": {},
"100.64.0.0/10", "tag": "blocked"
"127.0.0.0/8", },
"169.254.0.0/16", {
"172.16.0.0/12", "protocol": "freedom",
"192.0.0.0/24", "settings": {},
"192.0.2.0/24", "tag": "direct"
"192.168.0.0/16", },
"198.18.0.0/15", {
"198.51.100.0/24", "protocol": "mtproto",
"203.0.113.0/24", "settings": {},
"::1/128", "tag": "tg-out"
"fc00::/7", }
"fe80::/10" ],
], "dns": {
"outboundTag": "blocked" "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,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"
}
]
}
}
}

@ -1,63 +1,138 @@
{ {
"log": { "log": {
"access": "/var/log/v2ray/access.log", "access": "/var/log/v2ray/access.log",
"error": "/var/log/v2ray/error.log", "error": "/var/log/v2ray/error.log",
"loglevel": "warning" "loglevel": "warning"
}, },
"inbound": { "inbounds": [
"port": 2333, {
"protocol": "vmess", "port": 2333,
"settings": { "protocol": "vmess",
"udp": true, "settings": {
"clients": [ "clients": [
{ {
"id": "23332333-2333-2333-2333-233boy233boy", "id": "e55c8d17-2cf3-b21a-bcf1-eeacb011ed79",
"level": 1, "level": 1,
"alterId": 233 "alterId": 233
} }
] ]
},
"streamSettings": {
"network": "ws"
},
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls"
]
}
}
//include_ss
//include_socks
//include_mtproto
//include_config
//
],
"outbounds": [
{
"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
}, },
"streamSettings": { "sockopt": {
"network": "ws" "tcpFastOpen": true
} }
}, }
"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,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 {
without /${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 {
without /${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,26 @@
# 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() {
local caddy_tmp="/tmp/install_caddy/"
local caddy_tmp_file="/tmp/install_caddy/caddy.tar.gz"
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
rm -rf $caddy_tmp
}
_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-failure/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)#v2ray66.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,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 12 ]]; 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 12 ]]; 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,113 @@
[[ -z $ip ]] && get_ip
_v2_args() {
header="none"
if [[ $is_path ]]; then
_path="/$path"
else
_path="/"
fi
case $v2ray_transport in
1 | 12)
net="tcp"
;;
2 | 13)
net="tcp"
header="http"
host="www.baidu.com"
;;
3 | 4 | 14)
net="ws"
;;
5)
net="h2"
;;
6 | 15)
net="kcp"
;;
7 | 16)
net="kcp"
header="utp"
;;
8 | 17)
net="kcp"
header="srtp"
;;
9 | 18)
net="kcp"
header="wechat-video"
;;
10 | 19)
net="kcp"
header="dtls"
;;
11 | 20)
net="kcp"
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://v2ray66.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 12 ]] && [[ $ban_ad ]]; then
echo " 备注: 动态端口已启用...广告拦截已开启..."
echo
elif [[ $v2ray_transport -ge 12 ]]; then
echo " 备注: 动态端口已启用..."
echo
elif [[ $ban_ad ]]; then
echo " 备注: 广告拦截已开启.."
echo
fi
echo "---------- END -------------"
echo
echo "V2Ray 客户端使用教程: https://v2ray66.com/post/4/"
echo
echo -e "提示: 输入$cyan v2ray url $none可生成 vmess URL 链接 / 输入$cyan v2ray qr $none可生成二维码链接"
echo
}

@ -0,0 +1,103 @@
# 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"
;;
12)
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"
;;
13)
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"
;;
14)
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"
;;
*)
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"
;;
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 12 ]]; 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 mkcp headers
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 | 16)
sed -i "s/none/utp/" $v2ray_server_config
sed -i "s/none/utp/" $v2ray_client_config
;;
8 | 17)
sed -i "s/none/srtp/" $v2ray_server_config
sed -i "s/none/srtp/" $v2ray_client_config
;;
9 | 18)
sed -i "s/none/wechat-video/" $v2ray_server_config
sed -i "s/none/wechat-video/" $v2ray_client_config
;;
10 | 19)
sed -i "s/none/dtls/" $v2ray_server_config
sed -i "s/none/dtls/" $v2ray_client_config
;;
11 | 20)
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,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,75 @@
#!/bin/bash
uuid=$(cat /proc/sys/kernel/random/uuid)
cat >/etc/v2ray/233blog_v2ray_backup.conf.tmp <<-EOF
# -----------------------------------
# 警告...请不要修改或删除这个文件...谢谢
# 警告...请不要修改或删除这个文件...谢谢
# 警告...请不要修改或删除这个文件...谢谢
# -----------------------------------
# ---- 再次提醒 ----
# 大胸弟...如果你看到了这个...记得不要修改或更改这个文件
# ---- 说明 ----
# 嗯……这个文件呢,是用来备份一些设置的
# 我懒...不想用 JQ 去解析 JSON....
# 那就把 V2Ray 配置文件的一些重要参数提取出来
# 然后..在修改 V2Ray 配置的时候再重写一下就 OK 啦...
# 嗯…笨笨的方法
# ---- V2Ray 传输协议 -----
v2ray_transport=$v2ray_transport
#---- V2Ray 端口 -----
v2ray_port=$v2ray_port
#---- UUID -----
v2ray_id=$uuid
#---- alterId -----
alterId=233
#---- V2Ray 动态端口开始 -----
v2ray_dynamicPort_start=$v2ray_dynamicPort_start
#---- V2Ray 动态端口结束 -----
v2ray_dynamicPort_end=$v2ray_dynamicPort_end
#---- 域名 -----
domain=$domain
#---- caddy -----
caddy_status=$caddy_installed
#---- Shadowsocks -----
shadowsocks_status=$shadowsocks
#---- Shadowsocks 端口 -----
ssport=$ssport
#---- Shadowsocks 密码 -----
sspass=$sspass
#---- Shadowsocks 加密协议 -----
ssciphers=$ssciphers
#---- 屏蔽广告 -----
blocked_ad_status=$is_blocked_ad
#---- 网站伪装 -----
ws_path_status=$is_ws_path
#---- 伪装的路径 -----
ws_path=$ws_path
#---- 伪装的网址 -----
proxy_site=$proxy_site
EOF
rm -rf $backup
mv -f /etc/v2ray/233blog_v2ray_backup.conf.tmp /etc/v2ray/233blog_v2ray_backup.conf
echo
echo -e " .... 哇哦.. .."
echo
echo -e " 请使用命令$yellow v2ray reload $none重新加载配置...以避免发生莫名其妙的问题"
echo
exit 1

@ -0,0 +1,132 @@
#!/bin/bash
backup="/etc/v2ray/233blog_v2ray_backup.txt"
v2ray_transport=$(sed -n '17p' $backup)
v2ray_port=$(sed -n '19p' $backup)
v2ray_id=$(sed -n '21p' $backup)
v2ray_dynamicPort_start=$(sed -n '23p' $backup)
v2ray_dynamicPort_end=$(sed -n '25p' $backup)
domain=$(sed -n '27p' $backup)
caddy_status=$(sed -n '29p' $backup)
shadowsocks_status=$(sed -n '31p' $backup)
ssport=$(sed -n '33p' $backup)
sspass=$(sed -n '35p' $backup)
ssciphers=$(sed -n '37p' $backup)
blocked_ad_status=$(sed -n '39p' $backup)
ws_path_status=$(sed -n '41p' $backup)
ws_path=$(sed -n '43p' $backup)
proxy_site=$(sed '$!d' $backup)
if [[ $caddy_status == "true" ]]; then
caddy_installed=true
fi
if [[ $shadowsocks_status == "true" ]]; then
shadowsocks=true
fi
if [[ $blocked_ad_status == "true" ]]; then
is_blocked_ad=true
fi
if [[ $ws_path_status == "true" ]]; then
is_ws_path=true
fi
cat >/etc/v2ray/233blog_v2ray_backup.conf <<-EOF
# -----------------------------------
# 警告...请不要修改或删除这个文件...谢谢
# 警告...请不要修改或删除这个文件...谢谢
# 警告...请不要修改或删除这个文件...谢谢
# -----------------------------------
# ---- 再次提醒 ----
# 大胸弟...如果你看到了这个...记得不要修改或更改这个文件
# ---- 说明 ----
# 嗯……这个文件呢,是用来备份一些设置的
#
#mark=v3
#
#
# ---- V2Ray 传输协议 -----
v2ray_transport=$v2ray_transport
#---- V2Ray 端口 -----
v2ray_port=$v2ray_port
#---- UUID -----
v2ray_id=$v2ray_id
#---- alterId -----
alterId=233
#---- V2Ray 动态端口开始 -----
v2ray_dynamicPort_start=$v2ray_dynamicPort_start
#---- V2Ray 动态端口结束 -----
v2ray_dynamicPort_end=$v2ray_dynamicPort_end
#---- 域名 -----
domain=$domain
#---- caddy -----
caddy_status=$caddy_installed
#---- Shadowsocks -----
shadowsocks_status=$shadowsocks
#---- Shadowsocks 端口 -----
ssport=$ssport
#---- Shadowsocks 密码 -----
sspass=$sspass
#---- Shadowsocks 加密协议 -----
ssciphers=$ssciphers
#---- 屏蔽广告 -----
blocked_ad_status=$is_blocked_ad
#---- 网站伪装 -----
path_status=$is_ws_path
#---- 伪装的路径 -----
path=$ws_path
#---- 伪装的网址 -----
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
if [[ -f /usr/local/bin/v2ray ]]; then
cp -f /etc/v2ray/233boy/v2ray/v2ray.sh /usr/local/sbin/v2ray
chmod +x /usr/local/sbin/v2ray
rm -rf $backup
rm -rf /usr/local/bin/v2ray
fi
echo
echo -e " 哇哦...脚本差点就跪了..."
echo
echo -e "\n $yellow 警告: 请重新登录 SSH 以避免出现 v2ray 命令未找到的情况。$none \n" && exit 1
echo
exit 1

@ -0,0 +1,111 @@
#!/bin/bash
case $v2ray_transport in
[5-8])
_transport=$(($v2ray_transport + 1))
;;
9 | 1[0-5])
_transport=$(($v2ray_transport + 3))
;;
16)
_transport=5
;;
17)
_transport=1
;;
esac
if [[ $v2ray_transport == 17 ]]; then
v2ray_id=$(cat /proc/sys/kernel/random/uuid)
fi
cat >$backup <<-EOF
# -----------------------------------
# 警告...请不要修改或删除这个文件...谢谢
# 警告...请不要修改或删除这个文件...谢谢
# 警告...请不要修改或删除这个文件...谢谢
# -----------------------------------
# ---- 再次提醒 ----
# 大胸弟...如果你看到了这个...记得不要修改或更改这个文件
# ---- 说明 ----
# 嗯……这个文件呢,是用来备份一些设置的
#
mark=v3
#
#
# ---- V2Ray 传输协议 -----
v2ray_transport=$_transport
#---- V2Ray 端口 -----
v2ray_port=$v2ray_port
#---- UUID -----
v2ray_id=$v2ray_id
#---- alterId -----
alterId=$alterId
#---- V2Ray 动态端口开始 -----
v2ray_dynamicPort_start=$v2ray_dynamicPort_start
#---- V2Ray 动态端口结束 -----
v2ray_dynamicPort_end=$v2ray_dynamicPort_end
#---- 域名 -----
domain=$domain
#---- caddy -----
caddy=$caddy_status
#---- Shadowsocks -----
shadowsocks=$shadowsocks_status
#---- Shadowsocks 端口 -----
ssport=$ssport
#---- Shadowsocks 密码 -----
sspass=$sspass
#---- Shadowsocks 加密协议 -----
ssciphers=$ssciphers
#---- 屏蔽广告 -----
ban_ad=$blocked_ad_status
#---- 网站伪装 -----
path_status=$path_status
#---- 伪装的路径 -----
path=$path
#---- 伪装的网址 -----
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
. $backup

File diff suppressed because it is too large Load Diff

2069
v2ray.sh

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