support socks5

This commit is contained in:
233boy
2018-05-26 22:45:31 +08:00
parent 001fd37343
commit d8515991d1
9 changed files with 27163 additions and 251 deletions

View File

@@ -63,6 +63,7 @@ transport=(
mKCP_srtp_dynamicPort
mKCP_wechat-video_dynamicPort
HTTP/2
Socks5
)
ciphers=(
@@ -98,7 +99,7 @@ v2ray_config() {
read -p "$(echo -e "(默认协议: ${cyan}TCP$none)"):" v2ray_transport_opt
[ -z "$v2ray_transport_opt" ] && v2ray_transport_opt=1
case $v2ray_transport_opt in
[1-9] | 1[0-6])
[1-9] | 1[0-7])
echo
echo
echo -e "$yellow V2Ray 传输协议 = $cyan${transport[$v2ray_transport_opt - 1]}$none"
@@ -115,7 +116,7 @@ v2ray_config() {
}
v2ray_port_config() {
case $v2ray_transport_opt in
[1-3] | [5-9] | 1[0-5])
[1-3] | [5-9] | 1[0-5] | 17)
local random=$(shuf -i20001-65535 -n1)
while :; do
echo -e "请输入 "$yellow"V2Ray"$none" 端口 ["$magenta"1-65535"$none"]"
@@ -137,6 +138,9 @@ v2ray_port_config() {
done
if [[ $v2ray_transport_opt -ge 9 && $v2ray_transport_opt -le 15 ]]; then
v2ray_dynamic_port_start
elif [[ $v2ray_transport_opt == 17 ]]; then
socks_user_config
socks_pass_config
fi
;;
*)
@@ -213,6 +217,52 @@ v2ray_dynamic_port_end() {
}
socks_user_config() {
while :; do
read -p "$(echo -e "请输入$yellow用户名$none...(默认用户名: ${cyan}233blog$none)"): " username
[ -z "$username" ] && username="233blog"
case $username in
*[/$]* | *\&*)
echo
echo -e " 由于这个脚本太辣鸡了..所以用户名不能包含$red / $none或$red $ $none或$red & $none这三个符号.... "
echo
error
;;
*)
echo
echo
echo -e "$yellow 用户名 = $cyan$username$none"
echo "----------------------------------------------------------------"
echo
break
;;
esac
done
}
socks_pass_config() {
while :; do
read -p "$(echo -e "请输入$yellow密码$none...(默认密码: ${cyan}233blog.com$none)"): " userpass
[ -z "$userpass" ] && userpass="233blog.com"
case $userpass in
*[/$]* | *\&*)
echo
echo -e " 由于这个脚本太辣鸡了..所以密码不能包含$red / $none或$red $ $none或$red & $none这三个符号.... "
echo
error
;;
*)
echo
echo
echo -e "$yellow 密码 = $cyan$userpass$none"
echo "----------------------------------------------------------------"
echo
break
;;
esac
done
}
tls_config() {
echo
@@ -622,6 +672,18 @@ install_info() {
echo
echo -e "$yellow V2Ray 动态端口范围 = $cyan${v2ray_dynamic_port_start_input} - ${v2ray_dynamic_port_end_input}$none"
if [[ $is_blocked_ad ]]; then
echo
echo -e "$yellow 广告拦截 = $cyan$blocked_ad_info$none"
fi
elif [[ $v2ray_transport_opt == 17 ]]; then
echo
echo -e "$yellow V2Ray 端口 = $cyan$v2ray_port$none"
echo
echo -e "$yellow 用户名 = $cyan$username$none"
echo
echo -e "$yellow 密码 = $cyan$userpass$none"
if [[ $is_blocked_ad ]]; then
echo
echo -e "$yellow 广告拦截 = $cyan$blocked_ad_info$none"
@@ -806,6 +868,7 @@ install_v2ray() {
$cmd install -y lrzsz git zip unzip curl wget qrencode libcap iptables-services
fi
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
[ -d /etc/v2ray ] && rm -rf /etc/v2ray
if [[ $local_install ]]; then
if [[ ! -d $(pwd)/config ]]; then
@@ -900,6 +963,10 @@ install_v2ray() {
v2ray_server_config_file="/etc/v2ray/233boy/v2ray/config/blocked_hosts/server/h2_ss.json"
v2ray_client_config_file="/etc/v2ray/233boy/v2ray/config/client/h2.json"
;;
17)
v2ray_server_config_file="/etc/v2ray/233boy/v2ray/config/blocked_hosts/server/socks_ss.json"
v2ray_client_config_file="/etc/v2ray/233boy/v2ray/config/client/socks.json"
;;
esac
else
case $v2ray_transport_opt in
@@ -943,6 +1010,10 @@ install_v2ray() {
v2ray_server_config_file="/etc/v2ray/233boy/v2ray/config/server/h2_ss.json"
v2ray_client_config_file="/etc/v2ray/233boy/v2ray/config/client/h2.json"
;;
17)
v2ray_server_config_file="/etc/v2ray/233boy/v2ray/config/server/socks_ss.json"
v2ray_client_config_file="/etc/v2ray/233boy/v2ray/config/client/socks.json"
;;
esac
fi
else
@@ -988,6 +1059,10 @@ install_v2ray() {
v2ray_server_config_file="/etc/v2ray/233boy/v2ray/config/blocked_hosts/server/h2.json"
v2ray_client_config_file="/etc/v2ray/233boy/v2ray/config/client/h2.json"
;;
17)
v2ray_server_config_file="/etc/v2ray/233boy/v2ray/config/blocked_hosts/server/socks.json"
v2ray_client_config_file="/etc/v2ray/233boy/v2ray/config/client/socks.json"
;;
esac
else
case $v2ray_transport_opt in
@@ -1031,6 +1106,10 @@ install_v2ray() {
v2ray_server_config_file="/etc/v2ray/233boy/v2ray/config/server/h2.json"
v2ray_client_config_file="/etc/v2ray/233boy/v2ray/config/client/h2.json"
;;
17)
v2ray_server_config_file="/etc/v2ray/233boy/v2ray/config/server/socks.json"
v2ray_client_config_file="/etc/v2ray/233boy/v2ray/config/client/socks.json"
;;
esac
fi
@@ -1150,6 +1229,9 @@ config() {
16)
sed -i "46s/6666/$ssport/; 48s/chacha20-ietf/$ssciphers/; 49s/233blog.com/$sspass/" $v2ray_server_config
;;
17)
sed -i "30s/6666/$ssport/; 32s/chacha20-ietf/$ssciphers/; 33s/233blog.com/$sspass/" $v2ray_server_config
;;
esac
case $v2ray_transport_opt in
@@ -1221,7 +1303,11 @@ config() {
fi
sed -i "8s/2333/$v2ray_port/; 14s/$old_id/$uuid/" $v2ray_server_config
if [[ $v2ray_transport_opt == 17 ]]; then
sed -i "8s/2333/$v2ray_port/; 14s/233blog/$username/; 15s/233blog.com/$userpass/" $v2ray_server_config
else
sed -i "8s/2333/$v2ray_port/; 14s/$old_id/$uuid/" $v2ray_server_config
fi
if [[ $v2ray_transport_opt -eq 16 ]]; then
sed -i "24s/233blog.com/$domain/" $v2ray_server_config
@@ -1239,6 +1325,8 @@ config() {
else
sed -i "40s/233blog//" $v2ray_client_config
fi
elif [[ $v2ray_transport_opt == 17 ]]; then
sed -i "21s/233blog.com/$ip/; 22s/2333/$v2ray_port/; 25s/233blog/$username/; 26s/233blog.com/$userpass/" $v2ray_client_config
else
sed -i "s/233blog.com/$ip/; 22s/2333/$v2ray_port/; 25s/$old_id/$uuid/" $v2ray_client_config
fi
@@ -1294,7 +1382,9 @@ backup_config() {
sed -i "57s/=/=true/; 60s/=233blog/=$path/" $backup
sed -i "63s#=https://liyafly.com#=$proxy_site#" $backup
fi
if [[ $v2ray_transport_opt == 17 ]]; then
sed -i "66s/=233blog/=$username/; 69s/=233blog.com/=$userpass/" $backup
fi
}
try_enable_bbr() {
@@ -1399,7 +1489,7 @@ show_config_info() {
"tls": "tls"
}
EOF
else
elif [[ $v2ray_transport_opt != 17 ]]; then
cat >/etc/v2ray/vmess_qr.json <<-EOF
{
"v": "2",
@@ -1416,16 +1506,6 @@ show_config_info() {
}
EOF
fi
# if [[ $obfs ]]; then
# if [[ $domain ]]; then
# ip_or_domain=$domain
# else
# ip_or_domain=$ip
# fi
# local shadowray_qr="vmess://$(echo -n "aes-128-cfb:${uuid}@${ip_or_domain}:${v2ray_port}" | base64)?remarks=233blog_v2ray_${ip_or_domain}&obfs=${obfs}"
# echo "${shadowray_qr}" >/etc/v2ray/shadowray_qr.txt
# sed -i 'N;s/\n//' /etc/v2ray/shadowray_qr.txt
# fi
clear
echo
echo "---------- V2Ray 安装完成 -------------"
@@ -1459,9 +1539,20 @@ show_config_info() {
echo
echo -e "$yellow TLS (Enable TLS) = ${cyan}打开$none"
echo
# echo -e " 请将 Obfs 设置为 $obfs ...并忽略 传输协议... (如果你使用 Pepi / ShadowRay) "
# echo
elif [[ $v2ray_transport_opt == 17 ]]; then
echo
echo -e "$yellow 主机 (Hostname) = $cyan${ip}$none"
echo
echo -e "$yellow 端口 (Port) = $cyan$v2ray_port$none"
echo
echo -e "$yellow 用户名 (Username) = $cyan${username}$none"
echo
echo -e "$yellow 密码 (Password) = $cyan${userpass}$none"
echo
echo -e "$yellow Telegram 代理配置链接 = ${cyan}tg://socks?server=${ip}&port=${v2ray_port}&user=${username}&pass=${userpass}$none"
echo
echo " 这是 Socks5 协议相关的配置啦.... 不用在乎一些 V2Ray 客户端 怎么没有这些东东配置的"
echo
else
echo
echo -e "$yellow 地址 (Address) = $cyan${ip}$none"
@@ -1476,13 +1567,6 @@ show_config_info() {
echo
echo -e "$yellow 伪装类型 (header type) = ${cyan}${header}$none"
echo
# if [[ $obfs ]]; then
# echo -e " 请将 Obfs 设置为 $obfs ...并忽略 传输协议... (如果你使用 Pepi / ShadowRay) "
# echo
# else
# echo -e " 帅帅的提示...此 V2Ray 配置不支持 Pepi / ShadowRay"
# echo
# fi
fi
if [[ $v2ray_transport_opt -ge 9 && $v2ray_transport_opt -le 15 ]] && [[ $is_blocked_ad ]]; then
echo " 备注: 动态端口已启用...广告拦截已开启..."
@@ -1511,11 +1595,15 @@ show_config_info() {
echo
echo -e " 备注:$red Shadowsocks Win 4.0.6 $none客户端可能无法识别该 SS 链接"
echo
if [[ $v2ray_transport_opt == 17 ]]; then
echo -e " 温馨提示: 使用${cyan} v2ray ssqr ${none}即可生成 Shadowsocks 配置信息二维码"
echo
fi
fi
}
create_qr_link_ask() {
if [[ $shadowsocks ]]; then
if [[ $shadowsocks && $v2ray_transport_opt != 17 ]]; then
echo
while :; do
echo -e "是否需要生成$yellow V2Ray 和 Shadowsocks $none配置信息二维码链接 [${magenta}Y/N$none]"
@@ -1532,7 +1620,7 @@ create_qr_link_ask() {
error
fi
done
else
elif [[ $v2ray_transport_opt != 17 ]]; then
echo
while :; do
echo -e "是否需要生成$yellow V2Ray 配置信息 $none二维码链接 [${magenta}Y/N$none]"
@@ -1557,25 +1645,16 @@ get_qr_link() {
echo -e "$green 正在生成链接.... 稍等片刻即可....$none"
echo
# case $v2ray_transport_opt in
# [1-4] | 9 | 10 | 11)
# local ios_qr=true
# local random3=$(echo $RANDOM-$RANDOM-$RANDOM | base64)
# cat /etc/v2ray/shadowray_qr.txt | qrencode -s 50 -o /tmp/233blog_shadowray_qr.png
# local link3=$(curl -s --upload-file /tmp/233blog_shadowray_qr.png "https://transfer.sh/${random3}_233blog_v2ray.png")
# ;;
# esac
if [[ $1 ]]; then
local random1=$(echo $RANDOM-$RANDOM-$RANDOM | base64)
local random2=$(echo $RANDOM-$RANDOM-$RANDOM | base64)
local vmess="vmess://$(cat /etc/v2ray/vmess_qr.json | base64)"
echo $vmess >/etc/v2ray/vmess.txt
cat /etc/v2ray/vmess.txt | qrencode -s 50 -o /tmp/233blog_v2ray.png
local link1=$(curl -s --upload-file /tmp/233blog_v2ray.png "https://transfer.sh/${random1}_233blog_v2ray.png")
local ss="ss://$(echo -n "${ssciphers}:${sspass}@${ip}:${ssport}" | base64)#233blog_ss_${ip}"
echo "${ss}" >/tmp/233blog_shadowsocks.txt
cat /tmp/233blog_shadowsocks.txt | qrencode -s 50 -o /tmp/233blog_shadowsocks.png
local random1=$(echo $RANDOM-$RANDOM-$RANDOM | base64)
local random2=$(echo $RANDOM-$RANDOM-$RANDOM | base64)
local link1=$(curl -s --upload-file /tmp/233blog_v2ray.png "https://transfer.sh/${random1}_233blog_v2ray.png")
local link2=$(curl -s --upload-file /tmp/233blog_shadowsocks.png "https://transfer.sh/${random2}_233blog_shadowsocks.png")
if [[ $link1 && $link2 ]]; then
echo
@@ -1583,23 +1662,6 @@ get_qr_link() {
echo
echo -e "$yellow 适用于 V2RayNG v0.4.1+ / Kitsunebi = $cyan${link1}$none"
echo
# if [[ $ios_qr && $link3 ]]; then
# echo -e "$yellow 适用于 Pepi / ShadowRay = $cyan${link3}$none"
# echo
# echo " 请在 Pepi / ShadowRay 配置界面将 Alter Id 设置为 233 (如果你使用 Pepi / ShadowRay)"
# if [[ $v2ray_transport_opt == 4 ]]; then
# echo
# echo " 请在 Pepi / ShadowRay 配置界面打开 TLS (Enable TLS) (如果你使用 Pepi / ShadowRay)"
# if [[ $path ]]; then
# echo
# echo -e "$yellow 记得要将 WebSocket 路径 (WS path) 设置为: ${cyan}/${path}$none"
# fi
# fi
# elif [[ $ios_qr ]]; then
# echo -e "$red 生成适用于 Pepi / ShadowRay 的二维码链接 出错.... $none 请尝试使用${cyan} v2ray qr ${none}重新生成"
# else
# echo -e "$red 帅帅的提示...此 V2Ray 配置不支持 Pepi / ShadowRay...$none"
# fi
echo
echo
echo "---------- Shadowsocks 二维码链接 -------------"
@@ -1628,34 +1690,19 @@ get_qr_link() {
rm -rf /tmp/233blog_shadowsocks.png
rm -rf /tmp/233blog_shadowsocks.txt
else
local random1=$(echo $RANDOM-$RANDOM-$RANDOM | base64)
local vmess="vmess://$(cat /etc/v2ray/vmess_qr.json | base64)"
echo $vmess >/etc/v2ray/vmess.txt
cat /etc/v2ray/vmess.txt | qrencode -s 50 -o /tmp/233blog_v2ray.png
local random1=$(echo $RANDOM-$RANDOM-$RANDOM | base64)
local link1=$(curl -s --upload-file /tmp/233blog_v2ray.png "https://transfer.sh/${random1}_233blog_v2ray.png")
if [[ $link1 ]]; then
echo
echo "---------- V2Ray 二维码链接 -------------"
echo
echo -e "$yellow 适用于 V2RayNG v0.4.1+ / Kitsunebi = $cyan${link1}$none"
echo
# if [[ $ios_qr && $link3 ]]; then
# echo -e "$yellow 适用于 Pepi / ShadowRay = $cyan${link3}$none"
# echo
# echo " 请在 Pepi / ShadowRay 配置界面将 Alter Id 设置为 233 (如果你使用 Pepi / ShadowRay)"
# if [[ $v2ray_transport_opt == 4 ]]; then
# echo
# echo " 请在 Pepi / ShadowRay 配置界面打开 TLS (Enable TLS) (如果你使用 Pepi / ShadowRay)"
# if [[ $path ]]; then
# echo
# echo -e "$yellow 记得要将 WebSocket 路径 (WS path) 设置为: ${cyan}/${path}$none"
# fi
# fi
# elif [[ $ios_qr ]]; then
# echo -e "$red 生成适用于 Pepi / ShadowRay 的二维码链接 出错.... $none 请尝试使用${cyan} v2ray qr ${none}重新生成"
# else
# echo -e "$red 帅帅的提示...此 V2Ray 配置不支持 Pepi / ShadowRay...$none"
# fi
echo
echo
echo "----------------------------------------------------------------"
@@ -1672,15 +1719,13 @@ get_qr_link() {
echo
fi
fi
rm -rf /tmp/233blog_v2ray.png
rm -rf /etc/v2ray/vmess_qr.json
rm -rf /etc/v2ray/vmess.txt
# if [[ $ios_qr ]]; then
# rm -rf /tmp/233blog_shadowray_qr.png
# rm -rf /etc/v2ray/shadowray_qr.txt
# fi
}
install() {
if [[ -f /usr/bin/v2ray/v2ray && -f /etc/v2ray/config.json ]] && [[ -f $backup && -d /etc/v2ray/233boy/v2ray ]]; then
echo