阿里云学习笔记
云服务器基本设置
首先需要说明的是本文所有内容都是基于CentOS 7.3的
使用密钥对认证登录
在管理控制台创建密钥对

根据要求设置即可

点击确定,下载私钥(name.pem)并保存到特定文件夹,如 D:/key

打开PuTTY的密钥生成工具PuTTYgen(安装PuTTY时会默认安装)

点击 load 选择 All Files... 并选择刚才保存的私钥文件



点击 Save private key 保存转换后的 .ppk 文件,这一步的作用其实就是将私钥文件格式 .pem 转换为PuTTY支持的格式 .ppk
打开PuTTY按如下步骤操作

点击 Browse... 按钮选择 .ppk 私钥文件后进行连接即可
修改主机名
进入bash之后,当前用户名之后的字符串就是主机名(不包括@),完整格式是这样的:
[一般用户名@主机名 当前目录]$
[root@主机名 当前目录]#
时候主机名是一长串标识符,不容易记忆也影响美观,需要对主机名进行修改
# 使用这个命令修改hostname会立即生效且重启也有效
hostnamectl set-hostname hostname
# 编辑hosts文件,给127.0.0.1添加hostname
vim /etc/hosts
# 执行以下命令查看hostname是否已经修改
hostname
更换国内阿里云yum镜像
# 备份源yum源
cd /etc/yum.repos.d && mkdir ~/backup
mv *.repo ~/backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 或者使用 curl
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 清除yum缓存
yum clean all
# 缓存yum源的安装包
yum makecache
安全组规则设置
根据需求开放对应端口即可,常用端口列表如下所示
| 服务名 | 端口号 (默认) |
|---|---|
| HTTP服务器 | 80 |
| HTTPS服务器 | 443 |
| SSH(安全登录)、SCP(文件传输)、端口号重定向 | 22 |
| JBOSS | 8080 |
| Tomcat | 8080 |
| Mysql | 3306 |
| RabbitMQ | 15672(控制台)、5672(服务器) |
| Nacos | 8848 |
| Redis | 6379 |
| Nginx | 80 |
| Docker远程连接端口 | 2375 |
注意:Docker的远程连接端口2375建议不要开放,除非设置了加密连接,否则服务器很有可能被拉去挖矿
文件传输
使用PSFTP
可以使用PuTTY的工具PSFTP在阿里云服务器与本地系统(windows)之间进行文件上传和下载
打开命令行输入以下命令(如果不能正常使用该命令则检查PuTTY的环境变量是否已经成功设置):
psftp -i [你的密钥对私钥文件保存路径]

由于使用密钥对远程连接服务器实例,所以需要在命令行中带参启动PSFTP,
-i即表示使用其后跟随的路径指向的密钥对登录接下来的服务器实例。
再输入以下命令:
open [你的服务器公网ip]
输入登陆用户名

可以看到提示 Remote working directory is /用户目录 ,此时可以执行以下操作:
-
使用
cd命令
移动远程工作目录到服务器端用于接收将要上传文件的目录或者本地要下载的文件所在的目录 -
使用
lcd命令
移动本地工作目录到用于接收将要下载的文件的目录或者本地将要上传的文件所在的目录
调整好工作目录之后:
-
使用
get [文件名]
从服务器端的工作目录下载指定文件到本地系统的工作目录 -
使用
put [文件名]
将本地系统的工作目录下的指定文件上传到服务器的工作目录下
使用WinSCP
PSFTP使用起来非常麻烦,所以我又找到了一个更好的FTP工具—WinSCP,直接搜索下载即可,它实现了拖拽上传和下载文件的功能,与Windows的资源管理器类似,非常方便
基本环境配置
注:Ubuntu下使用apt-get作为软件包管理工具
JDK的安装及配置
Open JDK VS Oracle JDK
这两个在功能上基本一致,点击查看 具体区别
安装之前需要查看一下系统是否已经内置OpenJDK,如果有,则需要 卸载
安装位置
建议安装在 /usr/local/ 目录下,关于Linux目录结构这里不再赘述,有需要 点击这里 查看
本文之后所有的安装位置默认都是
/usr/local/
下载解压
前往 官网 下载对应系统对应版本的JDK压缩文件后使用文件传输工具上传到服务器中
或者复制下载连接在服务器中使用
wget命令直接下载到服务器上
解压缩到指定目录(以 jdk-8u241-linux-x64.tar.gz 为例)
# 创建目录
mkdir /usr/local/java
# 解压缩到目标安装目录下
tar –zxvf jdk-8u241-linux-x64.tar.gz –C /usr/local/java
环境配置
修改环境变量
# 修改当前用户的环境变量,即这个jdk环境只对当前用户有用
vi ~/.bashrc
# 或
# 修改系统的环境变量,所有用户都可用
vi /etc/profile
在文件末尾追加下面内容
# 设置jdk安装根目录,注意要设置为你自己的解压路径
export JAVA_HOME=/usr/local/java/jdk1.8.0_241
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin
或使用命令
echo 'export JAVA_HOME=/usr/local/java/jdk1.8.0_241' >> /etc/profile
echo 'export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/# # lib/dt.jar:${JAVA_HOME}/lib/tools.jar' >> /etc/profile
echo 'export PATH=$PATH:${JAVA_HOME}/bin' >> /etc/profile
执行 source ~/.bashrc 或 source /etc/profile 命令使环境变量生效
执行 java -version 命令查看Java版本,出现Java版本信息则安装成功
MySQL的安装及配置
下载和安装
下载并安装MySQL官方的yum仓库
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
这里安装的是MySQL5.7,可以根据需要自行更改
使用yum安装MySQL
yum -y install mysql57-community-release-el7-10.noarch.rpm
yum install mysql-server
过程中出现的任何选择选yes即可
如果安装过程中出现 Public key for mysql-community-libs-compat-5.7.37-1.el7.x86_64.rpm is not installed 问题,执行以下命令后再执行安装命令
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
配置
首先启动MySQL
systemctl start mysqld
检查Mysql服务状态
systemctl status mysqld
显示如下结果说明mysql服务是正常的:

