wgmtu.sh 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. #!/bin/bash
  2. # 定义文字颜色
  3. Green="\033[32m" && Red="\033[31m" && GreenBG="\033[42;37m" && RedBG="\033[41;37m" && Font="\033[0m"
  4. # 修改mtu数值
  5. setmtu(){
  6. echo -e "${GreenBG}WireGuard 修改服务器端MTU值,最大效率加大网速,默认值 MTU = 1420 "
  7. echo -e "WireGuard 客户端可以MTU参数自动,请修改电脑客户端TunSafe配置把MTU行注释掉。${Font}"
  8. read -p "请输入数字(1200--1500): " num
  9. if [[ ${num} -ge 1200 ]] && [[ ${num} -le 1500 ]]; then
  10. mtu=$num
  11. else
  12. mtu=1420
  13. fi
  14. wg-quick down wg0
  15. sed -i "s/MTU = .*$/MTU = ${mtu}/g" /etc/wireguard/wg0.conf
  16. wg-quick up wg0
  17. echo -e "${RedBG} 服务器端MTU值已经修改! ${Font}"
  18. }
  19. # 修改端口号
  20. setport(){
  21. echo -e "${GreenBG}修改 WireGuard 服务器端端口号,客户端要自行修改${Font}"
  22. read -p "请输入数字(100--60000): " num
  23. if [[ ${num} -ge 100 ]] && [[ ${num} -le 60000 ]]; then
  24. port=$num
  25. wg-quick down wg0
  26. sed -i "s/ListenPort = .*$/ListenPort = ${port}/g" /etc/wireguard/wg0.conf
  27. wg-quick up wg0
  28. echo -e "${RedBG} 端口号已经修改! ${Font}"
  29. else
  30. echo -e "${RedBG} 没有修改端口号! ${Font}"
  31. fi
  32. }
  33. wgconf()
  34. {
  35. echo -e "${RedBG}:: 显示手机客户端二维码 (如改端口,请先菜单5重置客户端配置) ${Font}"
  36. read -p "请输入数字(2-9),默认2号: " x
  37. if [[ ${x} -ge 2 ]] && [[ ${x} -le 9 ]]; then
  38. i=$x
  39. else
  40. i=2
  41. fi
  42. host=$(hostname -s)
  43. cat /etc/wireguard/wg_${host}_$i.conf | qrencode -o - -t UTF8
  44. echo -e "${GreenBG}:: 配置文件: wg_${host}_$i.conf 生成二维码,请用手机客户端扫描使用 ${Font}"
  45. }
  46. wg_clients()
  47. {
  48. echo -e "${RedBG}:: 注意原来的客户端配置都会删除,按 Ctrl+ C 可以紧急撤销 ${Font}"
  49. read -p "请任意键继续:" xx
  50. wget -O ~/wg100 https://git.io/fp6r0 >/dev/null 2>&1
  51. bash ~/wg100
  52. }
  53. udp2raw()
  54. {
  55. wget -qO- https://git.io/fpKnF | bash
  56. echo -e "${RedBG}:: WireGuard 使用 Udp2Raw 需要把 MTU 设置成1200-1300 ${Font}"
  57. echo -e "${GreenBG}:: 您可以在本脚本基础上,修改成加速脚本!... 你懂的!${Font}"
  58. }
  59. # 隐藏功能:从源VPS克隆服务端配置,共用客户端配置
  60. scp_conf()
  61. {
  62. echo -e "${RedBG}:: 警告: 警告: 警告: VPS服务器已经被GFW防火墙关照,按 Ctrl+ C 可以紧急逃离! ${Font}"
  63. echo "隐藏功能:从源VPS克隆服务端配置,共用客户端配置"
  64. read -p "请输入源VPS的IP地址(域名):" vps_ip
  65. cmd="scp root@${vps_ip}:/etc/wireguard/* /etc/wireguard/. "
  66. echo -e "${RedBG}# ${cmd} ${Font} 现在运行scp命令,按提示输入yes,原vps的root密码"
  67. ${cmd}
  68. wg-quick down wg0 >/dev/null 2>&1
  69. wg-quick up wg0 >/dev/null 2>&1
  70. echo -e "${RedBG} WG服务器端,已经使用源vps的配置启动! ${Font}"
  71. }
  72. # 设置菜单
  73. start_menu(){
  74. echo -e "${RedBG} 一键安装 WireGuard 脚本 For Debian_9 Ubuntu Centos_7 ${Font}"
  75. echo -e "${GreenBG} 开源项目:https://github.com/hongwenjun/vps_setup ${Font}"
  76. echo -e "${Green}> 1. 显示手机客户端二维码"
  77. echo -e "> 2. 修改 WireGuard 服务器端 MTU 值"
  78. echo -e "> 3. 修改 WireGuard 端口号 (如改端口,菜单5重置客户端配置)"
  79. echo -e "> 4. 安装Udp2Raw服务TCP伪装 WireGuard 服务端设置"
  80. echo -e "> 5. 重置 WireGuard 客户端配置和数量,方便修改过端口或者机场大佬"
  81. echo -e "> 6. 退出设置${Font}"
  82. echo
  83. read -p "请输入数字(1-6):" num
  84. case "$num" in
  85. 1)
  86. wgconf
  87. ;;
  88. 2)
  89. setmtu
  90. ;;
  91. 3)
  92. setport
  93. ;;
  94. 4)
  95. udp2raw
  96. ;;
  97. 5)
  98. wg_clients
  99. ;;
  100. 6)
  101. exit 1
  102. ;;
  103. 88)
  104. scp_conf
  105. ;;
  106. *)
  107. echo
  108. echo "请输入正确数字"
  109. ;;
  110. esac
  111. }
  112. start_menu