目录

CentOS7杂记

目录

查看系统信息

cat /etc/redhat-release

uname -a

一、 启用网络

su root
# 进入网络配置文件所在的文件夹
cd /etc/sysconfig/network-scripts/ 
# 设置开机启动
sed -i 's/ONBOOT=no/ONBOOT=yes/g' ifcfg-enp0s3
# 查看配置
cat ifcfg-enp0s3
# 重启网络服务
service network restart

二、更换软件源

  1. 手动换源
cd /etc/yum.repos.d
# 备份
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# 下载repo文件,并用其中一个替换
wget -O /etc/yum.repos.d http://mirrors.aliyun.com/repo/Centos-7.repo
#wget -O /etc/yum.repos.d http://mirrors.163.com/.help/CentOS7-Base-163.repo

# 运行以下命令生成软件包信息缓存
yum clean all
yum makecache
  1. 一键换源脚本
  • 方法:https://www.oldking.net/697.html
  • 脚本:https://raw.githubusercontent.com/oooldking/script/master/superupdate.sh
  • 命令:
# 先安装所需工具
yum install -y wget && yum install -y ca-certificates
# 下载脚本
wget  git.io/superupdate.sh
# 一键换源 默认是aliyun
bash superupdate.sh [aliyun]
# 一键还原配置
bash superupdate.sh restore

三、安装JDK

# 搜索jdk
yum search java | grep -i --color jdk
# 安装jdk8
sudo yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel

# 在profile末尾追加环境变量JAVA_HOME、CLASSPATH、PATH (vim /etc/profile)
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.272.b10-1.el7_9.x86_64
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

# 使环境变量生效
source /etc/profile

四、防火墙操作

#firewall
# 基本操作
sudo firewall-cmd --reload                               //更新防火墙规则(设置端口后需要执行)
sudo firewall-cmd --zone=public --list-ports             //查看所有打开的端口
sudo firewall-cmd --version                              //查看版本
sudo firewall-cmd --state                                //查看状态
# 端口操作
sudo firewall-cmd --zone=public --query-port=80/tcp                    //查看某端口状态
sudo firewall-cmd --zone=public --remove-port=80/tcp --permanent       //关闭端口
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent          //开放80端口 --permanent永久生效
sudo firewall-cmd --permanent --zone=public --add-port=100-500/tcp     //开放端口段
# 防火墙服务
systemctl status firewalld.service                  //查看状态
systemctl start firewalld.service                   //启动
systemctl stop firewalld.service                    //停止
systemctl restart firewalld.service                 //重启
systemctl enable firewalld.service                  //开机启动
systemctl disable firewalld.service                 //关闭开机启动
systemctl is-enabled firewalld.service              //查看是否开机启动

#iptables集成在 Linux 内核中的包过滤防火墙系统 https://developer.aliyun.com/article/888704
iptables [-t 表名] 命令选项  [链名]  [条件匹配]  [-j 目标动作]
表名:filter,nat,mangle,raw,security              # filter:默认,过滤数据包使用  nat:进行网络地址转换  mangle:修改数据包的内容(例如,修改TTL值) raw:连接跟踪之前处理数据包 security:实施强制访问控制策略,例如,在SELinux环境中
链名:INPUT,OUTPUT,FORWARD,PREROUTING,POSTROUTING                  #FORWARD:Linux主机转发需要设置内核参数/proc/sys/net/ipv4/ip_forward
命令:-N ∶ 创建一条用户指定的新链
命令:-I ∶ 在指定链的开头插入规则
命令:-A ∶ 在指定链的末尾追加规则
命令:-D ∶ 删除指定链中规则
命令:-R ∶ 在指定链中替换规则
命令:-L ∶ 列出指定链中所有的规则,若未指定链名则针对表中的所有链 如-t nat可指定nat表,默认为filter表
命令:-F ∶ 清空指定链中的所有规则,若未指定链名则针对表中的所有链 如-t nat可指定nat表
命令:-P ∶ 设置指定链的默认策略(–policy)
参数:-v ∶ 表示输出详细信息,包含通过该规则的数据包数量、总字节数以及相应的网络接口。
参数:-n ∶ 显示 IP 地址而不是主机名
参数:-x ∶ 禁止字节单位自动转换
参数:-i ∶ 指定输入网卡流量
参数:-o ∶ 指定输出网卡流量
参数:-p ∶ 指定协议类型tcp,udp,icmp
参数:-S ∶ 等同--list-rules  以规则命令格式(rule-specification format)显示当前规则,这种格式可以直接作为 iptables 命令重新执行。
参数:-s ∶ 指定源地址 IP、网段、域名
参数:-d ∶ 指定目标地址
参数:--sport ∶ 指定源端口或端口段  :2000表示0:2000
参数:--dport ∶ 指定目标端口
参数:--to-source ∶ 指定数据包的新源IP地址
参数:--to-destination ∶ 指定数据包的新目标IP地址
参数:-m ∶ 指定扩展匹配模块 https://blog.51cto.com/u_14487231/6794214
	- -m state --state RELATED,ESTABLISHED  #包状态匹配
	- -m mac --mac-source xx:xx:xx:xx:xx:xx  #来源MAC地址匹配
	- -m limit --limit 50/s   #每秒抓发50个包 具体需要搭配其他规则使用
	- -m multiport <--sports|--dports|--ports> 端口1[,端口2,..,端口n]


