一、安装系统
1.安装准备(centOS镜像文件,vmware)记住安装路径
2.安装VMware后进入创建虚拟机
之后稍后安装系统
命名并选择安装位置
使用镜像文件(第一步的那个找下载的安装路径)
完成后进入系统
二,启动设置
1、出现CentOS安装界面,选择第一项Install CentOS 7
2、设置语言,可设置成中文
3、INSTALLATION SUMMARY安装总览,这里包括CentOS 7的所有设置
4、KEYBOARD 键盘和INSTALLATION SOURCE安装资源就默认即可。
5、DATE&TIME设置时区和时间,Region设置Asia,City设置Shanghai,设置完成点击Done。
6. 选择键盘,点击“键盘”
点击“+”,在键盘布局中拉到最后选择“英语(美国)”,选中后点击添加
调整键盘顺序:选择“美式英语”,并点击向上调整按钮,调整后点击“完成”
7、设置安装软件
注意::如果勾选GNOME桌面及其子选项开发工具,系统安装后会进入intit5,而如果选择最小安装则会进入init1模式,涉及知识点关于init
init知识点解释:
(1) init是Linux系统操作中不可缺少的程序之一。
所谓的init进程,它是一个由内核启动的用户级进程。
内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程。所以,init始终是第一个进程(其进程编号始终为1)。
内核会在过去曾使用过init的几个地方查找它,它的正确位置(对Linux系统来说)是/sbin/init。如果内核找不到init,它就会试着运行/bin/sh,如果运行失败,系统的启动也会失败。
(2)init一共分为7个级别,这7个级别的所代表的含义如下
0:停机或者关机(千万不能将initdefault设置为0)
1:单用户模式,只root用户进行维护
2:多用户模式,不能使用NFS(Net File System)
3:完全多用户模式(标准的运行级别)
4:安全模式
5:图形化(即图形界面)
6:重启(不要把initdefault设置为6)
8.安装位置分盘
勾选“我要配置分区”即可,而后点击“完成”,最后会自动跳转到手动分区的界面
注意点:如果点击完成后没有跳转,可以再点击“安装位置”再走一遍,
分区类型选择为“标准分区”,而后点击“+”添加一个分区
添加挂载点 /boot 容量为 200M 即可
添加 swap 分区,此分区的容量一般为内存容量的两倍即可
推荐方案:当内存小于、等于 8G 时,指定 swap 分区为内存的两倍,当内存大于 8G 时,指定 swap 分区为内存容量一致即可。
添加根分区:容量指定为 80G 即可,如果在容量处不指定容量时,默认会所有容量都分区给指定的分区
确认分区无误后,点击“完成”,并点击“接受更改”
9、进入联网
之后在安装时可以设置root的密码和建用户
注意::密码若设置为123456,会让确认两遍因为太简单了。
10、等待安装完成后点击“重启”
重启完成后,自动进入初始化设置
点击“未接受许可证”
点击“完成配置”,后自动进入登录界面
进入界面后完成系统设置;
三、网络设置
进入系统后在终端中ping www,baidu.com
Ping通网络即为正常,不通检查桥接模式,windows网卡是否启动(参考:【已解决】ping: www.baidu.com: 未知的名称或服务_虚拟机ping百度,显示未知的服务-CSDN博客)
在确认联网后更换yum为阿里云
1.备份旧的配置文件
cd /etc/yum.repos.d/ # 进入文件夹
mv CentOS-Base.repo CentOS-Base.repo_back # 备份原始配置文件
2.下载阿里源的文件
wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 若没有 wget 可使用 curl
curl -o CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
3.安装 epel repo 源
wget -O epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
# 若没有 wget 可使用 curl
curl -o epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
4.清理缓存
yum clean all
5. 重新生成缓存
yum makecache
6.更新(可整可不整,因为时间太长)
yum -y update
知识点:关于网络设置的三种模式
假设A是本机,A1,A2是虚拟机,B是外部联网的机器(同事的电脑)
桥接模式
相当于在物理主机与虚拟机网卡之间架设了一座桥梁,从而可以通过物理主机的网卡访问外网。
注意: 桥接模式配置简单,但如果你的网络环境是ip资源很缺少或对ip管理比较严格的话。
bridge(桥接模式): A可以和A1,A2互通,A1,A2 -> B可以,B -> A1,A2可以
NAT
让 VM 虚拟机的网络服务发挥路由器的作用,使得通过虚拟机软件 模拟 的主机可以通过物理主机访问外网,在真机中 NAT 虚拟机网 卡对应的物理网卡是 VMnet8。
注: 实际上VMware Network Adapter VMnet8的作用是为了实现虚 拟机和主机之间相互通信!
Nat(网络地址转换): A可以和A1,A2互通,A1,A2 -> B可以,B - > A1,A2不行
Host-only
仅让虚拟机内的主机与物理主机通信,不能访问外网,在真机中仅 主机 模式模拟网卡对应的物理网卡是 VMnet1。
注意: NAT和host-only 不会占用一个ip地址,只能和你的本机进行通 讯。NAT和host-only还有一个区别就是,host-only只能和你的 本机进行通讯,不可以访问。
host-only(主机模式): A可以和A1,A2互通,A1,A2 -> B不可以, B -> A1,A2不行;
四、下载openSSL与连接XShell
1.文件导入系统
2. 安装依赖
yum install -y gcc gcc-c++ glibc make autoconf openssl openssl-devel pcre-devel pam-devel
yum install -y pam* zlib*
yum install -y perl-CPAN perl-IPC-Cmd gmp-devel mpfr-devel libmpc-devel
3.将三个文件放入/root/openssh-update(没有mkdir创建一个)
4. 解压操作
cd /root/openssh-update
tar zxvf openssh-9.8p1.tar.gz
tar zxvf openssl-3.3.1.tar.gz
5,原文件备份
mv /usr/bin/openssl /usr/bin/openssl_bak
mv /usr/include/openssl /usr/include/openssl_bak
rm -rf /usr/lib/libssl.so.3
rm -rf /usr/lib64/libssl.so.3
rm -rf /usr/lib/libcrypto.so.3
rm -rf /usr/lib64/libcrypto.so.3
rm -rf /lib/libssl.so.3
rm -rf /lib64/libssl.so.3
rm -rf /lib/libcrypto.so.3
rm -rf /lib64/libcrypto.so.3
# 安装 openssl
cd /root/openssh-update/openssl-3.3.1
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib && make && make install
echo $?
# 链接文件
sudo ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl
sudo ln -sf /usr/local/openssl/include/openssl /usr/include/openssl
ln -s /usr/local/openssl/lib/libssl.so.3 /usr/lib/libssl.so.3
ln -s /usr/local/openssl/lib64/libssl.so.3 /usr/lib64/libssl.so.3
ln -s /usr/local/openssl/lib/libssl.so.3 /lib/libssl.so.3
ln -s /usr/local/openssl/lib64/libssl.so.3 /lib64/libssl.so.3
ln -s /usr/local/openssl/lib/libcrypto.so.3 /usr/lib/libcrypto.so.3
ln -s /usr/local/openssl/lib64/libcrypto.so.3 /usr/lib64/libcrypto.so.3
ln -s /usr/local/openssl/lib64/libcrypto.so.3 /lib64/libcrypto.so.3
sudo ldconfig -v
cd /root/openssh-update/openssh-9.8p1
./configure --prefix=/usr/local/openssh --with-zlib=/usr/local/zlib --sysconfdir=/etc/ssh --with-openssl-includes=/usr/local/openssl/include --with-ssl-dir=/usr/local/openssl --with-md5-passwords --with-pam && make && make install
openssl version
# 编译安装 openssh
cd /root/openssh-update/openssh-9.8p1
chown -R root.root /root/openssh-update/openssh-9.8p1
mv /etc/ssh /etc/ssh_bak
echo $?
# 修改配置文件
\cp -rf /etc/ssh_bak/sshd_config /etc/ssh/
grep "^PermitRootLogin" /etc/ssh/sshd_config
cat /tmp/ssh/sshd_config |grep -v '#' |grep -v '^$'
\cp -a contrib/redhat/sshd.init /etc/init.d/sshd
\cp -a contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
\cp -rf /usr/local/openssh/sbin/sshd /usr/sbin/sshd
\cp -rf /usr/local/openssh/bin/ssh /usr/bin/ssh
systemctl enable sshd
# 启动
systemctl restart sshd
# 测试
openssl version
ssh -V
netstat -ntlp|grep ssh
每步都执行
报错注意!!:::Job for sshd.service failed because the control process exited with error code. See "systemctl status sshd.service" and "journalctl -xe" for details.
一般是/etc/ssh/sshd_config 文件不存在
- 解决:重新安装 SSH 服务器:yum reinstall openssh-server
- 有的时候需要先移除
- 实在解决不了看日志 journalctl -u sshd.service
进入Xshell连接
参考:如何用VMware虚拟机连上Xshell_vmware虚拟机连接xshell-CSDN博客
1、首先虚拟机要是桥接模式,
(1)在这里看,vmNET8
记住ip和掩码
(2)点击NAT设置网关
ip前三位一致,然后+ .2
(3)还有本机网络设置也要开
如图所示在VMent8中点开属性,然后添加Internet协议版本4(TCP/IPv4)并双击
设置ip,掩码,网关不用管
(4)然后以Root用户进入虚拟机
vim /etc/sysconfig/network-scripts/ifcfg-ens33
写完后wq保存
然后重启 网络sudo systemctl restart network
Ifconfig看看ip是不是和你设置的一样ens-33那块的
2、进行Xshell连接
然后打开XShell
正常来说就结束了 没连上还是有问题的,首先检查是不是桥接,然后看windows设置对不对(一般是windows设置的问题),
有时候是防火墙的问题
解决:永久开放22端口(重启后仍然有效)(一般用22端口)
如果你希望开放22端口的规则在系统重启后仍然有效,你需要加上--permanent选项,并随后重新加载firewalld配置以使更改生效:
firewall-cmd --zone=public --add-port=22/tcp --permanent
firewall-cmd --reload
这两条命令中,第一条是添加永久规则,第二条是重新加载firewalld配置,使新规则生效。
你可以使用firewall-cmd的查询功能来验证22端口是否已成功开放
firewall-cmd --zone=public --query-port=22/tcp
问题:如果已经进入init5还可以变为init3吗
在 CentOS 7 或更高版本中,你可以使用 systemctl 命令来设置默认的启动目标。要更改为多用户文本模式
sudo systemctl set-default multi-user.target
1.验证更改
sudo systemctl get-default
该命令将显示当前的默认启动目标,如果输出是 multi-user.target,则表示更改已成功。
2. 重启系统
更改默认启动目标后,你需要重启系统以使更改生效。
sudo reboot