Prechádzať zdrojové kódy

整合重置客户端代码,微调颜色

hongwenjun 6 rokov pred
rodič
commit
dc10bc01d0
3 zmenil súbory, kde vykonal 84 pridanie a 121 odobranie
  1. 4 5
      Wireguard/wg5clients.sh
  2. 0 78
      Wireguard/wg_clients.sh
  3. 80 38
      Wireguard/wgmtu.sh

+ 4 - 5
Wireguard/wg5clients.sh

@@ -36,7 +36,7 @@ if [ ! -f '/usr/bin/wg' ]; then
     echo -e "${RedBG}   一键安装 WireGuard 脚本 For Debian_9 Ubuntu Centos_7   ${Font}"
     echo -e "${GreenBG}     开源项目:https://github.com/hongwenjun/vps_setup    ${Font}"
     help_info
-    echo -e "${RedBG}   检测到你的vps没有正确选择脚本,请使用对应系统的脚本安装   ${Font}"
+    echo -e "${Red}::  检测到你的vps没有安装wireguard,请选择复制一键脚本安装   ${Font}"
     exit 1
 fi
 #############################################################
@@ -52,11 +52,10 @@ rand(){
 }
 
 port=$(rand 1000 60000)
-
 mtu=1420
 host=$(hostname -s)
 
-ip_list=(2 5 8 178 188 118 158 198 168 9)
+ip_list=(2 5 8 178 186 118 158 198 168 9)
 
 # 获得服务器ip,自动获取
 if [ ! -f '/usr/bin/curl' ]; then
@@ -94,7 +93,7 @@ MTU = $mtu
 
 [Peer]
 PublicKey = $(cat cpublickey)
-AllowedIPs = 10.0.0.218/32
+AllowedIPs = 10.0.0.0/32
 
 EOF
 
@@ -102,7 +101,7 @@ EOF
 cat <<EOF >client.conf
 [Interface]
 PrivateKey = $(cat cprivatekey)
-Address = 10.0.0.218/24
+Address = 10.0.0.188/24
 DNS = 8.8.8.8
 #  MTU = $mtu
 #  PreUp =  start   .\route\routes-up.bat

+ 0 - 78
Wireguard/wg_clients.sh

@@ -1,78 +0,0 @@
-#!/bin/bash
-
-# 服务器 IP 和 端口
-port=$(wg show wg0 listen-port)
-serverip=$(curl -4 ip.sb)
-host=$(hostname -s)
-
-#定义文字颜色
-Green="\033[32m"  && Red="\033[31m" && GreenBG="\033[42;37m" && RedBG="\033[41;37m" && Font="\033[0m"
-
-#定义提示信息
-Info="${Green}[信息]${Font}"  &&  OK="${Green}[OK]${Font}"  &&  Error="${Red}[错误]${Font}"
-
-# 转到wg配置文件目录
-cd /etc/wireguard
-cp wg0.conf  conf.wg0.bak
-
-echo -e   "${RedBG}  重置 WireGuard 客户端 Peer 数量  ${Font}"
-echo
-echo -e "${GreenBG} 请输入客户端配置数量 ${Font}"
-read -p "请输入数字(3--218): " num_x
-
-if [[ ${num_x} -ge 3 ]] && [[ ${num_x} -le 218 ]]; then
- wg_num=OK
-else
-  num_x=5
-fi
-
-# 删除原1号配置,让IP和配置号对应; 保留原来服务器的端口等配置
-rm  /etc/wireguard/wg_${host}_*   >/dev/null 2>&1
-head -n 13  conf.wg0.bak > wg0.conf
-
-# 修改用户配置数量
-for i in `seq 2 250`
-do
-    ip=10.0.0.${i}
-    wg genkey | tee cprivatekey | wg pubkey > cpublickey
-
-    cat <<EOF >>wg0.conf
-[Peer]
-PublicKey = $(cat cpublickey)
-AllowedIPs = $ip/32
-
-EOF
-
-    cat <<EOF >wg_${host}_$i.conf
-[Interface]
-PrivateKey = $(cat cprivatekey)
-Address = $ip/24
-DNS = 8.8.8.8
-
-[Peer]
-PublicKey = $(cat spublickey)
-Endpoint = $serverip:$port
-AllowedIPs = 0.0.0.0/0, ::0/0
-PersistentKeepalive = 25
-
-EOF
-    cat /etc/wireguard/wg_${host}_$i.conf| qrencode -o wg_${host}_$i.png
-
-    if [ $i -ge $num_x ]; then
-        break
-    fi
-done
-
-# 重启wg服务器
-wg-quick down wg0  >/dev/null 2>&1
-wg-quick up wg0    >/dev/null 2>&1
-wg
-
-cat /etc/wireguard/client.conf
-cat /etc/wireguard/wg_${host}_2.conf
-cat /etc/wireguard/wg_${host}_3.conf
-echo -e "${RedBG}   一键安装 WireGuard 脚本 For Debian_9 Ubuntu Centos_7   ${Font}"
-echo -e "${GreenBG}     开源项目:https://github.com/hongwenjun/vps_setup    ${Font}"
-echo
-echo -e "# ${Info} 使用${GreenBG} bash wg5 ${Font} 命令,可以临时网页下载配置和二维码"
-echo -e "# ${Info} 使用${GreenBG} bash wgmtu ${Font} 命令,重置客户端数量,设置服务器端MTU数值或服务端口号 "

