代码拉取完成,页面将自动刷新
同步操作将从 李德银/OpenVpnControl 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#!/bin/bash
#系统负载请使用负载脚本
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
#######
rm -rf /bin/gcore
rm -rf /bin/gdb
rm -rf /bin/heyixiao
# 接收用户自定义的信息
Installation_options() {
clear
echo
echo -e "\033[1;42;37m尊敬的用户您好,搭建FAS系统之前请您先自定义以下信息,如不会填写请直接回车默认即可!\033[0m"
echo
sleep 1
read -p "请设置后台账号(默认admin): " zsykjadminuser
if [ -z "$zsykjadminuser" ]; then
zsykjadminuser=admin
fi
echo -e "已设置后台账号为:\033[32m "$zsykjadminuser"\033[0m"
echo
read -p "请设置后台密码(默认随机): " zsykjadminpass
if [ -z "$zsykjadminpass" ]; then
zsykjadminpass=$(
date +%s%N | md5sum | head -c 20
echo
)
fi
echo -e "已设置后台密码为:\033[32m "$zsykjadminpass"\033[0m"
echo
read -p "请设置Apache端口(默认1024,禁用80): " zsykjApacheport
if [ -z "$zsykjApacheport" ]; then
zsykjApacheport=1024
fi
echo -e "已设置Apache端口为:\033[32m http://"$IP":"$zsykjApacheport"\033[0m"
echo
read -p "请设置MySQL密码(默认随机): " zsykjsqlpass
if [ -z "$zsykjsqlpass" ]; then
zsykjsqlpass=$(
date +%s%N | md5sum | head -c 20
echo
)
fi
echo -e "已设置MySQL密码为:\033[32m "$zsykjsqlpass"\033[0m"
echo -e "\033[1;5;31m所有信息已收集完成!即将为您安装FAS系统!\033[0m"
sleep 3
clear
echo -e "\033[1;32m安装开始...\033[0m"
}
# 替换yum源
replace_yum() {
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak
cp /root/OpenVpnControl/dependence/Centos-7.repo /etc/yum.repos.d/CentOS-Base.repo
yum clean all
yum makecache
#防止搭建出错,更新系统
yum -y update
}
# 关闭Selinux
Close_Selinux() {
echo "正在关闭Selinux....."
yum -y install docker
setenforce 0
if [ ! -f /etc/selinux/config ]; then
echo "警告!SELinux关闭失败,安装无法继续,请联系管理员修复!"
exit
fi
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
}
# 修改防火墙
Install_firewall() {
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl stop iptables.service
yum -y install iptables iptables-services
systemctl start iptables.service
#清空iptables防火墙配置
iptables -F
service iptables save
systemctl restart iptables.service
if [[ $? -eq 0 ]]; then
echo "IPtables安装成功!"
else
echo "警告!IPtables启动失败!请联系管理员修复!脚本停止!"
exit
fi
iptables -A INPUT -s 127.0.0.1/32 -j ACCEPT
iptables -A INPUT -d 127.0.0.1/32 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport $zsykjApacheport -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 27972 -j ACCEPT #搬瓦工端口
iptables -A INPUT -p tcp -m tcp --dport 440 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 3389 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 1194 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 1195 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 1196 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 1197 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 138 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 137 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 137 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 138 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 53 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 5353 -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A PREROUTING -p udp --dport 138 -j REDIRECT --to-ports 53
iptables -t nat -A PREROUTING -p udp --dport 137 -j REDIRECT --to-ports 53
iptables -t nat -A PREROUTING -p udp --dport 1194 -j REDIRECT --to-ports 53
iptables -t nat -A PREROUTING -p udp --dport 1195 -j REDIRECT --to-ports 53
iptables -t nat -A PREROUTING -p udp --dport 1196 -j REDIRECT --to-ports 53
iptables -t nat -A PREROUTING -p udp --dport 1197 -j REDIRECT --to-ports 53
iptables -t nat -A PREROUTING --dst 10.8.0.1 -p udp --dport 53 -j DNAT --to-destination 10.8.0.1:5353
iptables -t nat -A PREROUTING --dst 10.9.0.1 -p udp --dport 53 -j DNAT --to-destination 10.9.0.1:5353
iptables -t nat -A PREROUTING --dst 10.10.0.1 -p udp --dport 53 -j DNAT --to-destination 10.10.0.1:5353
iptables -t nat -A PREROUTING --dst 10.11.0.1 -p udp --dport 53 -j DNAT --to-destination 10.11.0.1:5353
iptables -t nat -A PREROUTING --dst 10.12.0.1 -p udp --dport 53 -j DNAT --to-destination 10.12.0.1:5353
iptables -A INPUT -p udp -m udp --dport 5353 -j ACCEPT
iptables -P INPUT DROP
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o $wangka -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.9.0.0/24 -o $wangka -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.10.0.0/24 -o $wangka -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.11.0.0/24 -o $wangka -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.12.0.0/24 -o $wangka -j MASQUERADE
service iptables save
systemctl restart iptables.service
if [[ $? -eq 0 ]]; then
echo "IPtables重启成功!"
else
echo "警告!IPtables重启失败!请联系管理员修复!脚本停止!"
exit
0
fi
cat >>/etc/hosts <<EOF
127.0.0.1 localhost
EOF
}
# 修改系统设置
Install_Sysctl() {
# sysctl.conf:允许改变正在运行中的Linux系统
# 更改内核参数
rm -rf /etc/sysctl.conf
cp /root/OpenVpnControl/dependence/sysctl.conf /etc/sysctl.conf
if [ ! -f /etc/sysctl.conf ]; then
echo "警告!IP转发配置文件下载失败!搭建完成后请联系管理员修复,回车继续!"
read
fi
chmod -R 0777 /etc/sysctl.conf && sysctl -p /etc/sysctl.conf
}
# 安装设置系统环境
Install_System_environment() {
# EPEL是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。装上了 EPEL之后,就相当于添加了一个第三方源。
yum -y install epel-release
# telnet:命令通常用来远程登录
# avahi:Avahi允许程序在不需要进行手动网络配置的情况下,在一个本地网络中发布和获知各种服务和主机。
# OpenSSL:是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连线者的身份
# LZO:是致力于解压速度的一种数据压缩算法
# pam:是一个系统级用户认证框架
# GNU Automake是一种编程工具,可以产生供make程式使用的Makefile,用来编译程序。
# pkg-config 是一个在源代码编译时查询已安装的库的使用接口的计算机工具软件。
# gawk:GAWK的主要功能就是处理文本文件的数据,自动将变量分配给每行的每个数据元素实现这一功能。
# tar zip unzip:解压缩
# net-tools:配置网络功能
# Psmisc软件包包含三个帮助管理/proc目录的程序。
# fuser 显示使用指定文件或者文件系统的进程的PID。
# killall 杀死某个名字的进程,它向运行指定命令的所有进程发出信号。
# pstree 树型显示当前运行的进程。
# gcc:GNU编译器套装
# pkcs11:PKCS#11标准定义了与密码令牌的独立于平台的API,并将API本身命名为“Cryptoki”
# libxml2:libxml是一个用来解析XML文档的函数库
# bzip2:是Julian Seward开发并按照自由软件/开源软件协议发布的数据压缩算法及程序。
# libcurl:基于网络协议,对指定URL进行网络传输。
# libjpeg:libjpeg是一个完全用C语言编写的处理JPEG图像数据格式的自由库。
# libpng:libpng是官方的便携式网络图形参考库。它是一个独立于平台的库,其中包含用于处理PNG图像的C函数。它支持几乎所有PNG的功能,
# freetype:是一个用C语言实现的一个字体光栅化库。
# gmp:是一个开源的任意精度运算库,支持正负数的整数、有理数、浮点数。它没有任何精度限制,只受限于可用内存。
# libmcrypt:可以实现加密解密功能
# readline:可为具有命令行界面的交互式程序提供行编辑器和历史记录功能
# libxslt:用于XML解析,树操作和XPath支持
yum -y install telnet avahi openssl openssl-libs openssl-devel lzo lzo-devel pam pam-devel automake pkgconfig gawk tar zip unzip net-tools psmisc gcc pkcs11-helper libxml2 libxml2-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel
# mariadb:是MySQL关系数据库管理系统的一个复刻,由社区开发,有商业支持,旨在继续保持在GNU GPL下开源。
# httpd:为Apache HTTP服务器程序。
# dnsmasq:是一个开源的轻量级DNS转发和DHCP、TFTP服务器。针对家庭局域网等小型局域网设计,资源占用低,易于配置。
# jre:Java程序运行环境
# crontabs:用来定期执行程序
yum -y install mariadb mariadb-server httpd dnsmasq jre-1.7.0-openjdk crontabs
# webtatic:一个提供免费PHP软件源服务的网站
# 安装epel和webtatic都是为了方便安装php及其扩展,但是epel和webtatic安装php的速度很慢,需要解决办法
# todo:解决epel和webtatic安装php的速度很慢的问题。2020年10月16日
rpm -Uvh /root/OpenVpnControl/dependence/webtatic-release.rpm --force --nodeps >/dev/null 2>&1
# 安装php7.0以及一系列拓展
yum install php70w-fpm -y
yum install php70w php70w-bcmath php70w-cli php70w-common php70w-dba php70w-devel php70w-embedded php70w-enchant php70w-gd php70w-imap php70w-ldap php70w-mbstring php70w-mcrypt php70w-mysqlnd php70w-odbc php70w-opcache php70w-pdo php70w-pdo_dblib php70w-pear.noarch php70w-pecl-apcu php70w-pecl-apcu-devel php70w-pecl-imagick php70w-pecl-imagick-devel php70w-pecl-mongodb php70w-pecl-redis php70w-pecl-xdebug php70w-pgsql php70w-xml php70w-xmlrpc php70w-intl php70w-mcrypt --nogpgcheck php-fedora-autoloader php-php-gettext php-tcpdf php-tcpdf-dejavu-sans-fonts php70w-tidy -y --skip-broken
rpm -Uvh /root/OpenVpnControl/dependence/liblz4-1.8.1.2-alt1.x86_64.rpm --force --nodeps >/dev/null 2>&1
rpm -Uvh /root/OpenVpnControl/dependence/openvpn-2.4.3-1.el7.x86_64.rpm --force --nodeps >/dev/null 2>&1
}
# 启动数据库
Install_MariaDB() {
systemctl start mariadb.service
if [[ $? -eq 0 ]]; then
echo "MariaDB安装成功!"
else
echo "警告!MariaDB初始化失败!请联系管理员修复!脚本停止!"
exit
0
fi
mysqladmin -uroot password "$zsykjsqlpass"
mysql -uroot -p$zsykjsqlpass -e "create database vpndata;"
systemctl restart mariadb.service
if [[ $? -eq 0 ]]; then
echo "MariaDB重启成功!"
else
echo "警告!MariaDB重启失败!请联系管理员修复!脚本停止!"
exit
0
fi
}
# 启动Apache httpd和php
Install_Apache() {
sed -i "s/#ServerName www.example.com:80/ServerName localhost:$zsykjApacheport/g" /etc/httpd/conf/httpd.conf
sed -i "s/Listen 80/Listen $zsykjApacheport/g" /etc/httpd/conf/httpd.conf
cat >>/etc/php.ini <<EOF
extension=php_mcrypt.dll
extension=php_mysqli.dll
EOF
systemctl start httpd.service
if [[ $? -eq 0 ]]; then
echo "Apache安装成功!"
else
echo "警告!Apache启动失败!搭建完成后请联系管理员修复,回车继续!"
read
fi
systemctl start php-fpm.service
if [[ $? -eq 0 ]]; then
echo "PHP安装成功!"
else
echo "警告!PHP启动失败!搭建完成后请联系管理员修复,回车继续!"
read
fi
}
#安装Dnsmasq作为本地DNS服务器
Install_Dnsmasq() {
if [ ! -f /etc/dnsmasq.conf ]; then
echo "警告!dnsmasq安装失败,搭建完成后请联系管理员修复,回车继续!"
read
fi
rm -rf /etc/dnsmasq.conf
cp /root/OpenVpnControl/dependence/dnsmasq.conf /etc/dnsmasq.conf && chmod 0777 /etc/dnsmasq.conf
if [ ! -f /etc/dnsmasq.conf ]; then
echo "警告!Dnsmasq配置文件下载失败,搭建完成后请联系管理员修复,回车继续!"
read
fi
systemctl start dnsmasq.service
if [[ $? -eq 0 ]]; then
echo "Dnsmasq安装成功!"
else
echo "警告!Dnsmasq启动失败!搭建完成后请联系管理员修复,回车继续!"
read
fi
}
# 安装OpenVPN
Install_OpenVPN() {
if [ ! -d /etc/openvpn ]; then
echo "警告!OpenVPN安装失败,搭建完成后请联系管理员修复,回车继续!"
read
mkdir /etc/openvpn
fi
cd /etc/openvpn && rm -rf /etc/openvpn/*
# 配置文件移入对应文件
cp -r /root/OpenVpnControl/dependence/openvpn/. /etc/openvpn/
if [ ! -f /etc/openvpn/auth_config.conf ]; then
echo "警告!OpenVPN配置文件下载失败,脚本停止!"
exit
0
fi
chmod 0777 -R /etc/openvpn
sed -i "s/newpass/"$zsykjsqlpass"/g" /etc/openvpn/auth_config.conf
sed -i "s/服务器IP/"$IP"/g" /etc/openvpn/auth_config.conf
}
# 启动定时启动软件Crond
Install_Crond() {
systemctl start crond.service
if [[ $? -eq 0 ]]; then
echo "Crond安装成功!"
else
echo "警告!Crond启动失败!搭建完成后请联系管理员修复,回车继续!"
read
fi
crontab -l >/tmp/crontab.$$
echo '*/60 * * * * /etc/openvpn/sqlbackup' >>/tmp/crontab.$$
crontab /tmp/crontab.$$
systemctl restart crond.service
if [[ $? -eq 0 ]]; then
echo "Crond启动成功!"
else
echo "警告!Crond重启失败!搭建完成后请联系管理员修复,回车继续!"
read
fi
}
# 安装依赖文件
Install_Dependency_file() {
echo "正在安装依赖文件......"
mkdir /etc/rate.d/ && chmod -R 0777 /etc/rate.d/
cd /root
cp -r /root/OpenVpnControl/dependence/res/res/ /root/res/
if [ ! -f /root/res/auto_run ]; then
echo "警告!配置文件下载失败,脚本停止!"
exit
0
fi
chmod -R 0777 /root
mv /root/res/fas.service /lib/systemd/system/fas.service
chmod -R 0777 /lib/systemd/system/fas.service
systemctl enable fas.service
cd /bin
cp -r /root/OpenVpnControl/dependence/bin/* ./
chmod -R 0777 /bin
echo '#FAS系统自定义屏蔽host文件
' >>/etc/fas_host && chmod 0777 /etc/fas_host
}
# 安装Web系统,数据库初始化
Install_WEB() {
echo "正在安装FAS-WEB系统....."
# 删除可能存在的web页面
rm -rf /var/www/html
cd /var/www
cp -r /root/OpenVpnControl/dependence/fas_web/* ./
chmod 0777 -R /var/www/html
# 用新设置的数据库账号、密码替换原本数据库备份文件中的账号密码
sed -i "s/julifasadmin/"$zsykjadminuser"/g" /var/www/vpndata.sql
sed -i "s/julifaspass/"$zsykjadminpass"/g" /var/www/vpndata.sql
# 用本服务器ip替换到数据库备份文件
sed -i "s/服务器IP/"$IP"/g" /var/www/vpndata.sql
# 将据库备份文件恢复到数据库
mysql -uroot -p$zsykjsqlpass vpndata </var/www/vpndata.sql
# 删除下载的数据库备份文件
rm -rf /var/www/vpndata.sql
# 设置web页面密码
sed -i "s/newpass/"$zsykjsqlpass"/g" /var/www/html/config.php
# 设置随机的web本地密钥
echo "$RANDOM$RANDOM" >/var/www/auth_key.access
}
# 启动所有服务
Install_Startup_program() {
cd /root
echo "启动所有服务......"
sleep 5
systemctl restart iptables.service
if [[ $? -eq 0 ]]; then
echo "Iptables启动成功!"
else
echo "警告!Iptables启动失败!请联系管理员修复!"
fi
systemctl restart mariadb.service
if [[ $? -eq 0 ]]; then
echo "MariaDB启动成功!"
else
echo "警告!MariaDB启动失败!请联系管理员修复!"
fi
systemctl restart httpd.service
if [[ $? -eq 0 ]]; then
echo "Apache启动成功!"
else
echo "警告!Apache启动失败!请联系管理员修复!!"
fi
systemctl restart php-fpm.service
if [[ $? -eq 0 ]]; then
echo "PHP启动成功!"
else
echo "警告!PHP启动失败!请联系管理员修复!"
fi
systemctl restart dnsmasq.service
if [[ $? -eq 0 ]]; then
echo "Dnsmasq启动成功!"
else
echo "警告!Dnsmasq启动失败!请联系管理员修复!"
fi
systemctl restart crond.service
if [[ $? -eq 0 ]]; then
echo "Crond启动成功!"
else
echo "警告!Crond重启失败!请联系管理员修复!"
fi
systemctl restart openvpn@server1194
if [[ $? -eq 0 ]]; then
echo "OpenVPN1194启动成功!"
else
echo "警告!OpenVPN1194重启失败!请联系管理员修复!"
fi
systemctl restart openvpn@server1195
if [[ $? -eq 0 ]]; then
echo "OpenVPN1195启动成功!"
else
echo "警告!OpenVPN1195重启失败!请联系管理员修复!"
fi
systemctl restart openvpn@server1196
if [[ $? -eq 0 ]]; then
echo "OpenVPN1196启动成功!"
else
echo "警告!OpenVPN1196重启失败!请联系管理员修复!"
fi
systemctl restart openvpn@server1197
if [[ $? -eq 0 ]]; then
echo "OpenVPN1197启动成功!"
else
echo "警告!OpenVPN1197重启失败!请联系管理员修复!"
fi
systemctl restart openvpn@server-udp
if [[ $? -eq 0 ]]; then
echo "OpenVPNUDP启动成功!"
else
echo "警告!OpenVPNUDP重启失败!请联系管理员修复!"
fi
#启动所有服务
systemctl restart fas.service
if [[ $? -eq 0 ]]; then
echo "FAS服务启动成功!"
else
echo "警告!FAS服务启动失败!脚本运行错误,请重装系统后重新搭建!"
exit
0
fi
echo "正在执行最后的操作...."
dhclient
vpn restart >/dev/null 2>&1
}
# 输出安装结果
installation_is_complete() {
unsql >/dev/null 2>&1
password2=$(cat /var/www/auth_key.access)
vpn restart
clear
echo "---------------------------------------------"
echo "---------------------------------------------"
echo "恭喜,您已经安装完毕。"
echo "控制台: http://"$IP":"$zsykjApacheport"/admin/"
echo "账号: "$zsykjadminuser" 密码: "$zsykjadminpass""
echo "控制台随机本地密钥: "$password2""
echo "内置数据库管理: http://"$IP":"$zsykjApacheport"/phpMyAdmin/"
echo "---------------------------------------------"
echo "数据库账户: root 密码: "$zsykjsqlpass" "
echo "代理控制台: http://"$IP":"$zsykjApacheport"/daili"
echo "---------------------------------------------"
echo "常用指令: "
echo "重启VPN vpn restart FAS后台开启:onfas "
echo "启动VPN vpn start FAS后台关闭:unfas "
echo "停止VPN vpn stop 数据库开启:onsql "
echo "开任意端口 port 数据库关闭:unsql "
echo "---------------------------------------------"
echo "数据库60分钟自动备份,备份目录在/root/backup/"
echo "数据库手动备份命令:backup "
echo "---------------------------------------------"
echo "---------------------------------------------"
exit
0
}
# 依次执行的方法
Install_command() {
#变量安装命令
Installation_options
# 替换yum源
replace_yum
# 关闭Selinux
Close_Selinux
# 修改防火墙设置
Install_firewall
# 修改系统设置
Install_Sysctl
# 安装设置系统环境
Install_System_environment
# 启动数据库
Install_MariaDB
# 启动Apache httpd和php
Install_Apache
#安装Dnsmasq作为本地DNS服务器
Install_Dnsmasq
# 安装OpenVPN
Install_OpenVPN
# 启动定时启动软件Crond
Install_Crond
# 安装依赖文件
Install_Dependency_file
# 安装Web系统,数据库初始化
Install_WEB
# 启动所有服务
Install_Startup_program
# 输出安装结果
installation_is_complete
}
# 获取本机IP和相应网卡
Get_IP() {
# 获取ip
clear
sleep 2
echo
echo "请选择IP源获取方式(自动获取失败的,请选择手动输入!)"
echo
echo "1、自动获取IP(默认获取方式,系统推荐!)"
echo "2、手动输入IP(仅在自动获取IP失败或异常时使用!)"
echo
read -p "请输入: " a
echo
k=$a
if [[ $k == 1 ]]; then
sleep 1
echo "请稍等..."
sleep 2
IP=$(curl -s http://members.3322.org/dyndns/getip)
localserver=$(curl -s ip.cn)
dizhi=$(echo $localserver | awk '{print $3}')
fwq=$(echo $localserver | awk '{print $4}')
wangka1=$(ifconfig)
wangka2=$(echo $wangka1 | awk '{print $1}')
wangka=${wangka2/:/}
echo -e "系统检测到的IP为:\033[34m"$IP" "$dizhi""$fwq",网卡为:"$wangka"\033[0m"
echo -e "如不正确请立即停止安装选择手动输入IP搭建,否则回车继续。"
read
Install_command
fi
if [[ $k == 2 ]]; then
sleep 1
read -p "请输入您的IP/动态域名: " IP
if [ -z "$IP" ]; then
IP=
fi
read -p "请输入您的网卡名称: " wangka
if [ -z "$wangka" ]; then
wangka=
fi
echo "系统检测到您输入的IP/动态域名为:"$IP",网卡为:"$wangka",如不正确请立即停止安装,否则回车继续。"
read
Install_command
fi
echo -e "\033[31m输入错误!请重新运行脚本!\033[0m "
exit
0
}
# 输出信息
Home_page() {
clear
echo -e "\033[1;35m————OpenVpnControl本地模式安装————\033[0m "
echo -e "\033[1;35m本项目初始文件皆搜集自公开网络,仅供学习使用,切勿用于商业用途\033[0m "
echo -e "\033[1;36m安装后请于24小时内自行删除\033[0m "
echo -e "\033[1;34m再次声明:本项目仅可用于国内网络环境的虚拟加密访问,用于数据保密。严禁用于任何违法违规用途。\033[0m "
echo -e "\033[1;36m回车开始搭建\033[0m "
read
sleep 1
echo -e "\033[1;32m正在载入信息.....\033[0m "
sleep 3
Get_IP
}
# 判断机器架构类型
Machine_detection() {
# 安装用于判断系统架构的程序
yum -y install virt-what >/dev/null 2>&1
# 获取系统架构
Framework=$(virt-what)
# 判断系统架构
if [ ${Framework} == "ovz" -o ${Framework} == "openvz" ]; then
echo
echo "您当前机器架构为 OpenVZ 虚拟平台,暂不支持此架构机器安装此流控,可更换KVM、Hyper-V、VMware架构或物理机器后再次进行搭建操作!"
exit
0
else
echo "不等于${Framework}" >/dev/null 2>&1
fi
if [ ${Framework} == "kvm" -o ${Framework} == "hyperv" -o ${Framework} == "vmware" -o ${Framework} == "" ]; then
echo
echo "您当前机器架构为 ${Framework} 虚拟平台,符合系统安装环境!"
Home_page
else
echo ${Framework} >/dev/null 2>&1
fi
}
# 系统检测:检测账户以及系统版本
system_detection() {
if [[ "$EUID" -ne 0 ]]; then
echo "致命错误,您需要以root身份运行此脚本!"
exit 0
fi
if [[ ! -e /dev/net/tun ]]; then
echo "致命错误,TUN不可用,安装无法继续!"
exit 0
fi
if [ ! -e "/dev/net/tun" ]; then
echo -e "\033[1;32m安装出错\033[0m \033[5;31m[原因:系统存在异常!]\033[0m
\033[1;32m错误码:\033[31mVFVOL1RBUOiZmuaLn+e9keWNoeS4jeWtmOWcqA== \033[0m\033[0m"
exit 0
fi
if [ -f /etc/os-release ]; then
OS_VERSION=$(cat /etc/os-release | awk -F'[="]+' '/^VERSION_ID=/ {print $2}')
if [ $OS_VERSION != "7" ]; then
echo "-bash: "$0": 致命错误,系统环境异常,当前系统为:CentOS "$OS_VERSION" ,请更换系统为 CentOS 7.0 - 7.4 后重试!"
exit 0
fi
elif [ -f /etc/redhat-release ]; then
OS_VERSION=$(cat /etc/redhat-release | grep -Eos '\b[0-9]+\S*\b' | cut -d'.' -f1)
if [ $OS_VERSION != "7" ]; then
echo "-bash: "$0": 致命错误,系统环境异常,当前系统为:CentOS "$OS_VERSION" ,请更换系统为 CentOS 7.0 - 7.4后重试!"
exit 0
fi
else
echo "-bash: "$0": 致命错误,系统环境异常,当前系统为:CentOS 未知 ,请更换系统为 CentOS 7.0 - 7.4 后重试!"
exit 0
fi
}
# 加载:检查环境以及初始化
Loading() {
clear
echo "正在检查安装环境(预计三分钟内完成)...."
# 检测登录系统的账户和版本
system_detection
#安装wget curl等等 修复vr服务器没selinux问题
yum -y install curl wget docker openssl net-tools procps-ng >/dev/null 2>&1
# 判断机器架构类型
Machine_detection
}
Main() {
# 主方法
Anti-theft_detection
Loading
}
# 执行主方法
Main
exit
0
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。