目标动作Target
ACCEPT:允许,接收流量包继续传递给后续规则和链路
DROP:丢弃,不再继续传递
REJECT:拒绝,同时回复拒绝的原因,可使用–reject-with选择拒绝类型(icmp-net-unreachable、icmp-host-unreachable、icmp-port-unreachable默认)
RETURN:返回。类似函数调用,退出当前链的规则匹配执行,返回之前链的调用点继续执行下一条规则,或者不是被调用的则以默认策略执行
SNAT:源地址转换(数据包的源地址从内部网络的IP地址转换为外部IP地址,场景:多个内部设备共享一个外部IP地址访问互联网)
DNAT:目标地址转换(数据包的目标地址从外部IP地址转换为内部网络的某个IP地址,场景:将外部请求重定向到内部网络中的特定服务,如私网服务端接收公网请求的问题)
MASQUERADE:动态源地址转换(MASQUERADE是一种特殊形式的SNAT,会自动选择出口网卡的IP地址进行源地址,自动转换性能会稍差,通常在POSTROUTING链中使用,用于修改离开防火墙的数据包的源地址。)
LOG:记录日志/var/log/messages,然后传递给下一条规则
REDIRECT:可进行本机端口映射

#查看已有规则
iptables -nvL --line-numbers   #查看已添加的iptables规则
iptables -t nat -S             #查看 nat 表的所有规则
iptables -t nat -S POSTROUTING #查看具体链的规则
iptables-save > iptables-backup.txt             # 备份当前规则
iptables-restore < iptables-backup.txt          # 恢复规则

#开放
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT               #允许本地回环接口(即运行本机访问本机)
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT    #允许已建立的或相关连的通行
iptables -A OUTPUT -j ACCEPT         #允许所有本机向外的访问
iptables -A INPUT -p tcp --dport 22 -j ACCEPT    #允许访问22端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT    #允许访问80端口
iptables -A INPUT -p tcp --dport 21 -j ACCEPT    #允许ftp服务的21端口
iptables -A INPUT -p tcp --dport 20 -j ACCEPT    #允许FTP服务的20端口
iptables -A INPUT -j REJECT       #禁止其他未允许的规则访问
iptables -A FORWARD -j REJECT     #禁止其他未允许的规则访问

#删除已添加的iptables规则
比如要删除INPUT里序号为8的规则,执行:
iptables -D INPUT 8

#屏蔽IP
iptables -I INPUT -s 123.45.6.7 -j DROP       #屏蔽单个IP的命令
iptables -I INPUT -s 123.0.0.0/8 -j DROP      #封整个段即从123.0.0.1到123.255.255.254的命令
iptables -I INPUT -s 124.45.0.0/16 -j DROP    #封IP段即从123.45.0.1到123.45.255.254的命令
iptables -I INPUT -s 123.45.6.0/24 -j DROP    #封IP段即从123.45.6.1到123.45.6.254的命令是



=====收藏待整理命令

