本文记录了我在腾讯云搭建服务器所写的一些备注点,仅做参考。
CentOs 7服务器初始化
打开联网开关(虚拟机用)
Copy cd /etc/sysconfig/network-scripts/
ls
vi ifcfg-ens33 (这个文件的名字不是固定的)
将文件里的ONBOOT
改为yes
,使用:wq
保存退出
启动网络服务
Copy service network start
安装宝塔面板
Copy yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
安装完成后会显示面板的初始化账号、密码已经登录入口
查看内外网ip(虚拟机用)
云服务器用外网、vm虚拟机用内网 查看内网
查看外网
打开面板安装依赖
使用ip+登录入口的方式登入面板,第一次打开会让你装依赖,等待安装完成。
生成ssh公密钥(用于git)
cd
回根目录,生成ssh公密钥
Copy cd
ssh-keygen -t rsa -C "YourEmail@XXX.com"
提示Overwrite(y/n)?
时输入y
连续按三次回车,即生成了公密钥
公密钥位于/root/.ssh/
生成多个公密钥
Copy $ ssh-keygen -t rsa -C 'xxxxx@qq.com' -f ~/.ssh/gitee_id_rsa
$ ssh-keygen -t rsa -C 'xxxxx@qq.com' -f ~/.ssh/github_id_rsa
在 ~/.ssh 目录下新建一个config文件,添加如下内容(其中Host和HostName填写git服务器的域名,IdentityFile指定私钥的路径)
Copy # gitee
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitee_id_rsa
# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_id_rsa
用ssh命令分别测试
Copy $ ssh -T git@gitee.com
$ ssh -T git@github.com
共用key
将要共用的公钥私钥复制到当前用户的根目录的.ssh文件夹内:/.ssh/
将id_rsa.pub
复制一份至authorized_keys
(如果已有authorized_keys
则将id_rsa.pub
追加到authorized_keys
文件里)
需要注意文件的权限:
修改config文件
Copy # github
Host github.com
HostName github.com # 指向的网站
PreferredAuthentications publickey
IdentityFile /.ssh/github_id_rsa # 指向的密钥
安装git
Copy yum install git (执行安装)
git --version (检测版本)
git config --global user.name "***" (设置全局用户名)
git config --global user.email ***@**.** (设置全局邮箱)
git config --list (查看配置)
克隆git仓库
在宝塔面板的文件里的ssh窗口执行命令
安装node
宝塔面板“软件管理”里面有一键安装;
使用EPEL安装
检测是否已安装EPEL
Copy yum info epel-release (如果没有输出信息,则执行下面一行的命令)
yum install epel-release
安装node
Copy sudo yum install nodejs
卸载node
Copy yum remove nodejs npm -y
手动删除残留
进入 /usr/local/lib 删除所有 node 和 node_modules文件夹
进入 /usr/local/include 删除所有 node 和 node_modules 文件夹
检查 ~ 文件夹里面的"local" "lib" "include" 文件夹,然后删除里面的所有 "node" 和 "node_modules" 文件夹
可以使用以下命令查找 $ find ~/ -name node
$ find ~/ -name node_modules
进入 /usr/local/bin 删除 node 的可执行文件
删除: /usr/local/share/man/man1/node.1
删除: /usr/local/lib/dtrace/node.d
删除: rm -rf /home/[homedir]/.npm
删除: rm -rf /home/root/.npm
通过NVM安装
下载并安装NVM脚本
Copy curl https://raw.githubusercontent.com/creationix/nvm/v0.13.1/install.sh | bash
source ~/.bash_profile
列出所需要的版本
安装相应的版本
查看已安装的版本
切换版本
设置默认版本
Copy nvm alias default v10.14.1
卸载指定版本
Copy nvm uninstall v10.14.1
宝塔面板ssh连接错误
先在命令行里运行这个命令
Copy $ pip install paramiko==2.0.2
$ bt reload
如果不行的话再执行:
Copy $ ssh-keygen -q -t rsa -P "" -f /root/.ssh/id_rsa
$ cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys #可以先单独尝试这一条命令先
$ chmod 600 /root/.ssh/authorized_keys
CentOs 7 搭建shadow socks
安装组件
Copy $ yum install m2crypto python-setuptools
$ easy_install pip
$ pip install shadowsocks
如果提示m2crypto安装失败,则先安装它的依赖
Copy $ yum install -y openssl-devel gcc swig python-devel autoconf libtool
写入配置文件
Copy $ vi /etc/shadowsocks.json
配置文件如下
Copy {
"server":"my_ip_address",
"server_port":8888,
"local_address": "127.0.0.1",
"local_port":1080,
"password":"my_password",
"timeout":300,
"method":"aes-256-cfb",
"fast_open": false
}
注意: my_ip_address
里面的ip地址写的是服务器的内网地址,password是用于连接shadowsocks的密码
如果要设置多端口,则配置文件如下
Copy {
"server":"my_ip_address",
"local_address": "127.0.0.1",
"local_port":1080,
"port_password": {
"8888": "my_password",
"8899": "my_password"
},
"timeout":300,
"method":"aes-256-cfb",
"fast_open": false
}
配置防火墙端口
Copy # 开启端口号8888
$ firewall-cmd --permanent --zone=public --add-port=8888/tcp
$ firewall-cmd --reload
# 无法开启则先打开
$ systemctl start firewalld
# 无法打开则先安装
$ yum install firewalld firewall-config
启动shadow socks
Copy # 方法一:前台运行
$ ssserver -c /etc/shadowsocks.json
# 方法二:后台运行
$ nohup ssserver -c /etc/shadowsocks.json &
关闭后台运行的进程
在执行完nohup [code] &
后,将会返回一个进程id可以通过kill
命令结束该进程,如kill 21199
。
如果忘记了进程id,可以通过ps
命令查询正在后台运行的进程
Copy $ ps -ef
# 将会展示所有进程目录,PID是进程id,PPID是父进程id
可以通过grep
命令继续筛选
Copy $ ps -ef |grep {关键字(进程id|命令)}
然后就可以使用kill
命令关闭进程了
杀死所有python进程
Copy ps -ef | grep python | cut -c 9-15| xargs kill -s 9
原版 & 魔改版 Google BBR
注意
1、安装 Google BBR 需升级系统内核,而安装锐速则需降级系统内核,故两者不能同时安装。
2、安装 Google BBR 需升级系统内核,有可能造成系统不稳定,故不建议将其应用在重要的生产环境中。
3、原版和魔改版 Google BBR 在不同地区的服务器上会有不同效果,具体孰优孰劣请分别安装进行测试。
原版BBR
执行命令
Copy $ wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && ./bbr.sh
中途需要用户按一次回车以继续,安装完成后将会提示重启服务器。
重启后,执行下面的三条命令,对比输出信息是否一致
Copy $ sysctl net.ipv4.tcp_available_congestion_control
# 输出需为:net.ipv4.tcp_available_congestion_control = reno cubic bbr
Copy $ sysctl net.ipv4.tcp_congestion_control
# 输出需为:net.ipv4.tcp_congestion_control = bbr
Copy $ sysctl net.core.default_qdisc
# 输出需为:net.core.default_qdisc = fq
对比过输出一致后,则安装完成
魔改版BBR
Copy # CentOs 6/7使用这个指令
$ wget --no-check-certificate https://raw.githubusercontent.com/nanqinlang-tcp/tcp_nanqinlang/master/General/CentOS/bash/tcp_nanqinlang-1.3.2.sh && bash tcp_nanqinlang-1.3.2.sh
# Debian 7/8 x64 系统请用这个
$ wget --no-check-certificate https://github.com/nanqinlang-tcp/tcp_nanqinlang/releases/download/3.4.2.1/tcp_nanqinlang-fool-1.3.0.sh && bash tcp_nanqinlang-fool-1.3.0.sh
然后系统会自动下载并运行。停顿时会让你选择
Copy 1.安装内核
2.开启算法
3.检查算法状态
4.卸载算法
这时候我们输入1
开始升级内核。
Copy Complete!
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.12.10-1.el7.elrepo.x86_64
Found initrd image: /boot/initramfs-4.12.10-1.el7.elrepo.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-693.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-693.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-735fbcd856b697dbc8d6deb1a11dd712
Found initrd image: /boot/initramfs-0-rescue-735fbcd856b697dbc8d6deb1a11dd712.img
done
kernel-ml-headers-4.12.10-1.el7.elrepo.x86_64
kernel-3.10.0-693.el7.x86_64
kernel-ml-devel-4.12.10-1.el7.elrepo.x86_64
kernel-ml-4.12.10-1.el7.elrepo.x86_64
此时输入reboot
重启服务器。重启后再输入下面的命令
Copy # CentOS 6/7 x64 系统请用这个
$ bash tcp_nanqinlang-1.3.2.sh
# Debian 7/8 x64 系统请用这个
$ bash tcp_nanqinlang-fool-1.3.0.sh
按提示输入2启用算法
直到提示tcp_nanqinlang is installed!
tcp_nanqinlang is running!
则为安装完成
CentOs 7安装ssr
登录root用户,按顺序执行下面三条命令
Copy wget --no-check-certificate -O shadowsocks-all.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-all.sh
chmod +x shadowsocks-all.sh
./shadowsocks-all.sh 2>&1 | tee shadowsocks-all.log
如果在运行第一条命令时提示找不到wget,则运行下面的命令安装
Copy CentOS:
yum -y install wget
Ubuntu/Debian:
apt-get -y install wget
接下来将会让你选择参数
选择协议:建议选择auth_aes128_md5
开始以下的几种
安装完成后重启服务器就好了,配置文件在/etc/shadowsocks-r/config.json
ssr常用命令
Copy # 启动SSR:
/etc/init.d/shadowsocks-r start
# 退出SSR:
/etc/init.d/shadowsocks-r stop
# 重启SSR:
/etc/init.d/shadowsocks-r restart
# SSR状态:
/etc/init.d/shadowsocks-r status
# 卸载SSR:
./shadowsocks-all.sh uninstall
如需修改参数,需修改配置文件/etc/shadowsocks-r/config.json
CentOs 7安装Python3
修改软连接的方式升级Python3(不推荐)
查看软连接指向
Copy $ ls -al /usr/bin/python
重命名软连接
Copy $ mv /usr/bin/python /usr/bin/python2.7.5
下载并解压 python
Copy $ wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz
$ tar -xf Python-3.6.4.tgz
安装python
Copy $ cd Python-3.6.4
$ ./configure
$ make
$ make install
让系统默认使用Python 3.6.4
由于软连接指向被修改。此时 yum不能使用。需编辑一下 yum 的配置文件。
把文件头部的#!/usr/bin/python
改成#!/usr/bin/python2.7.5
。
建立新的链接
Copy $ rm -rf /usr/bin/python
$ rm -rf /usr/bin/py
$ ln -s /usr/local/bin/python3.6 /usr/bin/python
直接安装Python3(两个版本共存,推荐)
直接安装Python3
Copy $ wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz
$ tar -xf Python-3.6.4.tgz
$ cd Python-3.6.4
$ ./configure
$ make
$ make install
然后修改环境变量
Copy $ ln -s * /usr/bin/python3 #*号修改为Python3的安装路径
然后如果想要安装Python3的包,可以使用这条命令
Copy $ python3 -m pip install *
在CentOs 7使用pyenv管理Python版本
执行命令,安装pyenv
Copy $ sudo yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
创建安装目录
Copy $ mkdir ~/.pyenv
$ git clone git://github.com/yyuu/pyenv.git ~/.pyenv
配置环境变量
Copy $ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(pyenv init -)"' >> ~/.bashrc
$ exec $SHELL -l
常用命令
Copy #全局设置Python版本
$ pyenv global 3.5.2
#安装指定版本
$ pyenv install 3.5.2
#查看可用版本
$ pyenv versions
#设置Python版本
$ pyenv local 3.5.2
#设置全局Python版本
$ pyenv global 3.5.2
#设置面向shell的Python版本(unset是取消设置)
$ pyenv shell 3.5.2
$ pyenv shell --unset
#每次安装完依赖包都要执行一次下面的命令
$ pyenv rehash
#卸载指定版本
$ pyenv uninstall 3.5.2
#更新
$ pyenv update
注意事项 :若在安装指定版本的Python时提示pyenv configure: error: no acceptable C compiler found in $PATH See 'config.log' for more details
时,那就是说明你可能没有安装gcc
。这时需要执行下面的安装命令
Copy yum groupinstall "Development Tools"
安装Python3.7+pipenv
安装Python3.7
1.安装依赖包
Copy yum -y groupinstall "Development tools"
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
2. 新建python3存放目录
Copy mkdir /usr/local/python3
3. 安装Python3
注意,python3.7.0 需要安装libffi-devel
Copy yum install libffi-devel -y
4.下载Python3安装包
大家可根据自己需求下载不同版本的Python3,本文下载的是Python3.7.0
解压压缩包,进入解压目录,指定安装目录,安装Python3。
Copy wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz
tar -xvJf Python-3.7.0.tar.xz
cd Python-3.7.0
./configure --prefix=/usr/local/python3
make && make install
安装Python3时,会自动安装pip。假如没有,需要自己手动安装。
Copy yum -y install python-pip
5. 创建软链接
Copy ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
6. 验证python的不同版本
这时,分别输入python
和python3
将会看到两个版本的python共存。
安装pipenv
1、安装虚拟环境
Copy pip3 install --upgrade pip
pip3 install --user --upgrade pipenv
2、找到pipenv的路径
Copy find / -name "pipenv" # 应该是会返回下面两条目录,我们选用第一行的目录来创建虚拟链接(选择短的那个?)
>> /usr/local/python3/bin/pipenv
>> /usr/local/python3/lib/python3.7/site-packages/pipenv
3、创建虚拟链接
Copy ln -s /usr/local/python3/bin/pipenv /usr/bin/pipenv
4、检查pipenv
Copy pipenv --version
>> pipenv, version 2018.
安装Docker
一键安装脚本
国外VPS版
Copy #!/bin/bash
# remove old version
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
# remove all docker data
sudo rm -rf /var/lib/docker
# preinstall utils
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
# add repository
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
# make cache
sudo yum makecache fast
# install the latest stable version of docker
sudo yum install -y docker-ce
# start deamon and enable auto start when power on
sudo systemctl start docker
sudo systemctl enable docker
# add current user
sudo groupadd docker
sudo gpasswd -a ${USER} docker
sudo systemctl restart docker
国内VPS版
Copy #!/bin/bash
# 移除掉旧的版本
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
# 删除所有旧的数据
sudo rm -rf /var/lib/docker
# 安装依赖包
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
# 添加源,使用了阿里云镜像
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 配置缓存
sudo yum makecache fast
# 安装最新稳定版本的docker
sudo yum install -y docker-ce
# 配置镜像加速器/阿里云加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
EOF
# 启动docker引擎并设置开机启动
sudo systemctl start docker
sudo systemctl enable docker
# 配置当前用户对docker的执行权限
sudo groupadd docker
sudo gpasswd -a ${USER} docker
sudo systemctl restart docker
配置阿里云docker加速
登录阿里云管理控制台 -> 容器镜像服务 -> 镜像加速器
获取到你的专属加速地址,填写到上面的registry-mirrors
字段
添加用户
添加普通用户
新建用户
需要在root 用户下执行
Copy # 新建testuser 用户
adduser testuser
# 给testuser 用户设置密码
passwd testuser
建立工作组
Copy # 新建test工作组
groupadd testgroup
新建用户同时增加工作组
Copy # 新建testuser用户并增加到testgroup工作组
useradd -g testgroup testuser
# 注::-g 所属组 -d 家目录 -s 所用的shell
给已有用户增加工作组
Copy usermod -G groupname username
临时关闭用户
在/etc/shadow文件中属于该用户的行的第二个字段(密码)前面加上*
就可以了。想恢复该用户,去掉*
即可
Copy # 或者使用如下命令关闭用户账号:
passwd testuser –l
# 重新释放:
passwd testuser –u
删除用户
Copy userdel testuser
groupdel testgroup
# 强制删除该用户的主目录和主目录下的所有文件和子目录
usermod –G testgroup testuser
显示用户信息
Copy # 用户列表文件
/etc/passwd
# 用户组列表文件
/etc/group
# 查看系统中有哪些用户
cut -d : -f 1 /etc/passwd
# 查看可以登录系统的用户
cat /etc/passwd | grep -v /sbin/nologin | cut -d : -f 1
# 查看用户操作
# 查看某一用户
w user
# 查看登录用户
who
# 查看用户登录历史记录
last
添加用户并替换掉root
添加用户
Copy # 添加用户
adduser user
# 设置密码
passwd user
给用户root权限,并禁止root登录
Copy # 修改权限,修改文件
chmod +w /etc/sudoers
vim /etc/sudoers
# 修改内容如下
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
user ALL=(ALL) ALL (添加这一行)
# 恢复只读权限
chmod -w /etc/sudoers
# 禁止root登录
# 修改权限,编辑文件
chmod 777 /etc/ssh/sshd_config
vim /etc/ssh/sshd_config
# 找到PermitRootLogin yes一行 将yes修改为no
PermitRootLogin no
# 保存退出,修改权限为只读
:wq
chmod 444 /etc/ssh/sshd_config
# 刷新权限
systemctl restart sshd
# 此时root用户已经无法登录