yum源

1
2
3
4
5
6
7
8
sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

yum clean all
yum makecache
# 安装第三方源并且更新
yum -y install epel-release
yum -y update
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#

[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
#baseurl=http://vault.centos.org/7.9.2009/x86_64/os/
baseurl=http://vault.centos.org/7.9.2009/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#released updates
[updates]
name=CentOS-$releasever - Updates
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
#baseurl=http://vault.centos.org/7.9.2009/x86_64/os/
baseurl=http://vault.centos.org/7.9.2009/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
#$baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
#baseurl=http://vault.centos.org/7.9.2009/x86_64/os/
baseurl=http://vault.centos.org/7.9.2009/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
#baseurl=http://vault.centos.org/7.9.2009/x86_64/os/
baseurl=http://vault.centos.org/7.9.2009/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
1
2
sudo yum clean all
sudo yum makecache

vim安装

1
2
vim --version
yum -y install vim

wget安装

1
yum install -y wget

netstat安装

1
2
3
yum -y install net-tools
netstat -tuln
ss -tuln

修改主机名

1
2
3
/etc/hostname

hostnamectl 或者hostname 查看是否修改成功

固定ip

目录:/etc/sysconfig/network-scripts/ifcfg-ens33

1
2
3
4
5
6
7
8
BOOTPROTO=static  # 设置为static以使用静态IP

IPADDR=192.168.1.100 # 设置你想要的静态IP地址
NETMASK=255.255.255.0 # 子网掩码
GATEWAY=192.168.1.1 # 网关地址
DNS1=8.8.8.8 # 首选DNS服务器

systemctl restart network

ssh

配置文件:/etc/ssh/sshd_config

把公钥放在authorized_keys文件,每一个公钥单独行

1
2
3
4
5
mkdir -p ~/.ssh
chmod 700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
ssh 10.0.0.31

ip映射

在 ~/.ssh下面创建config文件,写入下面代码可以实现:ssh wen连接远程

1
2
3
Host wen
HostName 59.110.47.222
User root

防火墙

1
2
3
4
5
6
7
8
9
yum install firewalld
systemctl status firewalld
systemctl stop firewalld
systemctl disable firewalld
systemctl start firewalld
#开放端口
firewall-cmd --list-ports
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload

安装nginx

1
2
3
yum install -y nginx
systemctl start nginx
systemctl enable nginx

安装supervisorctl

1
2
3
4
yum install -y supervisor
systemctl enable supervisord # 开机自启动
systemctl start supervisord # 启动supervisord服务
systemctl status supervisord # 查看supervisord服务状态

常用命令

1
2
3
4
5
6
7
8
supervisorctl status 查看进程运行状态
supervisorctl start 进程名 启动进程
supervisorctl stop 进程名 关闭进程
supervisorctl restart 进程名 重启进程
supervisorctl update 重新载入配置文件
supervisorctl shutdown 关闭supervisord
supervisorctl start all 启动所有
supervisorctl stop all 关闭所有

配置文件

1
2
3
4
5
6
7
8
9
[program:nwsz-gateway]
directory = /mnt/api/
command = /mnt/app/jdk17/bin/java -jar -Dspring.profiles.active=dev nwsz-gateway.jar
autorestart = true
startsecs = 1
memory_limit=128MB
stdout_logfile_maxbytes = 50MB
stdout_logfile_backups = 20
stdout_logfile = /mnt/api/log/nwsz-gateway.log

安装mysql5.7

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 1.安装mysql5.7
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
sudo rpm -ivh mysql57-community-release-el7-11.noarch.rpm
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
sudo yum install mysql-server
sudo systemctl start mysqld
sudo systemctl enable mysqld
# 2.修改mysql配置
grep 'temporary password' /var/log/mysqld.log
mysql -uroot -p'!CrXw>?4VM:d'
alter user root@localhost identified by 'zW2025@mysql';
grant all privileges on *.* to root@'%' identified by 'zW2025@mysql' WITH GRANT OPTION;


yum remove mysql-server
# 其他
rpm -qa | grep mysql57-community-release # 查询是否安装mysql5.7配置包
sudo rpm -e mysql80-community-release-el7-3.noarch # 卸载现有的rpm仓库

安装mysql8.0

失败,密钥问题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# 1.安装mysql8.0
# 下载 MySQL 8.0 的 YUM 源配置文件
wget https://dev.mysql.com/get/mysql80-community-release-el7-6.noarch.rpm

# 安装源配置 RPM 包
rpm -ivh mysql80-community-release-el7-6.noarch.rpm

# 安装 yum-utils(用于配置仓库)
yum -y install yum-utils
# 导入 MySQL 8.0 官方 GPG 密钥(推荐方式)
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2023
# 安装 MySQL 社区服务器
yum -y install mysql-community-server
systemctl start mysqld
systemctl restart mysqld
systemctl stop mysqld
yum -y remove mysql-community-server

# 2.修改mysql配置
cat /var/log/mysqld.log #进入查看密码
mysql -u root -p #登录
SHOW VARIABLES LIKE 'validate_password.%'; # 查看密码校验级别
SET GLOBAL validate_password.policy=LOW; # 设置密码校验级别
SET GLOBAL validate_password.length=6; # 设置密码最短长度
SHOW VARIABLES LIKE 'validate_password.%'; # 再次查看密码校验级别
ALTER USER 'root'@'localhost' IDENTIFIED BY '196691'; #修改密码
use mysql #使用数据库
select Host, User from user; #查看是否可以远程连接
CREATE USER 'root'@'%' IDENTIFIED BY '196691'; # 修改所有人可以连接
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'; # 赋予特权
alter user 'root'@'%' identified with mysql_native_password by '196691'; # 鉴权插件使用密码
select Host,User,plugin from user; # 查看使用密码是否成功

安装redis

配置文件:/etc/redis.conf

1
2
3
4
5
6
7
8
9
10
yum install epel-release
yum makecache
yum install redis -y
systemctl start redis
systemctl enable redis
redis-cli

# 配置文件修改
bind 0.0.0.0 -::1 # 配置文件修改允许远程连接
requirepass 44zYqaZ9G4Bnb4Ed # 设置密码

安装maven

1
2
3
4
5
6
wget https://repo.huaweicloud.com/apache/maven/maven-3/3.8.1/binaries/apache-maven-3.8.1-bin.tar.gz
tar -zxvf apache-maven-3.8.1-bin.tar.gz
export MAVEN_HOME=/opt/app/apache-maven-3.8.1/
export PATH=${PATH}:${MAVEN_HOME}/bin
source /etc/profile
mvn -verison

安装gitlab

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
################
######非必要#####
#防火墙开启http、https、ssh访问
yum install -y curl policycoreutils-python openssh-server perl
sudo systemctl enable sshd
sudo systemctl start sshd
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld
#使用postfix发送邮件
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
#选择“Internet Site”
#“mail name”设置为您服务器的外部 DNS 域名
#SMTP配置:https://gitlab.cn/docs/omnibus/settings/smtp.html
######非必要#####
################

#配置GitLab软件源镜像
curl -L get.gitlab.cn | bash
#安装
EXTERNAL_URL="http://121.40.130.242" yum install -y gitlab-jh
#安装方法:https://gitlab.cn/docs/jh/install/install_methods.html
#获取初始密码:
cat /etc/gitlab/initial_root_password
#修改访问地址:external_url
vim /etc/gitlab/gitlab.rb
gitlab-ctl reconfigure

安装rabbitMQ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
yum -y install epel-release
yum -y update
yum -y install erlang socat
erl -version
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/rabbitmq_v3_6_16/rabbitmq-server-3.6.16-1.el7.noarch.rpm
rpm -ivh rabbitmq-server-3.6.16-1.el7.noarch.rpm
# 或者 rpm -Uvh rabbitmq-server-3.6.16-1.el7.noarch.rpm
# -U表升级
# 启动服务
sudo systemctl start rabbitmq-server

# 设置开机自启
sudo systemctl enable rabbitmq-server

# 查看状态
sudo systemctl status rabbitmq-server

# 启用管理插件 (如果需要web控制台可以选择)
sudo rabbitmq-plugins enable rabbitmq_management

# 重启服务(如有必要)
sudo systemctl restart rabbitmq-server


firewall-cmd --zone=public --add-port=5672/tcp --permanent && firewall-cmd --reload

firewall-cmd --zone=public --add-port=15672/tcp --permanent && firewall-cmd --reload


# 创建账号和密码
rabbitmqctl add_user admin 123456

# 添加admin为管理员
rabbitmqctl set_user_tags admin administrator


# 为用户添加资源权限,添加配置、写、读权限
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
# 查看平台所有用户权限
sudo rabbitmqctl list_permissions -p /
#修改用户密码
rabbitmqctl change_password 用户名 新密码

安装docker

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
sudo yum install -y yum-utils
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum -y install docker-ce
sudo systemctl start docker
sudo systemctl status docker
sudo systemctl enable docker

sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.imgdb.de",
"https://docker-0.unsee.tech",
"https://docker.hlmirror.com",
"https://docker.1ms.run",
"https://func.ink",
"https://lispy.org",
"https://docker.xiaogenban1993.com"
]
}
EOF