通过如下命令在日志文件中找出root用户的初始密码:
grep "password" /var/log/mysqld.log

使用如下命令进入MySQL:
mysql -u root -p
输入初始密码进入MySQL命令行后更改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
其中 new password 代表你要设置的密码
注意: 密码必须包含大小写字母、数字和特殊符号才能通过安全校验,不推荐通过关闭MySQL的密码安全校验来设置简单密码,毕竟数据库是非常重要的,作者的数据库就被黑过
远程访问
默认情况下,MySQL只允许本地访问,且默认的3306端口只对本地访问进行监听,远程访问是拒绝的。如果需要远程访问,需要进行配置
方式一:使用GRANT权限更改命令
执行以下命令开启远程访问限制:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.0.1' IDENTIFIED BY "123456";
*.* 表示该操作更改哪个数据库上的哪个表的权限, *.* 代表所有权限
root@192.168.0.1 表示root用户可以在IP为192.168.0.1的主机上远程连接本数据库,如果不想对IP进行限制,用 % 代替IP即可
123456 表示该用户连接时的密码
方式二:直接更改user表
update mysql.user set host='%' where user='root';
可以通过 select user, host from mysql.user; 查看所有用户的允许访问主机情况

常用命令
# 登录
mysql [–u 用户名 –p (密码) (–h 当前主机地址)]
# 选择数据库
use [数据库名];
# 执行sql文件
# 首先要选择数据库
source [sql文件路径];
# 启动、关闭、重启mysql服务
systemctl start mysqld
systemctl stop mysqld
systemctl restart mysqld
# 添加用户
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
# 更改权限
GRANT privileges ON databasename.tablename TO 'username'@'host';
# privileges – 用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所有的权限则使用ALL
# databasename – 数据库名
# tablename - 表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示,如*.*
命令结尾记得加分号
;
常见问题
不需要密码即可连接mysql
> use mysql;
# 接下来两条命令为更改用户密码
# mysql版本<=5.7
> update user set authentication_string=password('你的密码') where user='用户名';
# mysql版本>5.7
> update user set password=password('你的密码') where user='root';
# 主要就是这条命令,注意别打错
> update user set plugin='mysql_native_password';
# 刷新权限并退出
> flush privileges;
> exit;
# 重启mysql服务
# systemctl restart mysqld
在Ubuntu系统中可能会遇到更改了用户权限之后还是拒绝远程连接
vim /etc/mysql/mysql.conf.d/mysqld.cnf
找到如下内容:
instead of skip-networking the default is now to listen only on localhost which is more compatible and is not less secure.
bind-address = 127.0.0.1 # 这里默认监听本地localhost
将 bind-address = 127.0.0.1 注释掉,或者让 bind-address = 0.0.0.0 ,代表监听所有地址,设置完成之后重启MySQL服务即可
Redis的安装和配置
安装环境准备
由于Redis是C语言开发,所以安装之前必须确认是否安装GCC环境(可以通过 gcc -v 命令确认),如果没有安装,执行以下安装命令进行安装
yum install -y gcc
下载安装
# 下载并解压安装包
wget http://download.redis.io/releases/redis-5.0.3.tar.gz # 可以自己指定版本号
tar -zxvf redis-5.0.3.tar.gz
# 切换到redis解压目录下,执行编译
cd redis-5.0.3
make
# 指定安装目录并安装
make install PREFIX=/usr/local/redis
启动停止
前台启动
# 切换到redis命令目录
cd /usr/local/redis/bin/
# 前台启动redis
./redis-server
后台启动
# 从 redis 的源码目录中复制 redis.conf 到 redis 的安装目录
cp /usr/local/redis-5.0.3/redis.conf /usr/local/redis/bin/
# 修改 redis.conf 文件,把 daemonize no 改为 daemonize yes
vi redis.conf
# 执行后台启动
./redis-server redis.conf
停止
./redis-cli shutdown
注册为系统服务
添加系统服务文件
vi /etc/systemd/system/redis.service
添加以下内容
[Unit]
Description=redis-server
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf
ExecReload=/usr/local/redis/bin/redis-cli shutdown
ExecStop=/usr/local/redis/bin/redis-cli shutdown
PrivateTmp=true
[Install]
WantedBy=multi-user.target
执行 systemctl daemon-reload 使服务生效
注册为系统服务后可以使用系统服务命令操作Redis
# 注意:可以不加后缀.service
# 启动redis服务
systemctl start redis.service
# 停止redis服务
systemctl stop redis.service
# 重新启动服务
systemctl restart redis.service
# 查看服务当前状态
systemctl status redis.service
# 设置开机自启动
systemctl enable redis.service
# 停止开机自启动
systemctl disable redis.service
远程连接及授权设置
如果想要Redis能远程可以访问, 那么需要将 redis.conf 里面的 bind 127.0.0.1 这一行注释掉, 并且将 protected-mode 后的 yes 改为 no
若需要设置连接密码, 找到 #requirepass foobared 取消注释并将其后的值改为自已的密码
具体步骤如下:
打开并编辑Redis的配置文件(本例中位于 /usr/local/redis/bin/redis.conf ),找到如下行:
...
#requirepass foobared
...
bind 127.0.0.1
...
protected-mode yes
...
修改为:
...
requirepass yourpassword
...
# bind 127.0.0.1
...
protected-mode no
...
重启即可生效
Nacos的安装和配置
下载安装
前往 官网 下载对应系统对应版本的压缩文件后使用文件传输工具上传到服务器中
或者复制下载连接在服务器中使用
wget命令直接下载到服务器上
解压缩到指定目录(以 nacos-server-1.4.2.tar.gz 为例)
# 创建目录
mkdir /usr/local/nacos
# 解压缩到目标安装目录下
tar –zxvf nacos-server-1.4.2.tar.gz –C /usr/local/nacos
启动停止
启动停止命令位于 /usr/local/nacos/bin 目录下
使用 sh startup.sh -m standalone 命令以单机模式启动nacos
更多启动参数参考官方文档
使用 sh shutdown.sh 命令停止nacos
打开浏览器输入 ip:8848/nacos 地址如果可以看到nacos主页,说明已经安装成功
持久化配置
安装MySQL数据库,版本要求:5.6.5+,具体参考小节—MySQL的安装和配置
使用官方的sql文件初始化MySQL数据库,sql文件位于源码仓库 distribution/conf/nacos-mysql.sql 下
修改 /usr/local/nacos/conf/application.properties 文件,增加MySQL数据源配置(目前只支持MySQL)
...
#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
spring.datasource.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:
# 数据库连接url
db.url.0=jdbc:mysql://ip:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
# 用户名
db.user.0=root
# 密码
db.password.0=123456
...
注册为系统服务
添加系统服务文件
vi /etc/systemd/system/nacos.service
添加以下内容
[Unit]
Description=nacos
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nacos/bin/startup.sh -m standalone
ExecReload=/usr/local/nacos/bin/shutdown.sh
ExecStop=/usr/local/nacos/bin/shutdown.sh
PrivateTmp=true
[Install]
WantedBy=multi-user.target
执行 systemctl daemon-reload 使服务生效
注册为系统服务后可以使用系统服务命令操作Nacos
# 注意:可以不加后缀.service
# 启动redis服务
systemctl start nacos.service
# 停止redis服务
systemctl stop nacos.service
# 重新启动服务
systemctl restart nacos.service
# 查看服务当前状态
systemctl status nacos.service
# 设置开机自启动
systemctl enable nacos.service
# 停止开机自启动
systemctl disable nacos.service
常见问题
Nacos启动报错:找不到JAVA_HOME
使用 java -version 命令查看Java环境变量配置是否正确,如果正确那应该就是在Nacos启动脚本存在问题,查看文件(本例中位置为 /usr/local/nacos/bin/startup.sh )具体内容如下:
...
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=$HOME/jdk/java
# 下面这行是我加的
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/local/java/jdk1.8.0_301
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/opt/taobao/java
[ ! -e "$JAVA_HOME/bin/java" ] && unset JAVA_HOME
...
可以发现此时使用Nacos原有的检测JAVA_HOME的配置无法正确获取JAVA_HOME信息,所以手动指定就好
添加一个扫描JAVA_HOME变量的位置,位置即为你本机jdk安装的位置,然后保存退出,重启Nacos服务即可
RabbitMQ的安装和配置
环境准备
由于RabbitMQ是基于erlang语言开发的,所以在安装RabbitMQ之前需要安装erlang环境
但是在安装之前首先需要确认RabbitMQ版本,然后才能确定需要的erlang版本,对应关系可以在 这里 查看,如下图:

