centos7_wireguard_install.sh 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #!/bin/bash
  2. # Centos 安装脚本源 https://github.com/atrandys/wireguard
  3. #判断系统
  4. if [ ! -e '/etc/redhat-release' ]; then
  5. echo "仅支持centos7"
  6. exit
  7. fi
  8. if [ -n "$(grep ' 6\.' /etc/redhat-release)" ] ;then
  9. echo "仅支持centos7"
  10. exit
  11. fi
  12. #更新内核
  13. update_kernel(){
  14. yum -y install epel-release curl
  15. sed -i "0,/enabled=0/s//enabled=1/" /etc/yum.repos.d/epel.repo
  16. yum remove -y kernel-devel
  17. rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
  18. rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
  19. yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
  20. yum -y --enablerepo=elrepo-kernel install kernel-ml
  21. sed -i "s/GRUB_DEFAULT=saved/GRUB_DEFAULT=0/" /etc/default/grub
  22. grub2-mkconfig -o /boot/grub2/grub.cfg
  23. wget https://elrepo.org/linux/kernel/el7/x86_64/RPMS/kernel-ml-devel-4.19.1-1.el7.elrepo.x86_64.rpm
  24. rpm -ivh kernel-ml-devel-4.19.1-1.el7.elrepo.x86_64.rpm
  25. yum -y --enablerepo=elrepo-kernel install kernel-ml-devel
  26. read -p "需要重启VPS,再次执行脚本选择安装wireguard,是否现在重启 ? [Y/n] :" yn
  27. [ -z "${yn}" ] && yn="y"
  28. if [[ $yn == [Yy] ]]; then
  29. echo -e "VPS 重启中..."
  30. reboot
  31. fi
  32. }
  33. #centos7安装wireguard
  34. wireguard_install(){
  35. curl -Lo /etc/yum.repos.d/wireguard.repo https://copr.fedorainfracloud.org/coprs/jdoss/wireguard/repo/epel-7/jdoss-wireguard-epel-7.repo
  36. yum install -y epel-release
  37. yum install -y wireguard-dkms wireguard-tools
  38. yum -y install qrencode iptables-services
  39. systemctl stop firewalld && systemctl disable firewalld
  40. systemctl enable iptables && systemctl start iptables
  41. iptables -F && service iptables save && service iptables restart
  42. echo 1 > /proc/sys/net/ipv4/ip_forward
  43. echo "net.ipv4.ip_forward = 1" > /etc/sysctl.conf
  44. mkdir -p /etc/wireguard
  45. cd /etc/wireguard
  46. wg genkey | tee sprivatekey | wg pubkey > spublickey
  47. wg genkey | tee cprivatekey | wg pubkey > cpublickey
  48. chmod 777 -R /etc/wireguard
  49. }
  50. # Bash执行选项 kernel 升级内核 默认安装 wireguard
  51. if [[ $# > 0 ]];then
  52. key="$1"
  53. case $key in
  54. kernel)
  55. update_kernel
  56. ;;
  57. esac
  58. else
  59. wireguard_install
  60. # 一键 WireGuard 多用户配置共享脚本
  61. wget -qO- https://git.io/fpnQt | bash
  62. fi