Merge pull request #2 from 233boy/master

Master
pull/498/head
elarkasi 5 years ago committed by GitHub
commit 7687b37ac5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 19
      config/client/h2.json
  2. 19
      config/client/http.json
  3. 19
      config/client/kcp.json
  4. 19
      config/client/quic.json
  5. 19
      config/client/tcp.json
  6. 19
      config/client/ws.json
  7. 19
      config/client/ws_tls.json
  8. 20
      config/server/dynamic/http.json
  9. 20
      config/server/dynamic/kcp.json
  10. 22
      config/server/dynamic/quic.json
  11. 20
      config/server/dynamic/tcp.json
  12. 20
      config/server/dynamic/ws.json
  13. 20
      config/server/h2.json
  14. 20
      config/server/http.json
  15. 18
      config/server/kcp.json
  16. 19
      config/server/quic.json
  17. 20
      config/server/tcp.json
  18. 20
      config/server/ws.json
  19. 4
      install.sh
  20. 7
      src/caddy-config.sh
  21. 60
      src/download-caddy.sh
  22. 25
      src/download-v2ray.sh
  23. 2
      src/ss-info.sh
  24. 2
      src/v2ray-info.sh
  25. 10
      v2ray.sh

@ -54,6 +54,10 @@
"network": "tcp,udp", "network": "tcp,udp",
"timeout": 0, "timeout": 0,
"followRedirect": true "followRedirect": true
},
"sniffing": {
"enabled": true,
"destOverride": ["http", "tls"]
} }
}, },
{ {
@ -86,17 +90,24 @@
], ],
"dns": { "dns": {
"servers": [ "servers": [
"1.1.1.1",
"1.0.0.1",
{ {
"address": "119.29.29.29", "address": "119.29.29.29",
"port": 53, "port": 53,
"domains": [ "domains": [
"geosite:cn" "geosite:cn"
],
"expectIPs": [
"geoip:cn"
]
},
{
"address": "1.1.1.1",
"port": 53,
"domains": [
"geosite:geolocation-!cn"
] ]
}, },
"8.8.8.8", "8.8.8.8",
"8.8.4.4",
"localhost" "localhost"
] ]
}, },

@ -84,6 +84,10 @@
"network": "tcp,udp", "network": "tcp,udp",
"timeout": 0, "timeout": 0,
"followRedirect": true "followRedirect": true
},
"sniffing": {
"enabled": true,
"destOverride": ["http", "tls"]
} }
}, },
{ {
@ -116,17 +120,24 @@
], ],
"dns": { "dns": {
"servers": [ "servers": [
"1.1.1.1",
"1.0.0.1",
{ {
"address": "119.29.29.29", "address": "119.29.29.29",
"port": 53, "port": 53,
"domains": [ "domains": [
"geosite:cn" "geosite:cn"
],
"expectIPs": [
"geoip:cn"
]
},
{
"address": "1.1.1.1",
"port": 53,
"domains": [
"geosite:geolocation-!cn"
] ]
}, },
"8.8.8.8", "8.8.8.8",
"8.8.4.4",
"localhost" "localhost"
] ]
}, },

@ -55,6 +55,10 @@
"network": "tcp,udp", "network": "tcp,udp",
"timeout": 0, "timeout": 0,
"followRedirect": true "followRedirect": true
},
"sniffing": {
"enabled": true,
"destOverride": ["http", "tls"]
} }
}, },
{ {
@ -87,17 +91,24 @@
], ],
"dns": { "dns": {
"servers": [ "servers": [
"1.1.1.1",
"1.0.0.1",
{ {
"address": "119.29.29.29", "address": "119.29.29.29",
"port": 53, "port": 53,
"domains": [ "domains": [
"geosite:cn" "geosite:cn"
],
"expectIPs": [
"geoip:cn"
]
},
{
"address": "1.1.1.1",
"port": 53,
"domains": [
"geosite:geolocation-!cn"
] ]
}, },
"8.8.8.8", "8.8.8.8",
"8.8.4.4",
"localhost" "localhost"
] ]
}, },

