├── README.md └── node.sh /README.md: -------------------------------------------------------------------------------- 1 | # node-tool 2 | 一款多功能sspanel后端工具箱 3 | 4 | ### 使用方法 5 | ```shell 6 | wget -N --no-check-certificate "https://raw.githubusercontent.com/linux-terminal/node-tool/master/node.sh" && bash node.sh 7 | ``` 8 | 9 | ### 功能说明 10 | - 一键安装docker版ssr 11 | - 一键安装docker版偏移端口ssr 12 | - 一键安装v2ray后端 13 | - 一键安装brook中转 14 | - 一键安装BBR加速 15 | - 一键重装系统 16 | - 一键配置DNS解锁 17 | - 一键设置swap 18 | 19 | ### 作者 20 | GitHub@linux-terminal 21 | 22 | **觉得好用请star!** 23 | -------------------------------------------------------------------------------- /node.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/bin:/sbin 3 | export PATH 4 | 5 | which yum >/dev/null 2>/dev/null 6 | if [ $? -ne 0 ]; then 7 | Main=apt-get 8 | else 9 | Main=yum 10 | fi 11 | 12 | function ssr(){ 13 | echo -e "\033[42;37m 正在检测docker运行状态 \033[0m" 14 | docker version > /dev/null || curl -fsSL get.docker.com | bash 15 | service docker restart 16 | 17 | echo -e "\033[42;37m 选择SSR安装版本 \033[0m" 18 | echo -e "\033[37m [1] docker版SSR普通版 \033[0m" 19 | echo -e "\033[37m [2] docker版SSR后端端口偏移版 \033[0m" 20 | echo -e "\033[41;33m 输入1或2进行选择: \033[0m" 21 | opt=0 22 | read opt 23 | echo " " 24 | echo "---------------------------------------------------------------------------" 25 | 26 | 27 | if [ "$opt"x = "1"x ]; then 28 | 29 | echo " " 30 | echo -e "\033[42;37m 请输入docker容器名 \033[0m 参考格式 ssrmu" 31 | read name 32 | echo " " 33 | 34 | echo " " 35 | echo -e "\033[42;37m 请输入对接域名 \033[0m 参考格式 http://sspanel.com" 36 | read host_1 37 | echo " " 38 | 39 | echo " " 40 | echo -e "\033[42;37m 请输入muKey \033[0m 参考格式 sspanel" 41 | read muKey_1 42 | echo " " 43 | 44 | echo " " 45 | echo -e "\033[42;37m 请输入节点ID \033[0m 参考格式 42" 46 | read nodeid_1 47 | echo " " 48 | 49 | echo " " 50 | echo "---------------------------------------------------------------------------" 51 | echo -e "\033[41;33m 请确认下列信息无误 \033[0m" 52 | echo -e "\033[41;33m docker容器名 \033[0m $name" 53 | echo -e "\033[42;37m 对接域名 \033[0m $host_1" 54 | echo -e "\033[42;37m muKey \033[0m $muKey_1" 55 | echo -e "\033[42;37m 节点ID \033[0m $nodeid_1" 56 | echo " " 57 | echo -e "\033[41;33m 回车以继续,ctrl+C退出 \033[0m" 58 | echo " " 59 | echo "---------------------------------------------------------------------------" 60 | 61 | 62 | docker run -d --name=ssrmu -e NODE_ID=$nodeid_1 -e API_INTERFACE=modwebapi -e WEBAPI_URL=$host_1 -e WEBAPI_TOKEN=nodeid_1 --network=host --log-opt max-size=50m --log-opt max-file=3 --restart=always fanvinga/docker-ssrmu 63 | 64 | echo -e "\033[42;37m 安装完成 \033[0m" 65 | 66 | 67 | elif [ "$opt"x = "2"x ]; then 68 | 69 | echo " " 70 | echo -e "\033[42;37m 请输入docker容器名 \033[0m 参考格式 ssrmu" 71 | read name 72 | echo " " 73 | 74 | echo " " 75 | echo -e "\033[42;37m 请输入对接域名 \033[0m 参考格式 http://sspanel.com" 76 | read host_2 77 | echo " " 78 | 79 | echo " " 80 | echo -e "\033[42;37m 请输入muKey \033[0m 参考格式 sspanel" 81 | read muKey_2 82 | echo " " 83 | 84 | echo " " 85 | echo -e "\033[42;37m 请输入节点ID \033[0m 参考格式 42" 86 | read nodeid_2 87 | echo " " 88 | 89 | echo " " 90 | echo -e "\033[42;37m 请输入原端口 \033[0m" 91 | read port_1 92 | echo " " 93 | 94 | echo " " 95 | echo -e "\033[42;37m 请输入偏移后端口 \033[0m" 96 | read port_2 97 | echo " " 98 | 99 | echo " " 100 | echo "---------------------------------------------------------------------------" 101 | echo -e "\033[41;33m 请确认下列信息无误 \033[0m" 102 | echo -e "\033[41;33m docker容器名 \033[0m $name" 103 | echo -e "\033[42;37m 对接域名 \033[0m $host_2" 104 | echo -e "\033[42;37m muKey \033[0m $muKey_2" 105 | echo -e "\033[42;37m 节点ID \033[0m $nodeid_2" 106 | echo -e "\033[42;37m 原端口 \033[0m $port_1" 107 | echo -e "\033[42;37m 偏转后端口 \033[0m $port_2" 108 | echo " " 109 | echo -e "\033[41;33m 回车以继续,ctrl+C退出 \033[0m" 110 | echo " " 111 | echo "---------------------------------------------------------------------------" 112 | 113 | docker run -d --name=ssrmuv2 -e NODE_ID=$nodeid_2 -e API_INTERFACE=modwebapi -e WEBAPI_URL=$host_2 -e SPEEDTEST=0 -e WEBAPI_TOKEN=$muKey_2 --log-opt max-size=50m --log-opt max-file=3 -p $port_2:$port_1/tcp -p $port_2:$port_1/udp --restart=always stone0906/ssrmuv2 114 | 115 | echo -e "\033[42;37m 安装完成 \033[0m" 116 | 117 | else 118 | echo -e "\033[42;37m 输入错误 \033[0m" 119 | echo " " 120 | bash ./node.sh 121 | 122 | fi 123 | } 124 | 125 | function v2ray_opt(){ 126 | echo -e "\033[42;37m 选择v2ray安装版本 \033[0m" 127 | echo -e "\033[37m [1] bash版v2ray \033[0m" 128 | echo -e "\033[37m [2] rico授权版v2ray \033[0m" 129 | echo -e "\033[41;33m 输入1或2进行选择: \033[0m" 130 | 131 | read opt 132 | echo " " 133 | echo "---------------------------------------------------------------------------" 134 | 135 | if [ "$opt"x = "1"x ]; then 136 | v2ray 137 | 138 | elif [ "$opt"x = "2"x ]; then 139 | v2rico 140 | 141 | else 142 | echo -e "\033[41;33m 输入错误 \033[0m" 143 | bash ./node.sh 144 | fi 145 | } 146 | 147 | function v2ray(){ 148 | echo "### v2ray后端一键对接脚本v1.0 ###" 149 | echo "### By Linux_Terminal ###" 150 | echo "### Update: 2020-03-16 ###" 151 | 152 | echo " " 153 | echo -e "\033[41;33m 本功能仅支持Debian 9,请勿在其他系统中运行 \033[0m" 154 | echo " " 155 | echo "---------------------------------------------------------------------------" 156 | echo " " 157 | 158 | echo " " 159 | echo -e "\033[42;37m 请输入对接域名 \033[0m 参考格式 http://sspanel.com" 160 | read host 161 | echo " " 162 | 163 | echo " " 164 | echo -e "\033[42;37m 请输入muKey \033[0m 参考格式 sspanel" 165 | read muKey 166 | echo " " 167 | 168 | echo " " 169 | echo -e "\033[42;37m 请输入节点ID \033[0m 参考格式 42" 170 | read nodeid 171 | echo " " 172 | 173 | echo " " 174 | echo "---------------------------------------------------------------------------" 175 | echo -e "\033[41;33m 请确认下列信息无误,任何失误需要重置操作系统!\033[0m" 176 | echo -e "\033[42;37m 对接域名 \033[0m $host" 177 | echo -e "\033[42;37m muKey \033[0m $muKey" 178 | echo -e "\033[42;37m 节点ID \033[0m $nodeid" 179 | echo " " 180 | echo -e "\033[41;33m 回车以继续,ctrl+C退出 \033[0m" 181 | echo " " 182 | echo "---------------------------------------------------------------------------" 183 | 184 | read -n 1 185 | apt-get update -y 186 | apt-get install curl -y 187 | bash <(curl -L -s https://raw.githubusercontent.com/linux-terminal/v2ray-sspanel-v3-mod_Uim-plugin-1/master/install-release.sh) \ 188 | --panelurl $host --panelkey $muKey --nodeid $nodeid \ 189 | --downwithpanel 1 --speedtestrate 6 --paneltype 0 --usemysql 0 190 | systemctl start v2ray.service 191 | echo " " 192 | echo " " 193 | echo -e "\033[42;37m 安装完成 \033[0m" 194 | } 195 | 196 | function v2rico(){ 197 | echo -e "\033[42;37m 正在检测docker运行状态 \033[0m" 198 | docker version > /dev/null || curl -fsSL get.docker.com | bash 199 | service docker restart 200 | 201 | echo "### v2ray rico授权版一键安装 ###" 202 | echo "### By Linux_Terminal ###" 203 | echo "### Update: 2020-04-01 ###" 204 | echo " " 205 | echo -e "\033[41;33m 请先获取rico授权 \033[0m" 206 | echo -e "\033[41;33m 授权链接\033[0m https://t.me/Rico_V2_bot" 207 | echo " " 208 | echo "---------------------------------------------------------------------------" 209 | echo " " 210 | 211 | echo " " 212 | echo -e "\033[42;37m 请输入docker容器名 \033[0m 参考格式 v2ray" 213 | read name 214 | echo " " 215 | 216 | echo " " 217 | echo -e "\033[42;37m 请输入对接域名 \033[0m 参考格式 http://sspanel.com" 218 | read host 219 | echo " " 220 | 221 | echo " " 222 | echo -e "\033[42;37m 请输入muKey \033[0m 参考格式 sspanel" 223 | read muKey 224 | echo " " 225 | 226 | echo " " 227 | echo -e "\033[42;37m 请输入节点ID \033[0m 参考格式 42" 228 | read nodeid 229 | echo " " 230 | 231 | echo " " 232 | echo "---------------------------------------------------------------------------" 233 | echo -e "\033[41;33m 请确认下列信息无误 \033[0m" 234 | echo -e "\033[41;33m docker容器名 \033[0m $name" 235 | echo -e "\033[42;37m 对接域名 \033[0m $host" 236 | echo -e "\033[42;37m muKey \033[0m $muKey" 237 | echo -e "\033[42;37m 节点ID \033[0m $nodeid" 238 | echo " " 239 | echo -e "\033[41;33m 回车以继续,ctrl+C退出 \033[0m" 240 | echo " " 241 | echo "---------------------------------------------------------------------------" 242 | 243 | read -n 1 244 | docker run -d --name=$name \ 245 | -e speedtest=0 -e api_port=2333 -e usemysql=0 -e downWithPanel=0 \ 246 | -e node_id=$nodeid -e sspanel_url=$host -e key=$muKey \ 247 | --log-opt max-size=10m --log-opt max-file=5 \ 248 | --network=host --restart=always \ 249 | a3v8meq8wcqn2twa/a3v8meq:4.22.1.8 250 | 251 | echo " " 252 | echo " " 253 | echo -e "\033[42;37m 安装完成 \033[0m" 254 | 255 | } 256 | 257 | function bbr(){ 258 | wget -N --no-check-certificate "https://github.com/ylx2016/Linux-NetSpeed/releases/download/sh/tcp.sh" && chmod +x tcp.sh && ./tcp.sh 259 | } 260 | 261 | function brook(){ 262 | wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubiBackup/doubi/master/brook-pf.sh && chmod +x brook-pf.sh && bash brook-pf.sh 263 | } 264 | 265 | function dd(){ 266 | echo -e "\033[41;33m 请选择需要安装的操作系统 \033[0m" 267 | echo -e "\033[42;37m [1] \033[0m Debian" 268 | echo -e "\033[42;37m [2] \033[0m Ubuntu" 269 | echo -e "\033[42;37m [3] \033[0m Cent OS" 270 | echo -e "\033[37m 请选择 \033[0m" 271 | os=null 272 | read opt 273 | if [ "$opt"x = "1"x ]; then 274 | os=d 275 | 276 | elif [ "$opt"x = "2"x ]; then 277 | os=u 278 | 279 | elif [ "$opt"x = "3"x ]; then 280 | os=c 281 | 282 | else 283 | echo -e "\033[41;33m 输入错误 \033[0m" 284 | bash ./node.sh 285 | 286 | fi 287 | echo " " 288 | 289 | echo " " 290 | echo -e "\033[41;33m 输入发行版本 \033[0m" 291 | echo -e "\033[37m 例如:Debian [9] Cent OS [7] \033[0m" 292 | read v 293 | echo " " 294 | 295 | echo " " 296 | echo -e "\033[41;33m 镜像类型 \033[0m" 297 | echo -e "\033[42;37m [1] \033[0m 32位" 298 | echo -e "\033[42;37m [2] \033[0m 64位" 299 | opt=0 300 | read opt 301 | if [ "$opt"x = "1"x ]; then 302 | type=32 303 | 304 | elif [ "$opt"x = "2"x ]; then 305 | type=64 306 | else 307 | echo -e "\033[41;33m 输入错误 \033[0m" 308 | bash ./node.sh 309 | fi 310 | echo " " 311 | 312 | echo " " 313 | echo -e "\033[41;33m 请输入root密码 \033[0m" 314 | read password 315 | echo " " 316 | 317 | echo " " 318 | echo "---------------------------------------------------------------------------" 319 | echo -e "\033[41;33m 请确认下列信息无误,任何失误需要重置操作系统!\033[0m" 320 | echo -e "\033[42;37m 操作系统 \033[0m $os" 321 | echo -e "\033[42;37m 发行版本 \033[0m $v" 322 | echo -e "\033[42;37m 镜像类型 \033[0m $type 位" 323 | echo -e "\033[42;37m root密码 \033[0m $password" 324 | echo " " 325 | echo -e "\033[41;33m 回车以继续,ctrl+C退出 \033[0m" 326 | echo " " 327 | echo "---------------------------------------------------------------------------" 328 | read -n 1 329 | echo " " 330 | echo -e "\033[37m 开始安装,请静候10min! \033[0m" 331 | 332 | bash <(wget --no-check-certificate -qO- 'https://moeclub.org/attachment/LinuxShell/InstallNET.sh') -$os $v -v $type -a -p $password 333 | } 334 | 335 | function dns(){ 336 | echo -e "\033[41;33m 请选择需要安装的内容 \033[0m" 337 | echo -e "\033[42;37m [1] \033[0m 配置Dnsmasq" 338 | echo -e "\033[42;37m [2] \033[0m 配置DNS" 339 | echo -e "\033[37m 请选择 \033[0m" 340 | echo " " 341 | read opt 342 | 343 | if [ "$opt"x = "1"x ]; then 344 | echo "\033[42;37m [1] \033[0m 安装Dnsmasq" 345 | echo "\033[42;37m [2] \033[0m 卸载Dnsmasq" 346 | read opt 347 | 348 | if [ "$opt"x = "1"x ]; then 349 | wget --no-check-certificate -O dnsmasq_sniproxy.sh https://github.com/myxuchangbin/dnsmasq_sniproxy_install/raw/master/dnsmasq_sniproxy.sh && bash dnsmasq_sniproxy.sh -i 350 | elif [ "$opt"x = "2"x ]; then 351 | wget --no-check-certificate -O dnsmasq_sniproxy.sh https://github.com/myxuchangbin/dnsmasq_sniproxy_install/raw/master/dnsmasq_sniproxy.sh && bash dnsmasq_sniproxy.sh -u 352 | else 353 | echo -e "\033[41;33m 输入错误 \033[0m" 354 | bash ./node.sh 355 | fi 356 | elif [ "$opt"x = "2"x ]; then 357 | echo -e "\033[41;33m 输入DNS服务器IP \033[0m" 358 | read unlock_ip 359 | chattr -i /etc/resolv.conf && echo -e "nameserver $unlock_ip" > /etc/resolv.conf && chattr +i /etc/resolv.conf && systemd-resolve --flush-caches 360 | echo "---------------------------------------------------------------------------" 361 | echo -e "\033[41;33m 请确认下列信息无误,任何失误需要重置操作系统!\033[0m" 362 | echo " " 363 | echo -e "\033[42;37m DNS服务器IP \033[0m $unlock_ip" 364 | echo -e "\033[41;33m 回车以继续,ctrl+C退出 \033[0m" 365 | echo " " 366 | echo "---------------------------------------------------------------------------" 367 | 368 | echo " " 369 | read -n 1 370 | 371 | echo " " 372 | echo -e "\033[41;33m 配置成功,需要重启服务器,是否继续?(Y/n) \033[0m" 373 | read opt 374 | if [ "$opt"x = "Y"x ]; then 375 | reboot 376 | else 377 | bash ./node.sh 378 | fi 379 | fi 380 | } 381 | 382 | function donate (){ 383 | $Main install qrencode -y 384 | echo -e "\033[42;37m [1] \033[0m 支付宝" 385 | echo -e "\033[42;37m [2] \033[0m 微信" 386 | echo " " 387 | read opt 388 | 389 | if [ "$opt"x = "1"x ]; then 390 | qrencode -l M -t UTF8 -k https://qr.alipay.com/fkx15280wdabfli9wnmdp1c 391 | 392 | elif [ "$opt"x = "2"x ]; then 393 | qrencode -l M -t UTF8 -k wxp://f2f1VUKyDPTr-BCsZHsqHsSBlbxI32o1zway 394 | 395 | else 396 | echo -e "\033[41;33m 输入错误 \033[0m" 397 | bash ./node.sh 398 | fi 399 | 400 | echo -e "\033[41;33m 感谢您的支持 \033[0m" 401 | } 402 | 403 | function swap(){ 404 | wget https://www.moerats.com/usr/shell/swap.sh && bash swap.sh 405 | } 406 | 407 | function menu(){ 408 | echo "### node tool v3.0 ###" 409 | echo "### By Twitter@Linux_Terminal ###" 410 | echo "### Update: 2020-04-01 ###" 411 | echo "" 412 | echo -e "\033[41;33m 适用环境 Debian/Ubuntu/Cent OS \033[0m" 413 | echo "---------------------------------------------------------------------------" 414 | 415 | echo -e "\033[42;37m [1] \033[0m 安装docker版SSR后端" 416 | echo -e "\033[42;37m [2] \033[0m 安装v2ray后端" 417 | echo -e "\033[42;37m [3] \033[0m 安装brook中转后端" 418 | echo -e "\033[42;37m [4] \033[0m 安装bbr加速" 419 | echo -e "\033[42;37m [5] \033[0m 一键重装纯净系统" 420 | echo -e "\033[42;37m [6] \033[0m 一键配置DNS解锁" 421 | echo -e "\033[42;37m [7] \033[0m 一键设置swap" 422 | echo -e "\033[42;37m [0] \033[0m 捐赠开发者" 423 | echo -e "\033[41;33m 请输入选项以继续,ctrl+C退出 \033[0m" 424 | 425 | opt=0 426 | read opt 427 | if [ "$opt"x = "1"x ]; then 428 | ssr 429 | 430 | elif [ "$opt"x = "2"x ]; then 431 | v2ray_opt 432 | 433 | elif [ "$opt"x = "3"x ]; then 434 | brook 435 | 436 | elif [ "$opt"x = "4"x ]; then 437 | bbr 438 | 439 | elif [ "$opt"x = "5"x ]; then 440 | dd 441 | 442 | elif [ "$opt"x = "6"x ]; then 443 | dns 444 | 445 | elif [ "$opt"x = "7"x ]; then 446 | swap 447 | 448 | elif [ "$opt"x = "0"x ]; then 449 | donate 450 | 451 | else 452 | echo -e "\033[41;33m 输入错误 \033[0m" 453 | bash ./node.sh 454 | fi 455 | } 456 | 457 | menu 458 | --------------------------------------------------------------------------------