禁止所有IP访问端口80
iptables -A INPUT -p tcp --drop 80 -j DROP //此规则将本机收到的所有80端口的TCP流量数据包丢弃。
仅允许指定IP访问80
iptables -A INPUT -s 172.168.1.110 -p tcp --dport 80 -j ACCEPT //此规则允许源IP地址为172.168.1.110的TCP流量访问端口80。
添加指定端口的拒绝规则
iptables -I INPUT -p tcp -m multiport --dport 80 -j REJECT
删除指定端口的拒绝规则
iptables -D INPUT -p tcp -m multiport --dport 80 -j REJECT //此命令将删除TCP端口80的拒绝规则。
在输入链中插入拒绝TCP端口52395的规则
iptables -t filter -I INPUT -p tcp -m tcp --dport 52395 -j DROP //此命令将在INPUT链开头插入一条拒绝TCP端口52395的规则。
在输出链中插入拒绝TCP端口63556的规则
iptables -t filter -I OUTPUT -p tcp -m tcp --dport 63556 -j DROP //此命令将在OUTPUT链开头插入一条拒绝TCP端口63556的规则。
在输入链中插入拒绝TCP端口9999的规则
iptables -I INPUT -p tcp --dport 9999 -j DROP //此命令将在INPUT链开头插入一条拒绝TCP端口9999的规则。
允许指定IP访问TCP端口9999
iptables -I INPUT -s 172.20.1.3 -p tcp --dport 9999 -j ACCEPT //此规则将来源IP地址为172.20.1.3的TCP流量访问端口9999


包转发
打开包转发功能:echo 1 > /proc/sys/net/ipv4/ip_forward
打开包转发功能:net.ipv4.ip_forward = 1   #/etc/sysctl.conf
iptables -t nat --line-numbers
TCP转发
iptables -t nat -A PREROUTING -p tcp --dport 123 -j DNAT --to-destination <指定IP>
iptables -t nat -A POSTROUTING -p tcp -d <指定IP> --dport 123 -j MASQUERADE

将本机的 7777 端口转发到 6666 端口。
iptables -t nat -A PREROUTING -p tcp --dport 7777 -j REDIRECT --to-port 6666
1.6通过1.168的6666端口访问1.8的7777端口
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A PREROUTING -p tcp --dport 6666 -j DNAT --to-destination 192.168.1.8:7777
iptables -t nat -A POSTROUTING -p tcp -d 192.168.1.8 --dport 7777 -j SNAT --to-source 192.168.1.168
TCP转发 
iptables -t nat -A PREROUTING -d 10.10.10.1 -p tcp --dport 100 -j DNAT --to-destination 192.168.1.1:80
iptables -t nat -A POSTROUTING -d 192.168.1.1 -p tcp --dport 80 -j SNAT --to 10.10.10.1
iptables -A FORWARD -o eth0 -d 192.168.1.1 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -i eth0 -s 192.168.1.1 -p tcp --sport 80 -j ACCEPT
UDP转发 xxx-> 10.10.10.1:100->192.168.1.1:80
iptables -t nat -A PREROUTING -d 10.10.10.1 -p udp --dport 100 -j DNAT --to-destination 192.168.1.1:80
iptables -t nat -A POSTROUTING -s 192.168.1.1 -p udp --dport 80 -j SNAT --to-source 10.10.10.1:100
iptables -A FORWARD -o eth0 -d 192.168.1.1 -p udp --dport 80 -j ACCEPT
iptables -A FORWARD -i eth0 -s 192.168.1.1 -p udp --sport 80 -j ACCEPT

iptables -t nat -A PREROUTING -d 10.10.10.1 -p tcp --dport 100 -j DNAT --to-destination 192.168.1.1:80
iptables -t nat -A POSTROUTING -s 192.168.1.1 -p tcp --dport 80 -j SNAT --to-source 10.10.10.1:100
iptables -A FORWARD -o eth0 -d 192.168.1.1 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -i eth0 -s 192.168.1.1 -p tcp --sport 80 -j ACCEPT

