From 0db7a4ab925a57e6b0710d3f430dfa6fb07be7d3 Mon Sep 17 00:00:00 2001 From: boypt Date: Tue, 26 Feb 2019 17:13:36 +0800 Subject: [PATCH 1/3] adding basic func, add ipv6 addr --- src/init.sh | 106 ++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 98 insertions(+), 8 deletions(-) diff --git a/src/init.sh b/src/init.sh index 34a38ab..ec5afcc 100644 --- a/src/init.sh +++ b/src/init.sh @@ -1,3 +1,87 @@ +_black() { echo -e "$(tput setaf 0)$*$(tput setaf 9)"; } +_red() { echo -e "$(tput setaf 1)$*$(tput setaf 9)"; } +_green() { echo -e "$(tput setaf 2)$*$(tput setaf 9)"; } +_yellow() { echo -e "$(tput setaf 3)$*$(tput setaf 9)"; } +_blue() { echo -e "$(tput setaf 4)$*$(tput setaf 9)"; } +_magenta() { echo -e "$(tput setaf 5)$*$(tput setaf 9)"; } +_cyan() { echo -e "$(tput setaf 6)$*$(tput setaf 9)"; } +_white() { echo -e "$(tput setaf 7)$*$(tput setaf 9)"; } +log () { + local TMPDIR="/tmp/" + local LOG="${TMPDIR}/233script.log" + local TYPE=$1 + local MSG=$2 + local TIME=$(date +%Y-%m-%d\ %H:%M:%S) + + [[ ! -d $TMPDIR ]] && mkdir -p $TMPDIR + if [[ -z $TERM ]]; then #if in cron + echo "[$TIME] $MSG" >> $LOG + else + case "$TYPE" in + info) + _green "[$TIME] $MSG" ;; + warn) + _yellow "[$TIME] $MSG" ;; + err) + _red "[$TIME] $MSG" ;; + esac + echo "[$TIME] $MSG" >> $LOG + fi +} + +error () { log err "$1"; } +info () { log info "$1"; } +warn () { log warn "$1";} +disableselinux () { + # Configure SELinux + type selinuxenabled >/dev/null 2>&1 || return 0; + [[ ! -f /etc/selinux/config ]] && return 0; + if selinuxenabled; then + info "disabling SELINUX ..." + setenforce Permissive # disable selinux needs reboot, set to Permissive + sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config + fi +} + +addtocron () { + local PROG="$1" + local CRONLINE="$2" + + # empty crontab + if ! crontab -l >/dev/null 2>&1; then + echo "$CRONLINE" | crontab + info "> crontab empty, added: $CRONLINE" + else + # add if $PROG not exists + if ! crontab -l | grep -q "$PROG"; then + info "> added: $CRONLINE" + (crontab -l; echo "$CRONLINE") | crontab + else + info "> $PROG exists in cron, skipping." + fi + fi +} + +removefromcron () { + local PROG="$1" + if crontab -l | grep -q "$PROG"; then + crontab -l | grep -v "$PROG" | crontab + fi +} + +disablecronmail() { + if [[ ! -f /etc/sysconfig/crond ]]; then + return 0 + fi + sed -i '/^CRONDARGS/d' /etc/sysconfig/crond + if crond -h 2>&1 | grep -- '-s'; then + sed -i '$aCRONDARGS="-s -m off"' /etc/sysconfig/crond + else + sed -i '$aCRONDARGS="-m off"' /etc/sysconfig/crond + fi + service crond restart +} + _rm() { rm -rf "$@" } @@ -17,15 +101,21 @@ _load() { } get_ip() { - ip=$(curl -s https://ipinfo.io/ip) - [[ -z $ip ]] && ip=$(curl -s https://api.ip.sb/ip) - [[ -z $ip ]] && ip=$(curl -s https://api.ipify.org) - [[ -z $ip ]] && ip=$(curl -s https://ip.seeip.org) - [[ -z $ip ]] && ip=$(curl -s https://ifconfig.co/ip) - [[ -z $ip ]] && ip=$(curl -s https://api.myip.com | grep -oE "([0-9]{1,3}\.){3}[0-9]{1,3}") - [[ -z $ip ]] && ip=$(curl -s icanhazip.com) - [[ -z $ip ]] && ip=$(curl -s myip.ipip.net | grep -oE "([0-9]{1,3}\.){3}[0-9]{1,3}") + ip=$(curl -4 -s https://ipinfo.io/ip) + [[ -z $ip ]] && ip=$(curl -4 -s https://api.ip.sb/ip) + [[ -z $ip ]] && ip=$(curl -4 -s https://api.ipify.org) + [[ -z $ip ]] && ip=$(curl -4 -s https://ip.seeip.org) + [[ -z $ip ]] && ip=$(curl -4 -s https://ifconfig.co/ip) + [[ -z $ip ]] && ip=$(curl -4 -s https://api.myip.com | grep -oE "([0-9]{1,3}\.){3}[0-9]{1,3}") + [[ -z $ip ]] && ip=$(curl -4 -s icanhazip.com) + [[ -z $ip ]] && ip=$(curl -4 -s myip.ipip.net | grep -oE "([0-9]{1,3}\.){3}[0-9]{1,3}") [[ -z $ip ]] && echo -e "\n$red 这垃圾小鸡扔了吧!$none\n" && exit + + v6ip=$(curl -6 -s https://ifconfig.co/ip) + [[ -z $v6ip ]] && v6ip=$(curl -6 -s https://api.ip.sb/ip) + [[ -z $v6ip ]] && v6ip=$(curl -6 -s https://ip.seeip.org) + [[ -z $v6ip ]] && v6ip=$(curl -6 -s http://icanhazip.com) + [[ -z $v6ip ]] && v6ip=$(curl -6 -s https://api.myip.com | cut -d\" -f4) } error() { From fe3eb22a9aba98a8d61fef38f53b73f993f771e5 Mon Sep 17 00:00:00 2001 From: boypt Date: Tue, 26 Feb 2019 17:23:35 +0800 Subject: [PATCH 2/3] add ipv6; disable selinux --- install.sh | 12 ++++++++++++ src/init.sh | 46 ++++------------------------------------------ src/v2ray-info.sh | 4 ++++ v2ray.sh | 24 +++++++++++++++++++++++- 4 files changed, 43 insertions(+), 43 deletions(-) diff --git a/install.sh b/install.sh index cefc4b3..9811dbd 100644 --- a/install.sh +++ b/install.sh @@ -889,6 +889,7 @@ _install() { echo exit 1 fi + _disableselinux v2ray_config blocked_hosts shadowsocks_config @@ -941,6 +942,17 @@ _uninstall() { } +_disableselinux () { + # Configure SELinux + type selinuxenabled >/dev/null 2>&1 || return 0; + [[ ! -f /etc/selinux/config ]] && return 0; + if selinuxenabled; then + setenforce Permissive + # disable selinux needs reboot, set to Permissive + sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config + fi +} + args=$1 _gitbranch=$2 [ -z $1 ] && args="online" diff --git a/src/init.sh b/src/init.sh index ec5afcc..1261ba0 100644 --- a/src/init.sh +++ b/src/init.sh @@ -6,70 +6,32 @@ _blue() { echo -e "$(tput setaf 4)$*$(tput setaf 9)"; } _magenta() { echo -e "$(tput setaf 5)$*$(tput setaf 9)"; } _cyan() { echo -e "$(tput setaf 6)$*$(tput setaf 9)"; } _white() { echo -e "$(tput setaf 7)$*$(tput setaf 9)"; } -log () { - local TMPDIR="/tmp/" - local LOG="${TMPDIR}/233script.log" - local TYPE=$1 - local MSG=$2 - local TIME=$(date +%Y-%m-%d\ %H:%M:%S) - [[ ! -d $TMPDIR ]] && mkdir -p $TMPDIR - if [[ -z $TERM ]]; then #if in cron - echo "[$TIME] $MSG" >> $LOG - else - case "$TYPE" in - info) - _green "[$TIME] $MSG" ;; - warn) - _yellow "[$TIME] $MSG" ;; - err) - _red "[$TIME] $MSG" ;; - esac - echo "[$TIME] $MSG" >> $LOG - fi -} - -error () { log err "$1"; } -info () { log info "$1"; } -warn () { log warn "$1";} -disableselinux () { - # Configure SELinux - type selinuxenabled >/dev/null 2>&1 || return 0; - [[ ! -f /etc/selinux/config ]] && return 0; - if selinuxenabled; then - info "disabling SELINUX ..." - setenforce Permissive # disable selinux needs reboot, set to Permissive - sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config - fi -} - -addtocron () { +_addtocron () { local PROG="$1" local CRONLINE="$2" # empty crontab if ! crontab -l >/dev/null 2>&1; then echo "$CRONLINE" | crontab - info "> crontab empty, added: $CRONLINE" else # add if $PROG not exists if ! crontab -l | grep -q "$PROG"; then - info "> added: $CRONLINE" (crontab -l; echo "$CRONLINE") | crontab else - info "> $PROG exists in cron, skipping." + echo "> $PROG exists in cron, skipping." fi fi } -removefromcron () { +_removefromcron () { local PROG="$1" if crontab -l | grep -q "$PROG"; then crontab -l | grep -v "$PROG" | crontab fi } -disablecronmail() { +_disablecronmail() { if [[ ! -f /etc/sysconfig/crond ]]; then return 0 fi diff --git a/src/v2ray-info.sh b/src/v2ray-info.sh index 8254222..9162419 100644 --- a/src/v2ray-info.sh +++ b/src/v2ray-info.sh @@ -106,6 +106,10 @@ _v2_info() { echo echo -e "$yellow 地址 (Address) = $cyan${ip}$none" echo + if [[ $v6ip ]]; then + echo -e "$yellow IPv6 地址 (Address) = $cyan${v6ip}$none" + echo + fi echo -e "$yellow 端口 (Port) = $cyan$v2ray_port$none" echo echo -e "$yellow 用户ID (User ID / UUID) = $cyan${v2ray_id}$none" diff --git a/v2ray.sh b/v2ray.sh index f2d7263..89dc45b 100644 --- a/v2ray.sh +++ b/v2ray.sh @@ -150,6 +150,23 @@ create_vmess_URL_config() { "tls": "" } EOF + if [[ $v6ip ]]; then + cat >/etc/v2ray/vmess_qrv6.json <<-EOF + { + "v": "2", + "ps": "v2ray6.com_${v6ip}", + "add": "${ip}", + "port": "${v2ray_port}", + "id": "${v2ray_id}", + "aid": "${alterId}", + "net": "${net}", + "type": "${header}", + "host": "${host}", + "path": "", + "tls": "" + } + EOF + fi fi } view_v2ray_traffic() { @@ -2575,7 +2592,12 @@ get_v2ray_vmess_URL_link() { echo echo -e ${cyan}$vmess${none} echo - rm -rf /etc/v2ray/vmess_qr.json + if [[ -f /etc/v2ray/vmess_qrv6.json ]]; then + local vmessv6="vmess://$(cat /etc/v2ray/vmess_qrv6.json | base64 -w 0)" + echo "IPv6:地址直链:" + echo -e ${cyan}$vmessv6${none} + fi + rm -f /etc/v2ray/vmess_qr.json /etc/v2ray/vmess_qrv6.json } other() { while :; do From 916bc7fe62eb99c345b9e90693553f8b639b5741 Mon Sep 17 00:00:00 2001 From: boypt Date: Tue, 26 Feb 2019 17:24:55 +0800 Subject: [PATCH 3/3] only debian/ub need update before install --- install.sh | 24 +++++++++++++++--------- src/ss-info.sh | 9 +++++++++ src/v2ray-info.sh | 1 + 3 files changed, 25 insertions(+), 9 deletions(-) diff --git a/install.sh b/install.sh index 9811dbd..c230243 100644 --- a/install.sh +++ b/install.sh @@ -729,8 +729,8 @@ install_v2ray() { echo -e "$yellow 同步系统仓库并安装必须组件,请骚吼~~~~~~~~~ $none" echo echo - $cmd update -y if [[ $cmd == "apt-get" ]]; then + $cmd update -y $cmd install -y socat lrzsz git zip unzip curl wget qrencode libcap2-bin else # $cmd install -y lrzsz git zip unzip curl wget qrencode libcap iptables-services @@ -835,15 +835,21 @@ backup_config() { } get_ip() { - ip=$(curl -s https://ipinfo.io/ip) - [[ -z $ip ]] && ip=$(curl -s https://api.ip.sb/ip) - [[ -z $ip ]] && ip=$(curl -s https://api.ipify.org) - [[ -z $ip ]] && ip=$(curl -s https://ip.seeip.org) - [[ -z $ip ]] && ip=$(curl -s https://ifconfig.co/ip) - [[ -z $ip ]] && ip=$(curl -s https://api.myip.com | grep -oE "([0-9]{1,3}\.){3}[0-9]{1,3}") - [[ -z $ip ]] && ip=$(curl -s icanhazip.com) - [[ -z $ip ]] && ip=$(curl -s myip.ipip.net | grep -oE "([0-9]{1,3}\.){3}[0-9]{1,3}") + ip=$(curl -4 -s https://ipinfo.io/ip) + [[ -z $ip ]] && ip=$(curl -4 -s https://api.ip.sb/ip) + [[ -z $ip ]] && ip=$(curl -4 -s https://api.ipify.org) + [[ -z $ip ]] && ip=$(curl -4 -s https://ip.seeip.org) + [[ -z $ip ]] && ip=$(curl -4 -s https://ifconfig.co/ip) + [[ -z $ip ]] && ip=$(curl -4 -s https://api.myip.com | grep -oE "([0-9]{1,3}\.){3}[0-9]{1,3}") + [[ -z $ip ]] && ip=$(curl -4 -s icanhazip.com) + [[ -z $ip ]] && ip=$(curl -4 -s myip.ipip.net | grep -oE "([0-9]{1,3}\.){3}[0-9]{1,3}") [[ -z $ip ]] && echo -e "\n$red 这垃圾小鸡扔了吧!$none\n" && exit + + v6ip=$(curl -6 -s https://ifconfig.co/ip) + [[ -z $v6ip ]] && v6ip=$(curl -6 -s https://api.ip.sb/ip) + [[ -z $v6ip ]] && v6ip=$(curl -6 -s https://ip.seeip.org) + [[ -z $v6ip ]] && v6ip=$(curl -6 -s http://icanhazip.com) + [[ -z $v6ip ]] && v6ip=$(curl -6 -s https://api.myip.com | cut -d\" -f4) } error() { diff --git a/src/ss-info.sh b/src/ss-info.sh index 6f8b469..b5bd971 100644 --- a/src/ss-info.sh +++ b/src/ss-info.sh @@ -13,6 +13,11 @@ if [[ $shadowsocks ]]; then echo echo -e "$yellow 服务器地址 = $cyan${ip}$none" echo + if [[ $v6ip ]]; then + local ssv6="ss://${cipherstr}@[${v6ip}]:${ssport}#v2ray6.com_ss_${ip}" + echo -e "$yellow 服务器IPv6地址 = $cyan${v6ip}$none" + echo + fi echo -e "$yellow 服务器端口 = $cyan$ssport$none" echo echo -e "$yellow 密码 = $cyan$sspass$none" @@ -21,6 +26,10 @@ if [[ $shadowsocks ]]; then echo echo -e "$yellow SS 链接 = ${cyan}$ss$none" echo + if [[ $ssv6 ]]; then + echo -e "$yellow SS IPv6 链接 = ${cyan}$ssv6$none" + echo + fi if [[ $ssray ]]; then echo -e "$yellow SS + V2ray - Plugin 地址 = ${cyan}${ssray_domain}$none" echo diff --git a/src/v2ray-info.sh b/src/v2ray-info.sh index 9162419..79f5cc8 100644 --- a/src/v2ray-info.sh +++ b/src/v2ray-info.sh @@ -71,6 +71,7 @@ _v2_args() { } _v2_info() { + [[ -z $ip ]] && get_ip echo echo echo "---------- V2Ray 配置信息 -------------"