sudo systemctl daemon-reload
sudo systemctl restart docker

docker pull hello-world
docker run hello-world

# 卸载
yum remove docker-ce
rm -rf /var/lib/docker

docker命令

1
2
3
4
5
6
7
8
docker ps 
docker images
docker run image
docker stop container
docker rm container
docker rm -f container_name
docker rmi image
docker exec -it container /bin/bash
docker安装mysql5.7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# 拉镜像
docker pull mysql:5.7

# 创建文件
mkdir -p /mnt/mysql/log
mkdir -p /mnt/mysql/data
mkdir -p /mnt/mysql/conf
touch /mnt/mysql/conf/my.cnf #可以没有,配置一些慢查询

# my.cnf
[mysqld]
# 设置数据目录
datadir=/var/lib/mysql
# 设置日志目录
log-error=/var/log/mysql/error.log
slow_query_log=1
slow_query_log_file=/var/log/mysql/slow-query.log

# 创建容器
docker run -d \
--name mysql \
-p 3306:3306 \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=196691 \
-v /mnt/mysql/log:/var/log/mysql \
-v /mnt/mysql/data:/var/lib/mysql \
-v /mnt/mysql/conf:/etc/mysql/conf \
mysql:5.7

# 进入容器
docker exec -it mysql /bin/bash
docker安装mysql8.0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# 拉镜像
docker pull mysql:8.0