根据官网的要求确定你需要安装的RabbitMQ版本和erlang版本,下面开始安装
首先安装依赖
yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget gtk2-devel binutils-devel
前往 官网 或 GitHub仓库 下载对应系统的erlang安装文件后使用文件传输工具上传到服务器中
或者复制下载连接在服务器中使用
wget命令直接下载到服务器上
解压
tar -zxvf otp_src_24.0.tar.gz
cd ./otp_src_24.0
创建安装目录
mkdir /usr/local/erlang
配置安装路径
./configure --prefix=/usr/local/erlang
安装
make install
检查是否安装成功
ll /usr/local/erlang/bin
配置环境变量
echo 'export PATH=$PATH:/usr/local/erlang/bin' >> /etc/profiles
source /etc/profiles
检查是否配置成功
# 进入erlang命令行
erl
# 退出命令行
halt().
下载安装
前往 官网 或 GitHub仓库 下载对应系统的RabbitMQ安装文件后使用文件传输工具上传到服务器中
或者复制下载连接在服务器中使用
wget命令直接下载到服务器上
由于RabbitMQ提供的安装包是 tar.xz 格式,所以需要用到 xz 命令,没有的话需要安装
yum install -y xz
第一次解压
xz -d rabbitmq-server-generic-unix-3.8.22.tar.xz
第二次解压
tar -zxvf rabbitmq-server-generic-unix-3.8.22.tar -C /usr/local/
配置环境变量
echo 'export PATH=$PATH:/usr/local/rabbitmq_server-3.8.22/sbin' >> /etc/profile
source /etc/profile
检查是否安装成功
rabbitmqctl version
启停控制
# 以后台守护进程方式启动
rabbitmq-server -detached
# 查看状态
rabbitmqctl status
# 停止
rabbitmqctl stop
配置
开启Web管理控制台功能
rabbitmq-plugins enable rabbitmq_management
启动之后访问 http://127.0.0.1:15672/ ,默认账号为 guest ,密码为 guest ,默认账号只能本地访问
用户管理
查看所有用户
rabbitmqctl list_users
添加用户
rabbitmqctl add_user username password
配置权限
rabbitmqctl set_permissions -p "/" username ".*" ".*" ".*"
查看用户权限
rabbitmqctl list_user_permissions username
设置tag
rabbitmqctl set_user_tags username administrator
修改用户密码
rabbitmqctl change_password username ''
删除默认用户(安全起见)
rabbitmqctl delete_user guest
配置好之后重启RabbitMQ即可
常见问题
异常退出的用户终端不能正常关闭,浪费资源
在远程连接服务器时会为每个连接用户开启一个新的终端,但是由于网络或其他原因可能会导致连接突然中断,使得服务器来不及释放相关资源(比如你正在使用vim命令编辑文件)并关闭当前用户的终端,所以这个进程会一直保留在系统中,无法自动结束,造成系统资源浪费
比如我现在登录到服务器上,然后断开网络,PuTTY会提示我连接失效,关闭当前连接窗口后重新连接网络并重新连接服务器,执行 who 命令查看当前登录的用户列表

可以看到root用户开启了两个终端,分别为 pts/0 和 pts/1 , pts/0 就是由于断网操作导致的未能正常结束的终端,这时需要我们手动结束这个失效连接的终端
pts/0这种形式表示用户的连接方式是终端,还存在其他形式,比如tty7表示图形界面;GNOME也表示图形界面
执行命令 ps -t /dev/pts/0

命令中的
/dev/之后的内容对应who命令执行结果中需要结束的用户终端代号
这样我们就找到了这个失效连接的进程号(PID)为 18914 ,然后执行 kill -9 18914 命令即可结束失效连接的终端进程并释放资源
再次执行 who 命令就会发现root用户现在只有一个终端了
服务(如MySQL、Nacos、Redis等)配置无误但是远程访问被拒绝
检查安全组规则设置,是否开放对应端口
检查服务器的防火墙是否关闭
systemctl status firewalld

如果未关闭可以通过下面的命令关闭:
# 关闭防火墙
systemctl stop firewalld
# 关闭开机启动
systemctl disable firewalld

浙公网安备 33010602011771号