# 示例:docker容器中的DNS转发到指定dockerd进程端口
# 如果容器中iptables转发规则不存在,可自行添加以下规则
iptables -t nat -N DOCKER_OUTPUT
iptables -t nat -N DOCKER_POSTROUTING
iptables -t nat -A OUTPUT -d 127.0.0.11/32 -j DOCKER_OUTPUT
iptables -t nat -A POSTROUTING -d 127.0.0.11/32 -j DOCKER_POSTROUTING
iptables -t nat -A DOCKER_OUTPUT -d 127.0.0.11/32 -p udp -m udp --dport 53 -j DNAT --to-destination 127.0.0.11:51755  
iptables -t nat -A DOCKER_POSTROUTING -s 127.0.0.11/32 -p udp -m udp --sport 51755 -j SNAT --to-source :53
iptables -t nat -A DOCKER_OUTPUT -d 127.0.0.11/32 -p tcp -m tcp --dport 53 -j DNAT --to-destination 127.0.0.11:43107 
iptables -t nat -A DOCKER_POSTROUTING -s 127.0.0.11/32 -p tcp -m tcp --sport 43107 -j SNAT --to-source :53

临时编辑
172.20.73.22:5623->172.20.72.30:123->172.20.72.31:123->172.20.72.15:123
172.20.73.22:5623<-172.20.72.30:2123<-172.20.72.31:2123<-172.20.72.15:123
iptables -t nat -A PREROUTING -d 172.20.72.30 -p udp --dport 123 -j DNAT --to-destination 172.20.72.31:123
iptables -t nat -A POSTROUTING -s 172.20.72.31 -p udp --dport 123 -j SNAT --to-source 172.20.72.30:2123
iptables -t nat -A PREROUTING -d 172.20.72.31 -p udp --dport 2123 -j DNAT --to-destination 172.20.72.15:123
                                       XXXXXXXXXXXXXXXXXX
                                     XXX     Network    XXX
                                       XXXXXXXXXXXXXXXXXX
                                               +
                                               |
                                               v
         +-------------+              +------------------+
         |table: filter| <---+        | table: nat       |
         |chain: INPUT |     |        | chain: PREROUTING|
         +-----+-------+     |        +--------+---------+
               |             |                 |
               v             |                 v
         [local process]     |           ****************          +--------------+
               |             +---------+ Routing decision +------> |table: filter |
               v                         ****************          |chain: FORWARD|  
        ****************                                           +------+-------+
        Routing decision                                                  |
        ****************                                                  |
               |                                                          |
               v                        ****************                  |
        +-------------+       +------>  Routing decision  <---------------+
        |table: nat   |       |         ****************
        |chain: OUTPUT|       |               +
        +-----+-------+       |               |
              |               |               v
              v               |      +-------------------+
        +--------------+      |      | table: nat        |
        |table: filter | +----+      | chain: POSTROUTING|
        |chain: OUTPUT |             +--------+----------+
        +--------------+                      |
                                              v
                                       XXXXXXXXXXXXXXXXXX
                                     XXX    Network     XXX
                                       XXXXXXXXXXXXXXXXXX

附

  1. CentOS-Base.repo
# CentOS-Base.repo
[base]
name=CentOS-$releasever
enabled=1
failovermethod=priority
baseurl=http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.cloud.aliyuncs.com/centos/RPM-GPG-KEY-CentOS-7

[updates]
name=CentOS-$releasever
enabled=1
failovermethod=priority
baseurl=http://mirrors.cloud.aliyuncs.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.cloud.aliyuncs.com/centos/RPM-GPG-KEY-CentOS-7

[extras]
name=CentOS-$releasever
enabled=1
failovermethod=priority
baseurl=http://mirrors.cloud.aliyuncs.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.cloud.aliyuncs.com/centos/RPM-GPG-KEY-CentOS-7
  1. epel.repo
# epel.repo
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
enabled=1
failovermethod=priority
baseurl=http://mirrors.cloud.aliyuncs.com/epel/7/$basearch
gpgcheck=0
gpgkey=http://mirrors.cloud.aliyuncs.com/epel/RPM-GPG-KEY-EPEL-7
  1. 一键换源脚本
#更换源脚本superupdate.sh
#!/usr/bin/env bash
#
# Description: Choose a faster mirror for Linux script
#
# Copyright (C) 2017 - 2018 Oldking <oooldking@gmail.com>
#
# URL: https://www.oldking.net/697.html
#

RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
SKYBLUE='\033[0;36m'
PLAIN='\033[0m'

