vultr主机 CentOS7 安装配置

作者: 麻辣阁 分类: wordpress 发布时间: 2018-11-24 20:54

订购

这里 注册 vultr订购,下单时选 CentOS7 64位, 后台会提供 IP, 用户名和密码.

IP问题

如果机器能ping通, 但ssh连接不上, 有可能该IP已经被封, 确认方式:

如果前者22端口是关闭的而后者是 open的, IP已经被封, 解决方式:新部署一台机器, 获得新的IP, 然后删除原来的机器(如果先删除机器, 得到的 IP不会变化), 再试试.

修改密码

passwd

密匙

在服务器上生成密匙

ssh-keygen -t rsa

下载私匙id_rsa到本地 id_rsa_xxx, 参考https://www.ssh.com/ssh/putty/linux/puttygen执行如下命令生成putty 可用的ppk私匙:

puttygen id_rsa_xxx -O private -o id_rsa_xxx.ppk

保存私匙时可以加 key passphrase.

更改ssh 配置文件, vi /etc/ssh/sshd_config ,更改如下字段设置为如下状态,同时修改Port端口, 假设为 1111:

# 密匙认证
RSAAuthentication yes
PubkeyAuthentication yes
StrictModes no
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no # 关闭SSH密码登陆

Vultr 主机安装好CentOS7后是默认开启防火墙的,即使手动在/etc/ssh/sshd_config里修改好了端口,再次连接时也会连不上, 需要添加端口规则:

firewall-cmd --add-port 1111/tcp --permanent
service firewalld restart

设置 putty客户端:

  • connection —> data : 设置用户名
  • connection —> SSH —> Auth: 设置 Private key 文件的位置
  • 修改端口为上述修改后的端口
  • 重启sshd服务:service sshd restart

客户端登录出现 Server refused our key 问题的解决: 将生成的id_rsa.pub cp为 authorized_keys, 保存到对应目录.

配置CentOS自动更新

yum-cron会在/etc/cron.daily 目录下生成一个0yum-daily.cron文件。

yum install  yum-cron
chkconfig --level 345 yum-cron on
service yum-cron start

配置为自动更新:

vi /etc/yum/yum-cron.conf, 将:

apply_updates = no 修改为 :

apply_updates = yes

值得注意的是, 即使配置了自动更新, 有时候也会发生不更新的情况,比如: 有些更新需要手动做某些特殊的选择. 因此不定期的手动更新是十分必要的.

更新系统: yum upgrade

增加swap分区

使用 free -m命令查看swap分区大小是否为0.

使用dd命令创建一个swap分区,count的值是:size(多少M)* 1024,这里设置的1G虚拟内存,也就是count=1024000.

dd if=/dev/zero of=/home/swap bs=1024 count=1024000

输出类似:

1024000+0 records in
1024000+0 records out
1048576000 bytes (1.0 GB) copied, 3.99529 s, 262 MB/s

格式化swap分区,把格式化后的文件分区设置为swap分区,

mkswap /home/swap
swapon /home/swap

提示: swapon:/home/swap: insecure permissions 0644, 0600 suggested

chmod 600 /home/swap

关闭SWAP分区命令为:

swapoff /home/swap

vi /etc/fstab, 在文末加入如下行让swap分区自动挂载

/home/swap swap swap default 0 0

swappiness的值的大小对如何使用swap分区是有着很大的联系的。swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。

安装 nginx

参考: http://nginx.org/en/linux_packages.html#stable 安装稳定版本:

vi /etc/yum.repos.d/nginx.repo ,安装 stable 版本

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

安装稳定版本 nginx 并设置开机启动

cd ~ 
wget http://nginx.org/keys/nginx_signing.key 
rpm --import nginx_signing.key
yum install -y nginx 
systemctl enable nginx
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.

添加80端口权限,并重启防火墙:

firewall-cmd --zone=public --add-port=80/tcp --permanent
service firewalld restart

命令含义:
–zone #作用域
–add-port=80/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效

firewalld 相关命令:

firewalld的命令
运行、停止、禁用firewalld
启动:# systemctl start firewalld
重启:# systemctl restart firewalld
查看状态:# systemctl status firewalld 或者 firewall-cmd --state
停止:# systemctl disable firewalld
禁用:# systemctl stop firewalld
配置firewalld
查看版本:$ firewall-cmd --version
查看帮助:$ firewall-cmd --help
显示状态:$ firewall-cmd --state
查看区域信息: $ firewall-cmd --get-active-zones
查看指定接口所属区域:$ firewall-cmd --get-zone-of-interface=eth0
拒绝所有包:# firewall-cmd --panic-on
取消拒绝状态:# firewall-cmd --panic-off
查看是否拒绝:$ firewall-cmd --query-panic
更新防火墙规则:
# firewall-cmd --reload
# firewall-cmd --complete-reload
两者的区别就是第一个无需断开连接,就是firewalld特性之一动态添加规则,第二个需要断开连接,类似重启服务
将接口添加到区域,默认接口都在public
# firewall-cmd --zone=public --add-interface=eth0
永久生效再加上 --permanent 然后reload防火墙
设置默认接口区域
# firewall-cmd --set-default-zone=public
立即生效无需重启
打开端口(貌似这个才最常用)
查看所有打开的端口:
# firewall-cmd --zone=dmz --list-ports
加入一个端口到区域:
# firewall-cmd --zone=dmz --add-port=8080/tcp
若要永久生效方法同上
打开一个服务,类似于将端口可视化,服务需要在配置文件中添加,/etc/firewalld 目录下有services文件夹,这个不详细说了,详情参考文档
# firewall-cmd --zone=work --add-service=smtp
移除服务
# firewall-cmd --zone=work --remove-service=smtp

参考: https://www.jianshu.com/p/6ac0a9afa080

安装 mariadb

CentOS 7 版本将MySQL数据库软件从默认的程序列表中移除,用mariadb代替了,不能安装 MySQL

默认安装的 MariDB版本比较低,如果已经安装了可以先卸载,暂停数据库,查看需要卸载的数据包,卸载数据库,清空缓存

# service mariadb stop
# rpm -qa|grep mariadb
mariadb-5.5.60-1.el7_5.x86_64
mariadb-libs-5.5.60-1.el7_5.x86_64
mariadb-server-5.5.60-1.el7_5.x86_64
# yum remove mariadb mariadb-libs mariadb-server
# yum clean all
# rm -rf /var/cache/yum
# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)

http://yum.mariadb.org/ 列出了可用版本, 2018.11 最高是10.4

创建源:

# cd /etc/yum.repos.d/
# vi MariaDB10.4.repo

添加以下内容,baseurl 根据 http://yum.mariadb.org/ 所选版本修改:

[mariadb]   
name = MariaDB    
baseurl = http://yum.mariadb.org/10.4/centos7-amd64/
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

如果不是 vultr而是国内主机, 可能默认的官方源太慢了, 可以换国内的:

[mariadb]   
name = MariaDB    
baseurl = https://mirrors.ustc.edu.cn/mariadb/yum/10.4/centos7-amd64/
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

安装:

# yum clean all
# rm -rf /var/cache/yum
# yum install mariadb-server mariadb

启动:

systemctl start mariadb

修改 mariadb 的root密码

vi /etc/my.cnf文件,在[mysqld]下添加 skip-grant-tables, 重启数据库可以无密码登录, 修改root密码:

# service mariadb restart
Redirecting to /bin/systemctl restart mariadb.service
# mysql
MariaDB [(none)]> use mysql
Database changed
MariaDB [mysql]> 
UPDATE user SET password=password('your_password') WHERE user='root';

注释掉 skip-grant-tables, 重启数据库.

配置mariadb字符集

vi /etc/my.cnf, 修改默认编码

[mysqld]
collation-server = utf8_general_ci
character-set-server = utf8

[mysql]
default-character-set =utf8

查看字符集:

MariaDB [(none)]> show variables like 'character%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.01 sec)


发表评论

电子邮件地址不会被公开。 必填项已用*标注