@ -54,6 +54,10 @@
"network": "tcp,udp", "network": "tcp,udp",
"timeout": 0, "timeout": 0,
"followRedirect": true "followRedirect": true
},
"sniffing": {
"enabled": true,
"destOverride": ["http", "tls"]
} }
}, },
{ {
@ -86,17 +90,24 @@
], ],
"dns": { "dns": {
"servers": [ "servers": [
"1.1.1.1",
"1.0.0.1",
{ {
"address": "119.29.29.29", "address": "119.29.29.29",
"port": 53, "port": 53,
"domains": [ "domains": [
"geosite:cn" "geosite:cn"
],
"expectIPs": [
"geoip:cn"
]
},
{
"address": "1.1.1.1",
"port": 53,
"domains": [
"geosite:geolocation-!cn"
] ]
}, },
"8.8.8.8", "8.8.8.8",
"8.8.4.4",
"localhost" "localhost"
] ]
}, },

@ -44,6 +44,10 @@
"network": "tcp,udp", "network": "tcp,udp",
"timeout": 0, "timeout": 0,
"followRedirect": true "followRedirect": true
},
"sniffing": {
"enabled": true,
"destOverride": ["http", "tls"]
} }
}, },
{ {
@ -76,17 +80,24 @@
], ],
"dns": { "dns": {
"servers": [ "servers": [
"1.1.1.1",
"1.0.0.1",
{ {
"address": "119.29.29.29", "address": "119.29.29.29",
"port": 53, "port": 53,
"domains": [ "domains": [
"geosite:cn" "geosite:cn"
],
"expectIPs": [
"geoip:cn"
]
},
{
"address": "1.1.1.1",
"port": 53,
"domains": [
"geosite:geolocation-!cn"
] ]
}, },
"8.8.8.8", "8.8.8.8",
"8.8.4.4",
"localhost" "localhost"
] ]
}, },

@ -47,6 +47,10 @@
"network": "tcp,udp", "network": "tcp,udp",
"timeout": 0, "timeout": 0,
"followRedirect": true "followRedirect": true
},
"sniffing": {
"enabled": true,
"destOverride": ["http", "tls"]
} }
}, },
{ {
@ -79,17 +83,24 @@
], ],
"dns": { "dns": {
"servers": [ "servers": [
"1.1.1.1",
"1.0.0.1",
{ {
"address": "119.29.29.29", "address": "119.29.29.29",
"port": 53, "port": 53,
"domains": [ "domains": [
"geosite:cn" "geosite:cn"
],
"expectIPs": [
"geoip:cn"
]
},
{
"address": "1.1.1.1",
"port": 53,
"domains": [
"geosite:geolocation-!cn"
] ]
}, },
"8.8.8.8", "8.8.8.8",
"8.8.4.4",
"localhost" "localhost"
] ]
}, },

@ -57,6 +57,10 @@
"network": "tcp,udp", "network": "tcp,udp",
"timeout": 0, "timeout": 0,
"followRedirect": true "followRedirect": true
},
"sniffing": {
"enabled": true,
"destOverride": ["http", "tls"]
} }
}, },
{ {
@ -89,17 +93,24 @@
], ],
"dns": { "dns": {
"servers": [ "servers": [
"1.1.1.1",
"1.0.0.1",
{ {
"address": "119.29.29.29", "address": "119.29.29.29",
"port": 53, "port": 53,
"domains": [ "domains": [
"geosite:cn" "geosite:cn"
],
"expectIPs": [
"geoip:cn"
]
},
{
"address": "1.1.1.1",
"port": 53,
"domains": [
"geosite:geolocation-!cn"
] ]
}, },
"8.8.8.8", "8.8.8.8",
"8.8.4.4",
"localhost" "localhost"
] ]
}, },

@ -97,18 +97,16 @@
"outbounds": [ "outbounds": [
{ {
"protocol": "freedom", "protocol": "freedom",
"settings": {} "settings": {
"domainStrategy": "UseIP"
},
"tag": "direct"
}, },
{ {
"protocol": "blackhole", "protocol": "blackhole",
"settings": {}, "settings": {},
"tag": "blocked" "tag": "blocked"
}, },
{
"protocol": "freedom",
"settings": {},
"tag": "direct"
},
{ {
"protocol": "mtproto", "protocol": "mtproto",
"settings": {}, "settings": {},
@ -118,7 +116,8 @@
// //
], ],
"dns": { "dns": {
"server": [ "servers": [
"https+local://1.1.1.1/dns-query",
"1.1.1.1", "1.1.1.1",
"1.0.0.1", "1.0.0.1",
"8.8.8.8", "8.8.8.8",
@ -167,9 +166,6 @@
"uplinkCapacity": 100, "uplinkCapacity": 100,
"downlinkCapacity": 100, "downlinkCapacity": 100,
"congestion": true "congestion": true
}, }
"sockopt": {
"tcpFastOpen": true
}
} }
} }