getAbout() {
	echo ""
	echo " ========================================================= "
	echo " \                 SuperUpdate.sh  Script                / "
	echo " \            Choose a faster mirror for Linux           / "
	echo " \                   Created by Oldking                  / "
	echo " ========================================================= "
	echo ""
	echo " Intro: https://www.oldking.net/697.html"
	echo " Copyright (C) 2018 Oldking oooldking@gmail.com"
	echo -e " Version: ${GREEN}1.0.3${PLAIN} (2 Nov 2018)"
	echo " Usage: wget -qO- git.io/superupdate.sh | bash"
	echo ""
}

getHelp(){
	echo " $( bash superupdate.sh )"
	ehco " - set sources from cdn-fastly "
	echo " $( bash superupdate.sh cn ) "
	echo " - set sources from USTC "
	echo " $( bash superupdate.sh 163 ) "
	echo " - set sources from 163.com "
	echo " $( bash superupdate.sh aliyun ) "
	echo " - set sources from aliyun.com "
	echo " $( bash superupdate.sh aws ) "
	echo " - set sources from cdn-aws "
	echo " $( bash superupdate.sh restore ) "
	echo " - restore sources from backup file "
}

updateInit(){
	[[ $EUID -ne 0 ]] && echo -e " ${RED}Error:${PLAIN} This script must be run as root!" && exit 1

	if [ -f /etc/redhat-release ]; then
	    release="centos"
	elif cat /etc/issue | grep -Eqi "debian"; then
	    release="debian"
	elif cat /etc/issue | grep -Eqi "ubuntu"; then
	    release="ubuntu"
	elif cat /etc/issue | grep -Eqi "centos|red hat|redhat"; then
	    release="centos"
	elif cat /proc/version | grep -Eqi "debian"; then
	    release="debian"
	elif cat /proc/version | grep -Eqi "ubuntu"; then
	    release="ubuntu"
	elif cat /proc/version | grep -Eqi "centos|red hat|redhat"; then
	    release="centos"
	fi

	if [ $release == "debian" ]; then
		debianVersion=$(awk -F'[= "]' '/VERSION_ID/{print $3}' /etc/os-release)
	elif [ $release == "ubuntu" ]; then
		ubuntuVersion=$(awk -F'[= "]' '/VERSION_ID/{print $3}' /etc/os-release)
	elif [ $release == "centos" ]; then
		os_release=$(grep "CentOS" /etc/redhat-release 2>/dev/null)
		if echo "$os_release"|grep "release 5" >/dev/null 2>&1
		then
			centosVersion=5
		elif echo "$os_release"|grep "release 6" >/dev/null 2>&1
		then
			centosVersion=6
		elif echo "$os_release"|grep "release 7" >/dev/null 2>&1
		then
			centosVersion=7
		else
			centosVersion=""
		fi
	else
		echo -e " ${RED}Error:${PLAIN} This script can not be run in your system now!" && exit 1
	fi
}

setDebian(){
	if [[ -f /etc/apt/sources.list.bak ]]; then
		echo -e " ${GREEN}sources.list.bak exists${PLAIN}"
	else
		mv /etc/apt/sources.list{,.bak}
	fi

	[ -f /etc/apt/sources.list ] && rm /etc/apt/sources.list
	
	echo "deb http://cdn-fastly.deb.debian.org/debian/ jessie main non-free contrib" >>/etc/apt/sources.list
	echo "deb http://cdn-fastly.deb.debian.org/debian/ jessie-updates main non-free contrib" >>/etc/apt/sources.list
	echo "deb http://cdn-fastly.deb.debian.org/debian/ jessie-backports main non-free contrib" >>/etc/apt/sources.list
	echo "deb-src http://cdn-fastly.deb.debian.org/debian/ jessie main non-free contrib" >>/etc/apt/sources.list
	echo "deb-src http://cdn-fastly.deb.debian.org/debian/ jessie-updates main non-free contrib" >>/etc/apt/sources.list
	echo "deb-src http://cdn-fastly.deb.debian.org/debian/ jessie-backports main non-free contrib" >>/etc/apt/sources.list
	echo "deb http://cdn-fastly.deb.debian.org/debian-security/ jessie/updates main non-free contrib" >>/etc/apt/sources.list
	echo "deb-src http://cdn-fastly.deb.debian.org/debian-security/ jessie/updates main non-free contrib" >>/etc/apt/sources.list

	[ "$debianVersion" == '7' ] && sed -i 's/jessie/wheezy/'g /etc/apt/sources.list
	[ "$debianVersion" == '8' ] && echo -n ""
	[ "$debianVersion" == '9' ] && sed -i 's/jessie/stretch/'g /etc/apt/sources.list
}

