前言
本人操作环境:
主机:64位windows11系统
提前安装好软件 virtualbox 和 vagrant 并检查 Windows 的 ssh 功能是否开启( 默认应该是开启的 )
1. 初始化并获取虚拟机配置文件
创建并进入虚拟机配置文件夹,在终端执行:
vagrant init generic/centos7
2. 修改虚拟机配置:
用 vscode 或者 记事本 编辑文件夹下 Vagrantfile 文件,修改为以下内容(根据需要自行更改):
Vagrant.configure("2") do |config|
# 选择系统镜像
config.vm.box = "generic/centos7"
# 虚拟机标识选择
config.vm.define "👻👻👻"
# 修改虚拟机名(不可重复)
config.vm.provider "virtualbox" do |vb|
vb.name="CentOS 7"
end
# 是否检查镜像更新
config.vm.box_check_update = false
# 端口映射(可自行更改,guest为虚拟机端口,host为主机端口)
# config.vm.network "forwarded_port", guest: 80, host: 8877
# 桥接网卡模式
config.vm.network "public_network"
# 共享文件夹映射(可自行更改,注意Windows的文件目录格式要双斜线,且要已存在)
config.vm.synced_folder "F:\\VMS\\Share", "/share"
# config.vm.synced_folder "F:\\Study\\html", "/var/www/html"
# 首次启动虚拟机默认执行命令(仅首次启动时执行一次)
config.vm.provision "shell", inline: <<-SHELL
# 修改虚拟机密码
# 用户名:vagrant(不可更改,否则vagrant ssh无法连接)
# 密码:v(可修改)
echo "vagrant:v" | sudo chpasswd
# 查看虚拟机IP
ifconfig
SHELL
end
2. 启动并连接虚拟机:
vagrant up
vagrant ssh
3. 检查虚拟机(可跳过)
检查共享目录是否创建成功
检查密码是否修改成功
4. 更换centos7国内源
执行备份源文件命令:
sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak
更换源(可自行百度,任选其一执行,我选的网易):
阿里:sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
*网易:sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
中科大:sudo wget -O /etc/yum.repos.d/CentOS-Base.repo https://lug.ustc.edu.cn/wiki/_export/code/mirrors/help/centos?codeblock=3
更新Yum软件包管理器的缓存:
sudo yum makecache
更新系统中已安装的软件包到最新版本:
sudo yum -y update
5. 安装和配置apache:
安装apache:
sudo yum -y install httpd
检查apache状态:
sudo systemctl status httpd
将apache加入开机自启:
sudo systemctl enable httpd
修改apache配置:
sudo vim /etc/httpd/conf/httpd.conf
找到 <Directory "/var/www/html"> 部分,并确保以下行没有被注释掉:
Require all granted
启动或重启apache:
sudo systemctl start httpd
sudo systemctl restart httpd
关闭SELinux:
sudo setenforce 0
6. 配置防火墙:
检查防火墙状态:
sudo systemctl status firewalld
开启防火墙并设置开机自启:
sudo systemctl enable firewalld
sudo systemctl start firewalld
查看防火墙策略:
sudo firewall-cmd --list-all
添加80(apache)、22(ssh)端口:
sudo firewall-cmd --zone=public --add-port=22/tcp --permanent
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
重启防火墙或重载防火墙策略:
sudo systemctl restart firewalld
sudo firewall-cmd --reload
7. 配置ssh:
修改ssh配置文件:
sudo vim /etc/ssh/sshd_config
找到以下两项取消注释并修改为 yes:
PasswordAuthentication yes
PubkeyAuthentication yes
8. 配置ssh密钥登录:
准备好自己的密钥(自行百度)
将私钥文件放在windows系统的用户ssh目录下:C:\users\用户名\.ssh\
将公钥文件放在windows系统的共享目录下本人的为:E:\VM\Share
在虚拟机内将共享目录下的公钥文件内容追加到公钥管理文件内
(共享目录见文首的配置文件):
sudo cat /share/id_rsa.pub >> ~/.ssh/authorized_keys
9. 重启sshd:
sudo systemctl restart sshd
10. windows系统尝试ssh链接虚拟机:
@后是虚拟机IP地址(用ifconfig查询):
ssh vagrant@192.168.xx.xx