# 创建文件
mkdir -p /mnt/mysql/log
mkdir -p /mnt/mysql/data
mkdir -p /mnt/mysql/conf
touch /mnt/mysql/conf/my.cnf #可以没有,配置一些慢查询

# my.cnf
[mysqld]
# 设置数据目录
datadir=/var/lib/mysql
# 设置日志目录
log-error=/var/log/mysql/error.log
slow_query_log=1
slow_query_log_file=/var/log/mysql/slow-query.log

# MySQL 8.0 新特性配置(可选)
default_authentication_plugin=mysql_native_password
innodb_file_per_table=1
innodb_log_file_size=64M
max_connections=200

# 创建容器
docker run -d \
--name mysql \
--privileged=true \
-p 3306:3306 \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=196691 \
-v /mnt/mysql/log:/logs \
-v /mnt/mysql/data:/var/lib/mysql \
-v /mnt/mysql/conf:/etc/mysql/conf.d \
mysql:8.0

# 注意挂载路径是:/etc/mysql/conf.d(MySQL 8.0 推荐配置挂载路径)

# 进入容器
docker exec -it mysql /bin/bash
mysql -uroot -p 196691
docker安装redis
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# 拉镜像
docker pull redis

mkdir -p /mnt/redis/data
## 创建目录
mkdir -p /mnt/redis/conf
## 创建文件
touch /mnt/redis/conf/redis.conf

vi /mnt/redis/conf/redis.conf
# 在/mnt/redis/redis.conf下面添加
bind 0.0.0.0
port 6379
dir /data
dbfilename dump.rdb
appendonly no
requirepass 123456

# 创建容器
docker run \
-d \
--name redis \
-p 6379:6379 \
--restart unless-stopped \
-v /mnt/redis/data:/data \
-v /mnt/redis/conf/redis.conf:/etc/redis/redis.conf \
redis:latest \
redis-server /etc/redis/redis.conf

# 进入容器
docker exec -it redis /bin/bash
redis-cli -a 123456
set name zou
keys *
# 重启docker外部机出现dump.rdb
docker restart redis
# 客户端连接测试成功
#查看端口
netstat -tuln或者ss -tuln
docker安装nginx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
docker pull nginx

docker run --name nginx -p 80:80 -d nginx
#拷贝配置文件,然后删除容器,重启容器
mkdir -p /mnt/nginx/config
#把两个配置文件拷贝出来
docker cp nginx:/etc/nginx/conf.d/default.conf /mnt/nginx/config
docker cp nginx:/etc/nginx/nginx.conf /mnt/nginx/config

