[login] ``` #!/bin/bash blue() { echo -e "\033[34m\033[01m$1\033[0m" } green() { echo -e "\033[32m\033[01m$1\033[0m" } red() { echo -e "\033[31m\033[01m$1\033[0m" } installRely() { aptOryum="apt-get" if [[ $(command -v yum) ]]; then aptOryum="yum" fi $aptOryum update $aptOryum install screen gzip unzip curl socat vim tar net-tools } DownLoadGost() { gostscreen_name="gost80" screen -S $gostscreen_name -X "quit" >/dev/null 2>&1 rm -rf /root/gost mkdir /root/gost cd /root/gost wget "https://github.com/ginuerzh/gost/releases/download/v2.11.1/gost-linux-amd64-2.11.1.gz" gzip -d "gost-linux-amd64-2.11.1.gz" mv /root/gost/gost-linux-amd64-2.11.1 /root/gost/gost #遇事不决777 chmod -R 777 /root/gost } SetGost2cykablyat80() { Port80=$(netstat -tlpn | awk -F '[: ]+' '$1=="tcp"{print $5}' | grep -w 80) if [ -n "$Port80" ]; then process80=$(netstat -tlpn | awk -F '[: ]+' '$5=="80"{print $9}') red "===========================================================" red "检测到80端口被占用,占用进程为:${process80},本次安装结束" red "===========================================================" exit 1 fi gostscreen_name="gost80" screen -S $gostscreen_name -X "quit" >/dev/null 2>&1 screen -dmS $gostscreen_name cmd=$"/root/gost/gost -L=tcp://:80//cykablyat.date:80" sleep 2s screen -x -S $gostscreen_name -p 0 -X stuff "$cmd" screen -x -S $gostscreen_name -p 0 -X stuff $'\n' } StopGost2cykablyat80() { gostpid=`ps -ef | grep gost | grep -v grep | awk '{print $2}'` kill -9 $gostpid gostscreen_name="gost80" screen -S $gostscreen_name -X "quit" } DownLoadTrojan() { trojanscreen_name="tj" screen -S $trojanscreen_name -X "quit" >/dev/null 2>&1 rm -rf /root/tj mkdir /root/tj cd /root/tj rm -rf /root/tj/latest wget https://api.github.com/repos/trojan-gfw/trojan/releases/latest latest_version=$(grep tag_name latest | awk -F '[:,"v]' '{print $6}') rm -rf /root/tj/latest wget https://github.com/trojan-gfw/trojan/releases/download/v${latest_version}/trojan-${latest_version}-linux-amd64.tar.xz tar xf trojan-${latest_version}-linux-amd64.tar.xz mv /root/tj/trojan/ /root/ rm -rf /root/tj/* mv /root/trojan/* /root/tj/ rm -rf /root/trojan mv /root/tj/trojan /root/tj/tj chmod -R 777 /root/tj red "请务必将域名解析到此服务器ip" blue "是否申请证书(y/n) :" read isca [[ -z "$isca" ]] && isca="y" if [[ "$isca" == [Yy] ]]; then blue "请输域名 :" read your_domain elif [[ "$isca" == [Nn] ]]; then green "不申请证书" else red "error domain" exit fi blue "请输入端口号 默认(回车)443 :" read trojan_port if [[ $trojan_port == "" ]]; then trojan_port="443" testTrojanPort=$(netstat -tlpn | awk -F '[: ]+' '$1=="tcp"{print $5}' | grep -w $trojan_port) if [ -n "$testTrojanPort" ]; then trojan_port_process=$(netstat -tlpn | awk -F '[: ]+' '$5=='$trojan_port'{print $9}') red "===========================================================" red "检测到$trojan_port端口被占用,占用进程为:${trojan_port_process},本次安装结束" red "===========================================================" exit 1 fi fi blue "请输入密码 默认随机(回车) :" read trojan_pdw if [[ $trojan_pdw == "" ]]; then trojan_pdw=$(cat /dev/urandom | head -1 | md5sum | head -c 8) fi green " 已设置端口号: $trojan_port" green " 已设置密码: $trojan_pdw" cat >/root/tj/config.json <<-EOF { "run_type": "server", "local_addr": "0.0.0.0", "local_port": $trojan_port, "remote_addr": "cykablyat.date", "remote_port": 80, "password": [ "${trojan_pdw}" ], "log_level": 1, "ssl": { "cert": "fullchain.cer", "key": "private.key", "key_password": "", "cipher_tls13":"TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384", "prefer_server_cipher": true, "alpn": [ "http/1.1" ], "reuse_session": true, "session_ticket": true, "session_timeout": 600, "plain_http_response": "", "curves": "", "dhparam": "" }, "tcp": { "no_delay": false, "keep_alive": true, "fast_open": true, "fast_open_qlen": 20 }, "mysql": { "enabled": false, "server_addr": "127.0.0.1", "server_port": 3306, "database": "trojan", "username": "trojan", "password": "" } } EOF if [[ "$isca" == [Yy] ]]; then mkdir /root/tj/trojan-cert /root/tj/trojan-temp curl https://get.acme.sh | sh ~/.acme.sh/acme.sh --issue -d $your_domain --standalone ~/.acme.sh/acme.sh --installcert -d $your_domain \ --key-file /root/tj/private.key \ --fullchain-file /root/tj/fullchain.cer if test -s /root/tj/fullchain.cer; then green "================================" green "下载成功 申请证书成功" green "================================" else red " ================================" red "申请证书失败" red "================================" fi fi } RunTrojan() { keyFile="/root/tj/private.key" cerFile="/root/tj/fullchain.cer" if [ ! -f "$keyFile" ]; then red "证书不存在" exit fi if [ ! -f "$cerFile" ]; then red "证书不存在" exit fi trojanscreen_name="tj" screen -S $trojanscreen_name -X "quit" >/dev/null 2>&1 screen -dmS $trojanscreen_name sleep 2s cmd=$"/root/tj/tj -c /root/tj/config.json" screen -x -S $trojanscreen_name -p 0 -X stuff "$cmd" screen -x -S $trojanscreen_name -p 0 -X stuff $'\n' } StopTrojan() { trojanscreen_name="tj" screen -S $trojanscreen_name -X "quit" tjpid=`ps -ef | grep tj | grep -v grep | awk '{print $2}'` kill -9 $tjpid } start_menu() { green "———————————————————————————————— 1. 下载Gost 2. 运行gost来伪装站点 3. 停止gost 4. 下载trojan 5. 运行Trojan 6. 停止Trojan 9. 安装依赖 0. exit ————————————————————————————————" blue "请输入数字 :" read num case "$num" in 0) exit 1 ;; 1) DownLoadGost ;; 2) SetGost2cykablyat80 ;; 3) StopGost2cykablyat80 ;; 4) DownLoadTrojan ;; 5) RunTrojan ;; 6) StopTrojan ;; 9) installRely ;; *) clear echo -e "${Error}:请输入正确数字 " sleep 2s start_menu ;; esac } start_menu ``` [/login] 该部分仅登录用户可见 最后修改:2022 年 03 月 30 日 © 允许规范转载 打赏 赞赏作者 赞 如果觉得我的文章对你有用,请随意赞赏