+ 80 - 38
Wireguard/wgmtu.sh

@@ -6,8 +6,7 @@ Yellow='\033[0;33m' && SkyBlue='\033[0;36m'
 
 # 修改mtu数值
 setmtu(){
-    echo -e "${GreenBG}WireGuard 修改服务器端MTU值,最大效率加大网速,默认值 MTU = 1420 "
-    echo -e "WireGuard 客户端可以MTU参数自动,请修改电脑客户端TunSafe配置把MTU行注释掉。${Font}"
+    echo -e "${GreenBG}WireGuard 修改服务器端MTU值,提高效率;默认值MTU=1420${Font}"
     read -p "请输入数字(1200--1500): " num
 
     if [[ ${num} -ge 1200 ]] && [[ ${num} -le 1500 ]]; then
@@ -16,11 +15,9 @@ setmtu(){
        mtu=1420
     fi
 
-    wg-quick down wg0
-    sed -i "s/MTU = .*$/MTU = ${mtu}/g"  /etc/wireguard/wg0.conf
-
-    wg-quick up wg0
-    echo -e "${RedBG}    服务器端MTU值已经修改!    ${Font}"
+    ip link set mtu $num up dev wg0
+    wg-quick save wg0
+    echo -e "${SkyBlue}:: 服务器端MTU值已经修改!${Font}"
 }
 
 # 修改端口号
@@ -33,16 +30,16 @@ setport(){
        wg set wg0 listen-port $port
        wg-quick save wg0
 
-       echo -e "${RedBG}    端口号已经修改, 客户端请手工修改!  ${Font}"
+       echo -e "${SkyBlue}:: 端口号已经修改, 客户端请手工修改! ${Font}"
     else
-       echo -e "${RedBG}    没有修改端口号!    ${Font}"
+       echo -e "${Red}:: 没有修改端口号!${Font}"
     fi
 }
 
 # 显示手机客户端二维码
-wgconf(){
-    echo -e "${RedBG}:: 显示手机客户端二维码  (如改端口,请先菜单5重置客户端配置)  ${Font}"
-    read -p "请输入数字(2-9),默认2号: " x
+conf_QRcode(){
+    echo -e "${Yellow}:: 显示手机客户端二维码(默认2号),请输入数字${Font}\c"
+    read -p "(2-9): " x
 
     if [[ ${x} -ge 2 ]] && [[ ${x} -le 9 ]]; then
        i=$x
@@ -52,16 +49,67 @@ wgconf(){
 
     host=$(hostname -s)
     cat /etc/wireguard/wg_${host}_$i.conf | qrencode -o - -t UTF8
-    echo -e "${GreenBG}:: 配置文件: wg_${host}_$i.conf 生成二维码,请用手机客户端扫描使用  ${Font}"
-    echo -e "${RedBG}SSH工具推荐Git-Bash 2.20; GCP_SSH(浏览器)字体Courier New 二维码正常${Font}"
+    echo -e "${Green}:: 配置文件: wg_${host}_$i.conf 生成二维码,请用手机客户端扫描使用${Font}"
+    echo -e "${SkyBlue}:: SSH工具推荐Git-Bash 2.20; GCP_SSH(浏览器)字体Courier New 二维码正常${Font}"
 }
 
 # 重置 WireGuard 客户端配置和数量
 wg_clients(){
-    echo -e "${RedBG}:: 注意原来的客户端配置都会删除,按 Ctrl+ C 可以紧急撤销  ${Font}"
-    wget -O ~/wg100  https://git.io/fp6r0    >/dev/null 2>&1
-    bash ~/wg100
-    rm   ~/wg100
+    echo -e "${Red}:: 注意原来的客户端配置都会删除,按 Ctrl+ C 可以紧急撤销  ${Font}"
+
+    # 转到wg配置文件目录
+    cd /etc/wireguard
+    cp wg0.conf  conf.wg0.bak
+
+    echo -e "${SkyBlue}:: 输入客户端Peer总数${Font}\c"
+    read -p "(2--200): " num_x
+
+    if [[ ${num_x} -ge 2 ]] && [[ ${num_x} -le 250 ]]; then
+     wg_num=OK
+    else
+      num_x=3
+    fi
+
+    # 服务器 IP 和 端口
+    port=$(wg show wg0 listen-port) && host=$(hostname -s)
+    serverip=$(curl -4 ip.sb)
+
+    # 删除原配置,让IP和ID号对应; 保留原来服务器的端口等配置
+    rm  /etc/wireguard/wg_${host}_*   >/dev/null 2>&1
+    head -n 13  conf.wg0.bak > wg0.conf
+
+    # 重启wg服务器
+    wg-quick down wg0  >/dev/null 2>&1
+    wg-quick up wg0    >/dev/null 2>&1
+
+    # 重新生成用户配置数量
+    for i in `seq 2 250`
+    do
+        ip=10.0.0.${i}
+        wg genkey | tee cprivatekey | wg pubkey > cpublickey
+        wg set wg0 peer $(cat cpublickey) allowed-ips $ip/32
+
+        cat <<EOF >wg_${host}_$i.conf
+[Interface]
+PrivateKey = $(cat cprivatekey)
+Address = $ip/24
+DNS = 8.8.8.8
+
+[Peer]
+PublicKey = $(wg show wg0 public-key)
+Endpoint = $serverip:$port
+AllowedIPs = 0.0.0.0/0, ::0/0
+PersistentKeepalive = 25
+
+EOF
+        cat wg_${host}_$i.conf | qrencode -o wg_${host}_$i.png
+        if [ $i -ge $num_x ]; then break; fi
+    done
+
+    wg-quick save wg0
+    clear && display_peer
+    cat /etc/wireguard/wg_${host}_2.conf
+    echo -e "${SkyBlue}:: 使用${GreenBG} bash wg5 ${SkyBlue}命令,可以临时网页下载配置和二维码${Font}"
 }
 
 # 安装Udp2Raw服务TCP伪装,加速功能
@@ -151,7 +199,7 @@ safe_iptables(){
 }
 
 # 更新wgmtu脚本
-update(){
+update_self(){
     # 安装 bash wgmtu 脚本用来设置服务器
     wget -O ~/wgmtu  https://raw.githubusercontent.com/hongwenjun/vps_setup/master/Wireguard/wgmtu.sh >/dev/null 2>&1
 }
@@ -213,27 +261,23 @@ del_last_peer(){
     peer_key=$(wg show wg0 allowed-ips  | tail -1 | awk '{print $1}')
     wg set wg0 peer $peer_key remove
     wg-quick save wg0
-    echo -e "${SkyBlue}删除客户端 peer: ${Yellow} ${peer_key} ${SkyBlue} 完成.${Font}"
+    echo -e "${SkyBlue}:: 删除客户端 peer: ${Yellow} ${peer_key} ${SkyBlue} 完成.${Font}"
 }
 
 # 显示激活Peer表
 display_peer(){
     # peer和ip表写临时文件
     wg show wg0 allowed-ips > /tmp/peer_list
-    peer_cnt=$(cat /tmp/peer_list | wc -l)
 
     # 显示 peer和ip表
     echo -e  "${RedBG} ID ${GreenBG}         Peer:  <base64 public key>         ${SkyBlue}  IP_Addr:  ${Font}"
-    for i in `seq 1 250`
-    do
-        peer=$(cat /tmp/peer_list | head -n $i | tail -1 | awk '{print $1}')
-        ip=$(cat /tmp/peer_list | head -n $i | tail -1 | awk '{print $2}')
+    i=1
+    while read -r line || [[ -n $line ]]; do
+        peer=$(echo $line | awk '{print $1}')
+        ip=$(echo $line | awk '{print $2}')
         line="> ${Red}${i}   ${Yellow}${peer}${Font}   ${ip}"
-        echo -e $line
-        if [ $i -ge $peer_cnt ]; then
-            break
-        fi
-    done
+        echo -e $line  &&  let i++
+    done < /tmp/peer_list
 }
 
 # 选择删除Peer客户端
@@ -248,20 +292,18 @@ del_peer(){
         peer_key=$(cat /tmp/peer_list | head -n $i | tail -1 | awk '{print $1}')
         wg set wg0 peer $peer_key remove
         wg-quick save wg0
-        echo -e "${SkyBlue}删除客户端 peer: ${Yellow} ${peer_key} ${SkyBlue} 完成.${Font}"
+        echo -e "${SkyBlue}:: 删除客户端 peer: ${Yellow} ${peer_key} ${SkyBlue} 完成.${Font}"
     else
-        echo -e "命令使用: ${GreenBG} wg set wg0 peer <base64 public key> remove ${Font}"
+        echo -e "${SkyBlue}:: 命令使用: ${GreenBG} wg set wg0 peer <base64 public key> remove ${Font}"
     fi
-
     rm /tmp/peer_list
 }
 
-
 # 添加新的客户端peer
 add_peer(){
 
     # 服务器 IP 端口 ,新客户端 序号和IP
-    port=$(wg | grep 'listening port:' | awk '{print $3}')
+    port=$(wg show wg0 listen-port)
     serverip=$(curl -4 ip.sb) && host=$(hostname -s) && cd /etc/wireguard
     wg genkey | tee cprivatekey | wg pubkey > cpublickey
 
@@ -289,7 +331,7 @@ EOF
     # 显示客户端
     cat /etc/wireguard/wg_${host}_$i.conf | qrencode -o wg_${host}_$i.png
     cat /etc/wireguard/wg_${host}_$i.conf | qrencode -o - -t UTF8
-    echo -e "${SkyBlue}新客户端peer添加完成; 文件:${Yellow} /etc/wireguard/wg_${host}_$i.conf ${Font}"
+    echo -e "${SkyBlue}:: 新客户端peer添加完成; 文件:${Yellow} /etc/wireguard/wg_${host}_$i.conf ${Font}"
     cat /etc/wireguard/wg_${host}_$i.conf
 }
 
@@ -345,7 +387,7 @@ start_menu(){
     read -p "请输入数字(1-8):" num
     case "$num" in
         1)
-        wgconf
+        conf_QRcode
         ;;
         2)
         setmtu
@@ -361,7 +403,7 @@ start_menu(){
         ;;
         6)
         update_remove_menu
-        update
+        update_self
         exit 1
         ;;
         7)