#删除容器,重新开一个容器
docker rm -f nginx

docker run --name nginx -p 80:80 --restart always \
-v /mnt/nginx/config/nginx.conf:/etc/nginx/nginx.conf:ro \
-v /mnt/nginx/html:/usr/share/nginx/html:rw \
-v /mnt/nginx/config/default.conf:/etc/nginx/conf.d/default.conf:ro \
-v /mnt/nginx/log:/var/log/nginx -d nginx

#创建index.html写入一些内容,放入html目录浏览器打开测试成功
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
测试nginx1
</body>
</html>

nginx远程传输

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
location /download/ {
alias /mnt/web/test/;

# 强制下载所有文件
add_header Content-Disposition "attachment";
add_header Content-Type "application/octet-stream";

sendfile on; # 开启高效文件传输模式
autoindex on; # 开启目录文件列表
autoindex_exact_size on; # 显示出文件的确切大小,单位是bytes
autoindex_localtime on; # 显示的文件时间为文件的服务器时间
charset utf-8, gbk; # 避免中文乱码
}
systemctl restart nginx
curl -O http://192.169.31.101/download/

ftp下载

安装vsftp(服务端)

1
2
3
yum -y install vsftpd
systemctl start vsftpd #启动服务
systemctl enable vsftpd #设置开机自启

配置文件:vim /etc/vsftpd/vsftpd.conf

1
2
3
4
#anon_umask=022                #匿名用户所上传文件的权限掩码 
#anon_upload_enable=YES #允许匿名用户上传文件
#anon_mkdir_write_enable=YES #允许匿名用户创建目录
#anon_other_write_enable=YES #是否允许匿名用户有其他写入权(改名,删除,覆盖)

安装客户端lftp

1
2
3
4
5
6
7
8
9
10
11
12
yum -y install lftp
systemctl start lftp
systemctl restart lftp
[root@client ~]# lftp 192.168.246.160
lftp 192.168.246.160:~> ls
drwxr-xr-x 2 0 0 6 Oct 30 2018 pub
drwxr-xr-x 2 14 50 6 Oct 30 2018 upload
lftp 192.168.246.160:/> cd upload/
lftp 192.168.246.160:/upload> ls
-rw-r--r-- 1 14 50 0 Aug 02 19:14 test.txt
lftp 192.168.246.160:/upload> get test.txt #下载
lftp 192.168.246.160:/upload> exit

ftp命令

1
2
3
4
5
6
7
8
get 下载单个文件
mget 下载多个文件
mirror 下载目录
nput 上传单个文件
mput 上传多个文件
mirror -R 上传目录
mkdir 创建目录
rm -rf 删除文件或者目录

用户访问

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[root@lnmp ~]# useradd zhangsan    #添加本地用户
[root@lnmp ~]# echo "123" | passwd --stdin zhangsan #设置密码
[root@lnmp ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO #将允许匿名登录关闭
#anon_umask=022 #匿名用户所上传文件的权限掩码
#anon_upload_enable=YES #允许匿名用户上传文件
#anon_mkdir_write_enable=YES #允许匿名用户创建目录
#anon_other_write_enable=YES #是否允许匿名用户有其他写入权(改名,删除,覆盖)
#以上是上一步配置的匿名用户登录,都需要注释掉
103 chroot_list_enable=YES #启用限制登陆用户在主目录里面
104 # (default follows)
105 chroot_list_file=/etc/vsftpd/chroot_list #限制登陆的用户在这个文件列表中,一行一个用户
106 allow_writeable_chroot=YES #允许限制的用户对目录有写权限
#以下两行可选择添加
local_root=/home/zhangsan # 设置本地用户的FTP根目录,一般为用户的家目录
local_max_rate=0 # 限制最大传输速率(字节/秒)0为无限制
[root@lnmp ~]# vim /etc/vsftpd/chroot_list
zhangsan #添加zhangsan用户
[root@lnmp ~]# systemctl restart vsftpd
1
2
3
4
5
6
7
[root@lnmp ~]# lftp lftp 192.168.153.137 -u zhangsan
Password:
lftp zhangsan@192.168.153.137:~> ls
lftp zhangsan@192.168.153.137:~> mkdir aaa
mkdir ok, `aaa' created
lftp zhangsan@192.168.153.137:~> ls
drwxr-xr-x 2 1000 1000 6 Aug 02 20:55 aaa