@ -69,18 +69,16 @@
"outbounds": [ "outbounds": [
{ {
"protocol": "freedom", "protocol": "freedom",
"settings": {} "settings": {
"domainStrategy": "UseIP"
},
"tag": "direct"
}, },
{ {
"protocol": "blackhole", "protocol": "blackhole",
"settings": {}, "settings": {},
"tag": "blocked" "tag": "blocked"
}, },
{
"protocol": "freedom",
"settings": {},
"tag": "direct"
},
{ {
"protocol": "mtproto", "protocol": "mtproto",
"settings": {}, "settings": {},
@ -90,7 +88,8 @@
// //
], ],
"dns": { "dns": {
"server": [ "servers": [
"https+local://1.1.1.1/dns-query",
"1.1.1.1", "1.1.1.1",
"1.0.0.1", "1.0.0.1",
"8.8.8.8", "8.8.8.8",
@ -139,9 +138,6 @@
"uplinkCapacity": 100, "uplinkCapacity": 100,
"downlinkCapacity": 100, "downlinkCapacity": 100,
"congestion": true "congestion": true
}, }
"sockopt": {
"tcpFastOpen": true
}
} }
} }

@ -23,7 +23,6 @@
"streamSettings": { "streamSettings": {
"network": "quic", "network": "quic",
"quicSettings": { "quicSettings": {
"security": "aes-128-gcm",
"key": "", "key": "",
"header": { "header": {
"type": "none" "type": "none"
@ -56,7 +55,6 @@
"streamSettings": { "streamSettings": {
"network": "quic", "network": "quic",
"quicSettings": { "quicSettings": {
"security": "aes-128-gcm",
"key": "", "key": "",
"header": { "header": {
"type": "none" "type": "none"
@ -73,18 +71,16 @@
"outbounds": [ "outbounds": [
{ {
"protocol": "freedom", "protocol": "freedom",
"settings": {} "settings": {
"domainStrategy": "UseIP"
},
"tag": "direct"
}, },
{ {
"protocol": "blackhole", "protocol": "blackhole",
"settings": {}, "settings": {},
"tag": "blocked" "tag": "blocked"
}, },
{
"protocol": "freedom",
"settings": {},
"tag": "direct"
},
{ {
"protocol": "mtproto", "protocol": "mtproto",
"settings": {}, "settings": {},
@ -94,7 +90,8 @@
// //
], ],
"dns": { "dns": {
"server": [ "servers": [
"https+local://1.1.1.1/dns-query",
"1.1.1.1", "1.1.1.1",
"1.0.0.1", "1.0.0.1",
"8.8.8.8", "8.8.8.8",
@ -143,9 +140,6 @@
"uplinkCapacity": 100, "uplinkCapacity": 100,
"downlinkCapacity": 100, "downlinkCapacity": 100,
"congestion": true "congestion": true
}, }
"sockopt": {
"tcpFastOpen": true
}
} }
} }

@ -56,18 +56,16 @@
"outbounds": [ "outbounds": [
{ {
"protocol": "freedom", "protocol": "freedom",
"settings": {} "settings": {
"domainStrategy": "UseIP"
},
"tag": "direct"
}, },
{ {
"protocol": "blackhole", "protocol": "blackhole",
"settings": {}, "settings": {},
"tag": "blocked" "tag": "blocked"
}, },
{
"protocol": "freedom",
"settings": {},
"tag": "direct"
},
{ {
"protocol": "mtproto", "protocol": "mtproto",
"settings": {}, "settings": {},
@ -77,7 +75,8 @@
// //
], ],
"dns": { "dns": {
"server": [ "servers": [
"https+local://1.1.1.1/dns-query",
"1.1.1.1", "1.1.1.1",
"1.0.0.1", "1.0.0.1",
"8.8.8.8", "8.8.8.8",
@ -126,9 +125,6 @@
"uplinkCapacity": 100, "uplinkCapacity": 100,
"downlinkCapacity": 100, "downlinkCapacity": 100,
"congestion": true "congestion": true
}, }
"sockopt": {
"tcpFastOpen": true
}
} }
} }

@ -59,18 +59,16 @@
"outbounds": [ "outbounds": [
{ {
"protocol": "freedom", "protocol": "freedom",
"settings": {} "settings": {
"domainStrategy": "UseIP"
},
"tag": "direct"
}, },
{ {
"protocol": "blackhole", "protocol": "blackhole",
"settings": {}, "settings": {},
"tag": "blocked" "tag": "blocked"
}, },
{
"protocol": "freedom",
"settings": {},
"tag": "direct"
},
{ {
"protocol": "mtproto", "protocol": "mtproto",
"settings": {}, "settings": {},
@ -80,7 +78,8 @@
// //
], ],
"dns": { "dns": {
"server": [ "servers": [
"https+local://1.1.1.1/dns-query",
"1.1.1.1", "1.1.1.1",
"1.0.0.1", "1.0.0.1",
"8.8.8.8", "8.8.8.8",
@ -129,9 +128,6 @@
"uplinkCapacity": 100, "uplinkCapacity": 100,
"downlinkCapacity": 100, "downlinkCapacity": 100,
"congestion": true "congestion": true
}, }
"sockopt": {
"tcpFastOpen": true
}
} }
} }

@ -52,18 +52,16 @@
"outbounds": [ "outbounds": [
{ {
"protocol": "freedom", "protocol": "freedom",
"settings": {} "settings": {
"domainStrategy": "UseIP"
},
"tag": "direct"
}, },
{ {
"protocol": "blackhole", "protocol": "blackhole",
"settings": {}, "settings": {},
"tag": "blocked" "tag": "blocked"
}, },
{
"protocol": "freedom",
"settings": {},
"tag": "direct"
},
{ {
"protocol": "mtproto", "protocol": "mtproto",
"settings": {}, "settings": {},
@ -73,7 +71,8 @@
// //
], ],
"dns": { "dns": {
"server": [ "servers": [
"https+local://1.1.1.1/dns-query",
"1.1.1.1", "1.1.1.1",
"1.0.0.1", "1.0.0.1",
"8.8.8.8", "8.8.8.8",
@ -122,9 +121,6 @@
"uplinkCapacity": 100, "uplinkCapacity": 100,
"downlinkCapacity": 100, "downlinkCapacity": 100,
"congestion": true "congestion": true
}, }
"sockopt": {
"tcpFastOpen": true
}
} }
} }

@ -70,18 +70,16 @@
"outbounds": [ "outbounds": [
{ {
"protocol": "freedom", "protocol": "freedom",
"settings": {} "settings": {
"domainStrategy": "UseIP"
},
"tag": "direct"
}, },
{ {
"protocol": "blackhole", "protocol": "blackhole",
"settings": {}, "settings": {},
"tag": "blocked" "tag": "blocked"
}, },
{
"protocol": "freedom",
"settings": {},
"tag": "direct"
},
{ {
"protocol": "mtproto", "protocol": "mtproto",
"settings": {}, "settings": {},
@ -91,7 +89,8 @@
// //
], ],
"dns": { "dns": {
"server": [ "servers": [
"https+local://1.1.1.1/dns-query",
"1.1.1.1", "1.1.1.1",
"1.0.0.1", "1.0.0.1",
"8.8.8.8", "8.8.8.8",
@ -140,9 +139,6 @@
"uplinkCapacity": 100, "uplinkCapacity": 100,
"downlinkCapacity": 100, "downlinkCapacity": 100,
"congestion": true "congestion": true
}, }
"sockopt": {
"tcpFastOpen": true
}
} }
} }

@ -42,18 +42,16 @@
"outbounds": [ "outbounds": [
{ {
"protocol": "freedom", "protocol": "freedom",
"settings": {} "settings": {
"domainStrategy": "UseIP"
},
"tag": "direct"
}, },
{ {
"protocol": "blackhole", "protocol": "blackhole",
"settings": {}, "settings": {},
"tag": "blocked" "tag": "blocked"
}, },
{
"protocol": "freedom",
"settings": {},
"tag": "direct"
},
{ {
"protocol": "mtproto", "protocol": "mtproto",
"settings": {}, "settings": {},
@ -63,7 +61,8 @@
// //
], ],
"dns": { "dns": {
"server": [ "servers": [
"https+local://1.1.1.1/dns-query",
"1.1.1.1", "1.1.1.1",
"1.0.0.1", "1.0.0.1",
"8.8.8.8", "8.8.8.8",
@ -112,9 +111,6 @@
"uplinkCapacity": 100, "uplinkCapacity": 100,
"downlinkCapacity": 100, "downlinkCapacity": 100,
"congestion": true "congestion": true
}, }
"sockopt": {
"tcpFastOpen": true
}
} }
} }

@ -20,7 +20,6 @@
"streamSettings": { "streamSettings": {
"network": "quic", "network": "quic",
"quicSettings": { "quicSettings": {
"security": "aes-128-gcm",
"key": "", "key": "",
"header": { "header": {
"type": "none" "type": "none"
@ -44,18 +43,16 @@
"outbounds": [ "outbounds": [
{ {
"protocol": "freedom", "protocol": "freedom",
"settings": {} "settings": {
"domainStrategy": "UseIP"
},
"tag": "direct"
}, },
{ {
"protocol": "blackhole", "protocol": "blackhole",
"settings": {}, "settings": {},
"tag": "blocked" "tag": "blocked"
}, },
{
"protocol": "freedom",
"settings": {},
"tag": "direct"
},
{ {
"protocol": "mtproto", "protocol": "mtproto",
"settings": {}, "settings": {},
@ -65,7 +62,8 @@
// //
], ],
"dns": { "dns": {
"server": [ "servers": [
"https+local://1.1.1.1/dns-query",
"1.1.1.1", "1.1.1.1",
"1.0.0.1", "1.0.0.1",
"8.8.8.8", "8.8.8.8",
@ -114,9 +112,6 @@
"uplinkCapacity": 100, "uplinkCapacity": 100,
"downlinkCapacity": 100, "downlinkCapacity": 100,
"congestion": true "congestion": true
}, }
"sockopt": {
"tcpFastOpen": true
}
} }
} }

@ -37,18 +37,16 @@
"outbounds": [ "outbounds": [
{ {
"protocol": "freedom", "protocol": "freedom",
"settings": {} "settings": {
"domainStrategy": "UseIP"
},
"tag": "direct"
}, },
{ {
"protocol": "blackhole", "protocol": "blackhole",
"settings": {}, "settings": {},
"tag": "blocked" "tag": "blocked"
}, },
{
"protocol": "freedom",
"settings": {},
"tag": "direct"
},
{ {
"protocol": "mtproto", "protocol": "mtproto",
"settings": {}, "settings": {},
@ -58,7 +56,8 @@
// //
], ],
"dns": { "dns": {
"server": [ "servers": [
"https+local://1.1.1.1/dns-query",
"1.1.1.1", "1.1.1.1",
"1.0.0.1", "1.0.0.1",
"8.8.8.8", "8.8.8.8",
@ -107,9 +106,6 @@
"uplinkCapacity": 100, "uplinkCapacity": 100,
"downlinkCapacity": 100, "downlinkCapacity": 100,
"congestion": true "congestion": true
}, }
"sockopt": {
"tcpFastOpen": true
}
} }
} }

@ -37,18 +37,16 @@
"outbounds": [ "outbounds": [
{ {
"protocol": "freedom", "protocol": "freedom",
"settings": {} "settings": {
"domainStrategy": "UseIP"
},
"tag": "direct"
}, },
{ {
"protocol": "blackhole", "protocol": "blackhole",
"settings": {}, "settings": {},
"tag": "blocked" "tag": "blocked"
}, },
{
"protocol": "freedom",
"settings": {},
"tag": "direct"
},
{ {
"protocol": "mtproto", "protocol": "mtproto",
"settings": {}, "settings": {},
@ -58,7 +56,8 @@
// //
], ],
"dns": { "dns": {
"server": [ "servers": [
"https+local://1.1.1.1/dns-query",
"1.1.1.1", "1.1.1.1",
"1.0.0.1", "1.0.0.1",
"8.8.8.8", "8.8.8.8",
@ -107,9 +106,6 @@
"uplinkCapacity": 100, "uplinkCapacity": 100,
"downlinkCapacity": 100, "downlinkCapacity": 100,
"congestion": true "congestion": true
}, }
"sockopt": {
"tcpFastOpen": true
}
} }
} }

@ -745,7 +745,9 @@ domain_check() {
# $cmd install dnsutils -y # $cmd install dnsutils -y
# fi # fi
# test_domain=$(dig $domain +short) # test_domain=$(dig $domain +short)
test_domain=$(ping $domain -c 1 | grep -oE -m1 "([0-9]{1,3}\.){3}[0-9]{1,3}") # test_domain=$(ping $domain -c 1 -4 | grep -oE -m1 "([0-9]{1,3}\.){3}[0-9]{1,3}")
# test_domain=$(wget -qO- --header='accept: application/dns-json' "https://cloudflare-dns.com/dns-query?name=$domain&type=A" | grep -oE "([0-9]{1,3}\.){3}[0-9]{1,3}" | head -1)
test_domain=$(curl -sH 'accept: application/dns-json' "https://cloudflare-dns.com/dns-query?name=$domain&type=A" | grep -oE "([0-9]{1,3}\.){3}[0-9]{1,3}" | head -1)
if [[ $test_domain != $ip ]]; then if [[ $test_domain != $ip ]]; then
echo echo
echo -e "$red 检测域名解析错误....$none" echo -e "$red 检测域名解析错误....$none"

@ -1,10 +1,10 @@
local email=$(((RANDOM << 22))) # local email=$(((RANDOM << 22)))
# tls ${email}@gmail.com
case $v2ray_transport in case $v2ray_transport in
4) 4)
if [[ $is_path ]]; then if [[ $is_path ]]; then
cat >/etc/caddy/Caddyfile <<-EOF cat >/etc/caddy/Caddyfile <<-EOF
$domain { $domain {
tls ${email}@gmail.com
gzip gzip
timeouts none timeouts none
proxy / $proxy_site { proxy / $proxy_site {
@ -20,7 +20,6 @@ import sites/*
else else
cat >/etc/caddy/Caddyfile <<-EOF cat >/etc/caddy/Caddyfile <<-EOF
$domain { $domain {
tls ${email}@gmail.com
timeouts none timeouts none
proxy / 127.0.0.1:${v2ray_port} { proxy / 127.0.0.1:${v2ray_port} {
websocket websocket
@ -34,7 +33,6 @@ import sites/*
if [[ $is_path ]]; then if [[ $is_path ]]; then
cat >/etc/caddy/Caddyfile <<-EOF cat >/etc/caddy/Caddyfile <<-EOF
$domain { $domain {
tls ${email}@gmail.com
gzip gzip
timeouts none timeouts none
proxy / $proxy_site { proxy / $proxy_site {
@ -51,7 +49,6 @@ import sites/*
else else
cat >/etc/caddy/Caddyfile <<-EOF cat >/etc/caddy/Caddyfile <<-EOF
$domain { $domain {
tls ${email}@gmail.com
timeouts none timeouts none
proxy / https://127.0.0.1:${v2ray_port} { proxy / https://127.0.0.1:${v2ray_port} {
header_upstream Host {host} header_upstream Host {host}

@ -2,6 +2,9 @@ _download_caddy_file() {
caddy_tmp="/tmp/install_caddy/" caddy_tmp="/tmp/install_caddy/"
caddy_tmp_file="/tmp/install_caddy/caddy.tar.gz" caddy_tmp_file="/tmp/install_caddy/caddy.tar.gz"
[[ -d $caddy_tmp ]] && rm -rf $caddy_tmp [[ -d $caddy_tmp ]] && rm -rf $caddy_tmp
if [[ ! ${caddy_arch} ]]; then
echo -e "$red 获取 Caddy 下载参数失败!$none" && exit 1
fi
local caddy_download_link="https://caddyserver.com/download/linux/${caddy_arch}?license=personal" local caddy_download_link="https://caddyserver.com/download/linux/${caddy_arch}?license=personal"
mkdir -p $caddy_tmp mkdir -p $caddy_tmp
@ -13,8 +16,10 @@ _download_caddy_file() {
tar zxf $caddy_tmp_file -C $caddy_tmp tar zxf $caddy_tmp_file -C $caddy_tmp
cp -f ${caddy_tmp}caddy /usr/local/bin/ cp -f ${caddy_tmp}caddy /usr/local/bin/
# wget -qO- https://getcaddy.com | bash -s personal
if [[ ! -f /usr/local/bin/caddy ]]; then if [[ ! -f /usr/local/bin/caddy ]]; then
echo -e "$red 安装 Caddy 出错!" && exit 1 echo -e "$red 安装 Caddy 出错!$none" && exit 1
fi fi
} }
_install_caddy_service() { _install_caddy_service() {
@ -22,9 +27,42 @@ _install_caddy_service() {
if [[ $systemd ]]; then if [[ $systemd ]]; then
cp -f ${caddy_tmp}init/linux-systemd/caddy.service /lib/systemd/system/ cp -f ${caddy_tmp}init/linux-systemd/caddy.service /lib/systemd/system/
# sed -i "s/www-data/root/g" /lib/systemd/system/caddy.service # if ! wget https://raw.githubusercontent.com/caddyserver/caddy/master/dist/init/linux-systemd/caddy.service -O /lib/systemd/system/caddy.service; then
sed -i "/on-abnormal/a RestartSec=3" /lib/systemd/system/caddy.service # echo -e "$red 下载 caddy.service 失败!$none" && exit 1
sed -i "s/on-abnormal/always/" /lib/systemd/system/caddy.service # fi
# sed -i "s/-log-timestamps=false//g" /lib/systemd/system/caddy.service
if [[ ! $(grep "ReadWriteDirectories" /lib/systemd/system/caddy.service) ]]; then
sed -i "/ReadWritePaths/a ReadWriteDirectories=/etc/ssl/caddy" /lib/systemd/system/caddy.service
fi
# # sed -i "s/www-data/root/g" /lib/systemd/system/caddy.service
# sed -i "/on-abnormal/a RestartSec=3" /lib/systemd/system/caddy.service
# sed -i "s/on-abnormal/always/" /lib/systemd/system/caddy.service
#### 。。。。。 Warning.....Warning.......Warning........Warning......
#### 。。。。。 use root user run caddy...
# cat >/lib/systemd/system/caddy.service <<-EOF
# [Unit]
# Description=Caddy HTTP/2 web server
# Documentation=https://caddyserver.com/docs
# After=network.target
# Wants=network.target
# [Service]
# Restart=always
# RestartSec=3
# Environment=CADDYPATH=/root/.caddy
# ExecStart=/usr/local/bin/caddy -log stdout -agree=true -conf=/etc/caddy/Caddyfile -root=/var/tmp
# ExecReload=/bin/kill -USR1 $MAINPID
# KillMode=mixed
# KillSignal=SIGQUIT
# TimeoutStopSec=5s
# LimitNOFILE=1048576
# LimitNPROC=512
# [Install]
# WantedBy=multi-user.target
# EOF
systemctl enable caddy systemctl enable caddy
else else
cp -f ${caddy_tmp}init/linux-sysvinit/caddy /etc/init.d/caddy cp -f ${caddy_tmp}init/linux-sysvinit/caddy /etc/init.d/caddy
@ -33,15 +71,19 @@ _install_caddy_service() {
update-rc.d -f caddy defaults update-rc.d -f caddy defaults
fi fi
mkdir -p /etc/ssl/caddy
if [ -z "$(grep www-data /etc/passwd)" ]; then if [ -z "$(grep www-data /etc/passwd)" ]; then
useradd -M -s /usr/sbin/nologin www-data useradd -M -s /usr/sbin/nologin www-data
fi fi
chown -R www-data.www-data /etc/ssl/caddy # chown -R www-data.www-data /etc/ssl/caddy
mkdir -p /etc/caddy/ # ref https://github.com/caddyserver/caddy/tree/master/dist/init/linux-systemd
mkdir -p /etc/caddy
chown -R root:root /etc/caddy
mkdir -p /etc/ssl/caddy
chown -R root:www-data /etc/ssl/caddy
chmod 0770 /etc/ssl/caddy
## create sites dir ## create sites dir
mkdir -p /etc/caddy/sites mkdir -p /etc/caddy/sites
} }

@ -15,9 +15,7 @@ _get_latest_version() {
_download_v2ray_file() { _download_v2ray_file() {
_get_latest_version _get_latest_version
[[ -d /tmp/v2ray ]] && rm -rf /tmp/v2ray v2ray_tmp_file="/tmp/v2ray.zip"
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" 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 if ! wget --no-check-certificate -O "$v2ray_tmp_file" $v2ray_download_link; then
@ -26,26 +24,15 @@ _download_v2ray_file() {
" && exit 1 " && exit 1
fi fi
unzip $v2ray_tmp_file -d "/tmp/v2ray/" unzip -o $v2ray_tmp_file -d "/usr/bin/v2ray/"
mkdir -p /usr/bin/v2ray chmod +x /usr/bin/v2ray/{v2ray,v2ctl}
cp -f "/tmp/v2ray/v2ray" "/usr/bin/v2ray/v2ray"
chmod +x "/usr/bin/v2ray/v2ray"
echo "alias v2ray=$_v2ray_sh" >>/root/.bashrc echo "alias v2ray=$_v2ray_sh" >>/root/.bashrc
cp -f "/tmp/v2ray/v2ctl" "/usr/bin/v2ray/v2ctl"
chmod +x "/usr/bin/v2ray/v2ctl"
} }
_install_v2ray_service() { _install_v2ray_service() {
if [[ $systemd ]]; then cp -f "/usr/bin/v2ray/systemd/v2ray.service" "/lib/systemd/system/"
cp -f "/tmp/v2ray/systemd/v2ray.service" "/lib/systemd/system/" sed -i "s/on-failure/always/" /lib/systemd/system/v2ray.service
sed -i "s/on-failure/always/" /lib/systemd/system/v2ray.service systemctl enable v2ray
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() { _update_v2ray_version() {

@ -18,4 +18,6 @@ if [[ $shadowsocks ]]; then
echo echo
echo -e "提示: 输入$cyan v2ray ssqr $none可生成 Shadowsocks 二维码链接" echo -e "提示: 输入$cyan v2ray ssqr $none可生成 Shadowsocks 二维码链接"
echo echo
echo -e "${yellow}免被墙..推荐使用JMS: ${cyan}https://getjms.com${none}"
echo
fi fi

@ -133,4 +133,6 @@ _v2_info() {
echo echo
echo -e "提示: 输入$cyan v2ray url $none可生成 vmess URL 链接 / 输入$cyan v2ray qr $none可生成二维码链接" echo -e "提示: 输入$cyan v2ray url $none可生成 vmess URL 链接 / 输入$cyan v2ray qr $none可生成二维码链接"
echo echo
echo -e "${yellow}免被墙..推荐使用JMS: ${cyan}https://getjms.com${none}"
echo
} }

@ -10,7 +10,7 @@ none='\e[0m'
# Root # Root
[[ $(id -u) != 0 ]] && echo -e " 哎呀……请使用 ${red}root ${none}用户运行 ${yellow}~(^_^) ${none}" && exit 1 [[ $(id -u) != 0 ]] && echo -e " 哎呀……请使用 ${red}root ${none}用户运行 ${yellow}~(^_^) ${none}" && exit 1
_version="v3.13" _version="v3.31"
cmd="apt-get" cmd="apt-get"
@ -1763,7 +1763,9 @@ change_proxy_site_config() {
} }
domain_check() { domain_check() {
# test_domain=$(dig $new_domain +short) # test_domain=$(dig $new_domain +short)
test_domain=$(ping $new_domain -c 1 | grep -oE -m1 "([0-9]{1,3}\.){3}[0-9]{1,3}") # test_domain=$(ping $new_domain -c 1 -4 | grep -oE -m1 "([0-9]{1,3}\.){3}[0-9]{1,3}")
# test_domain=$(wget -qO- --header='accept: application/dns-json' "https://cloudflare-dns.com/dns-query?name=$new_domain&type=A" | grep -oE "([0-9]{1,3}\.){3}[0-9]{1,3}" | head -1)
test_domain=$(curl -sH 'accept: application/dns-json' "https://cloudflare-dns.com/dns-query?name=$new_domain&type=A" | grep -oE "([0-9]{1,3}\.){3}[0-9]{1,3}" | head -1)
if [[ $test_domain != $ip ]]; then if [[ $test_domain != $ip ]]; then
echo echo
echo -e "$red 检测域名解析错误....$none" echo -e "$red 检测域名解析错误....$none"
@ -2277,6 +2279,8 @@ get_v2ray_vmess_URL_link() {
echo echo
echo -e ${cyan}$vmess${none} echo -e ${cyan}$vmess${none}
echo echo
echo -e "${yellow}免被墙..推荐使用JMS: ${cyan}https://getjms.com${none}"
echo
rm -rf /etc/v2ray/vmess_qr.json rm -rf /etc/v2ray/vmess_qr.json
} }
other() { other() {
@ -2675,7 +2679,7 @@ menu() {
echo echo
echo "反馈问题: https://github.com/233boy/v2ray/issues" echo "反馈问题: https://github.com/233boy/v2ray/issues"
echo echo
echo "TG 群组: https://t.me/blog233" echo "TG 频道: https://t.me/tg2333"
echo echo
echo "捐赠脚本作者: https://233v2.com/donate/" echo "捐赠脚本作者: https://233v2.com/donate/"
echo echo

Loading…
Cancel
Save