作为一个码农,日常的开发和学习的过程中,经常需要用到大量的Linux机器,但是我们不可能去找大量(土豪跳过)的物理机来供我们学习,因此使用虚拟机进行开发及学习是我们常用的一种方式;下面就记录一个基于VirtualBox搭建Linux(CentOS)虚拟机环境的过程;VMware虚拟机也使用过,但是使用的过程中会出现一些各种各样的问题,有时候不光影响到虚拟机的使用,甚至会影响到其他软件的使用;但是VirtualBox使用使用起来就很顺手,因此这里推荐使用VirtualBox。
到目前为止,虚拟机已经安装完成了,但是还不能正常上网,还需要配置一下网络
第一步,查看window宿主机的网段
// 指令 ipconfig // 我本机的网段为192.168.1.1的网段,每个人的机器可能网段不一样,根据实际情况来
配置Linux网卡
// 找到网卡的配置文件 cd /etc/sysconfig/network-scripts/ ls // 找到一个ifcfg-enp0s3 的配置文件 // 编辑它 vi ifcfg-enp0s3
做以下配置
// 修改下面的两项 // 将BOOTPROTO=dhcp 修改为 BOOTPROTO=static 意思是IP设置为固定的 // 将ONBOOT=no 修改为ONBOOT=yes // 添加以下配置 // 以下以192.168.1开头的配置请根据个人实际的网段配置# ipIPADDR=192.168.1.123 NETWORK=192.168.1.1 NETSTAT=255.255.255.0 GATEWAY=192.168.1.1 DNS1=192.168.1.1 DNS2=8.8.8.8 // :wq 保存
// 重启网卡 service network restart // 查看ip ip addr // ping网关 ping 192.168.1.1 // ping外网 ping www.qq.com // 如果都能成功,说明网络已经配置成功 // *** 桥接模式**** // 如果检查配置发现没问题,但是网络就是不能正常访问 // 请检查一下虚拟机的网络是不是配置的 桥接模式 具体可参考上面的设置网络
到此!网络就配置完成了
配置hosts及hostname
vi /etc/hosts // 添加以下配置,如果是打算搭建集群的话,可以将多台机器的映射添加进来 // lupf0000为别名,可以根据个人的需要配置 192.168.1.123 lupf0000 192.168.1.124 lupf0001 // :wq 保存 // 测试,ping lupf0000 如果可以正常ping通,说明设置生效 // 配置hostname vi /etc/hostname // 将默认的localhost.localdomain 修改为自定义的主机名,如:lupf0000 // :wq 保存 // 配置到这里,建议重启一下机器,下面的部分操作会使用到hostname;不重启不会生效 reboot
关闭防火墙
systemctl stop firewalld.service systemctl disable firewalld.service systemctl mask firewalld.service
如果是Window就需要以下的工具,如果是Mac用户,就不需要了。
如果要搭建集群,特别是Hadoop生态(必须配置免密登录);服务器与服务器之间需要通讯及文件拷贝,那么就需要配置机器之间的免密登录;
准备多台机器,按上面的要求配置好ip、主机名、映射等配置
创建ssh的rsa密钥
ssh-keygen -t rsa // 一路回车 // 查看公钥 cat /root/.ssh/id_rsa.pub
将公钥拷贝至authorized_keys并设置权限
cd /root/.ssh cp id_rsa.pub authorized_keys chmod 600 authorized_keys // 到此,ssh本机即可不需要密码了,第一次需要确认一下,之后就不在需要了,测试: ssh lupf0000
每台机器都重复以上的操作,设置本机ssh免密
配置机器与机器之间的免密登录
// 在除第一台机器的其他所有机器执行以下指令,hostname为上面设置的 // 即,将当前机器的公钥授权给lupf0000 ssh-copy-id -i lupf0000 // 有多少台机器,就操作多少次,保证每一台机器的公钥都拷贝到了lupf0000
机器一(lupf0000)上确认所有的公钥是否都拷贝了
cat /root/.ssh/authorized_keys
// 红框中表示对应的那台机器(hostname)的公钥
将此配置文件通过scp的方式,分别拷贝到其他机器
scp -r /root/.ssh/authorized_keys root@lupf0001:/root/.ssh/authorized_keys
其中 lupf0001以及更多的lupf0002、lupf0003...为目标服务器;
拷贝这个文件的时候,需要输入对应服务器的密码,一旦拷贝成功,再次拷贝或者连接就不再需要密码了
免密登录配置完成
连接其他机器
// ssh <ip or hostname> ssh 192.168.1.123 //或者 ssh lupf0000 //退出远程 exit
拷贝文件或文件夹到其他机器
// scp -r <path> <user>@<ip or hostname>:<target path> 如: scp -r /root/.ssh/authorized_keys root@lupf0001:/root/.ssh/authorized_keys // 将本地的authorized_keys通过lupf0001的root用户拷贝到其/root/.ssh目录下
时间更新
// 查看当前时间 date // 安装ntpdate yum install -y ntpdate // 更新时间 ntpdate 0.asia.pool.ntp.org // 将系统时间同步到硬件,防止系统重启后时间被还原 hwclock --systohc // 设置定时任务自动更新时间(没5分钟执行一次) echo "* 5 * * * /usr/sbin/ntpdate time.windows.com > /dev/null 2>&1" >> /var/spool/cron/root crontab -l systemctl restart crond.service
查看进程
// 查看所有的进程 ps -ef // 查看特定软件的进程,如:redis ps -ef | grep redis
wget vim gc++安装
# 安装wget 和 vim yum install -y wget vim # 安装gcc yum install -y gcc-c++
端口占用情况查看
// 工具安装 yum install net-tools netstat -tunl | grep ':80' netstat -tunlp netstat -apn | grep ':80' //查看连接数 netstat -ntu netstat -nat|grep -i "80"|wc -l
到此!一台或多台用于测试及学习使用的虚拟机即搭建完成!