setUbuntu(){
	if [[ -f /etc/apt/sources.list.bak ]]; then
		echo -e " ${GREEN}sources.list.bak exists${PLAIN}"
	else
		mv /etc/apt/sources.list{,.bak}
	fi

	[ -f /etc/apt/sources.list ] && rm /etc/apt/sources.list

	echo "deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse" >>/etc/apt/sources.list
	echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse" >>/etc/apt/sources.list
	echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse" >>/etc/apt/sources.list
	echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse" >>/etc/apt/sources.list
	echo "deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse" >>/etc/apt/sources.list
	echo "deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse" >>/etc/apt/sources.list
	echo "deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse" >>/etc/apt/sources.list
	echo "deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse" >>/etc/apt/sources.list

	[ "$ubuntuVersion" == '14.04' ] && sed -i 's/xenial/trusty/'g /etc/apt/sources.list
	[ "$ubuntuVersion" == '16.06' ] && echo -n ""
	[ "$ubuntuVersion" == '18.04' ] && sed -i 's/xenial/bionic/'g /etc/apt/sources.list
}

setCentos(){
	if [ -f /etc/yum.repos.d/CentOS-Base.repo.bak ]; then
		echo -e " ${GREEN}CentOS-Base.repo.bak exists${PLAIN}"
	else
		mv /etc/yum.repos.d/CentOS-Base.repo{,.bak}
	fi

	[ -f /etc/yum.repos.d/CentOS-Base.repo ] && rm /etc/yum.repos.d/CentOS-Base.repo

	[ "$centosVersion" == '5' ] && wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo
	[ "$centosVersion" == '6' ] && wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
	[ "$centosVersion" == '7' ] && wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
}

setAWS(){
	sed -i 's/cdn-fastly.deb.debian.org/cdn-aws.deb.debian.org/'g /etc/apt/sources.list
}

setCn(){
	sed -i 's/cdn-fastly.deb.debian.org/mirrors.ustc.edu.cn/'g /etc/apt/sources.list
}

set163(){
	sed -i 's/cdn-fastly.deb.debian.org/mirrors.163.com/'g /etc/apt/sources.list
}

setAliyun(){
	sed -i 's/cdn-fastly.deb.debian.org/mirrors.aliyun.com/'g /etc/apt/sources.list
}

restore(){
	if [ -f /etc/apt/sources.list.bak ]; then
		rm /etc/apt/sources.list
		mv /etc/apt/sources.list.bak /etc/apt/sources.list
	elif [ -f /etc/yum.repos.d/CentOS-Base.repo.bak ]; then
		rm /etc/yum.repos.d/CentOS-Base.repo
		mv /etc/yum.repos.d/CentOS-Base.repo.bak /etc/yum.repos.d/CentOS-Base.repo
	fi
}

setSources(){
	getAbout
	updateInit
	case "$release" in
		debian)
			case $para in
				'fastly'|'-fastly'|'--fastly' )
					setDebian;;
			    'cn'|'-cn'|'--cn' )
					setDebian;setCn;;
			   	'163'|'-163'|'--163' )
					setDebian;set163;;
				'aliyun'|'-aliyun'|'--aliyun' )
					setDebian;setAliyun;;
				'aws'|'-aws'|'--aws' )
					setDebian;setAWS;;
				'restore'|'-restore'|'--restore' )
					restore;;
			*)
			setDebian;;
			esac
			apt-get update;;
		ubuntu)
			case $para in
				'restore'|'-restore'|'--restore' )
					restore;;
			*)
			setUbuntu;
			esac
			apt-get update;;
		centos)
			case $para in
				'restore'|'-restore'|'--restore' )
					restore;;
			*)
			setCentos;
			esac
			yum makecache;;
	esac
}

para=$1
setSources
echo -e "${GREEN}Done${PLAIN}"
← 返回技术