开发没有Linux环境?来!5分钟带你搞一个

2022-04-07 13:20:22 浏览数 (1)

作为一个开发人员,日常的工作、学习,经常需要用到各种Linux,但是我们不可能去找大量(土豪跳过)的物理机来供我们学习,因此使用虚拟机进行开发及学习是我们常用的一种方式;下面带你基于VirtualBox搭建Linux(CentOS)虚拟机环境;

VMware虚拟机也使用过,但是使用的过程中会出现一些各种各样的问题,有时候不光影响到虚拟机的使用,甚至会影响到其他软件的使用;

但是VirtualBox使用使用起来就很顺手,因此这里推荐使用VirtualBox。

准备工作

  • VirtualBox官网下载最新的VirtualBox,地址:https://www.virtualbox.org/
  • CentOS系统
    • mini版系统(推荐) 链接:https://pan.baidu.com/s/1Z_SX4eEST14BQfYKiB1gLw 提取码:tq7d
  • 标准系统 可直接在官网进行下载,地址:https://www.centos.org/download/
  • 安装VirtualBox略!没有什么可注意的,next、next... finish;Windows记住别装C盘就好了。

创建虚拟机

  • 点击新建
  • 添加名称及保存的位置(这里务必选择一个空的文件夹,否则后面的格式化会将数据删掉)

注意!这里的地址不要放在默认的C盘了;同事Linux的选项没有CentOS,选择Red Hat就好了

  • 设置内存 按需配置
  • 虚拟硬盘 默认即可
  • 配置网络

安装系统

  • 启动虚拟机
  • 指定系统(即准备工作中下载的系统)
  • 启动并选择安装系统(键盘上下键可以选择,并回车)
  • 选择语言(如果进去了虚拟机,可以点击右边的Ctrl退出)
  • 配置时区,默认是纽约时区,需要改成上海时区
  • 选择安装的硬盘

如果盘不是空的,需要将其清空

  • 下一步并设置root密码
  • 等待安装完成
  • 安装完成,重启
  • 进入系统(输入root用户名及上面自己设置的root密码)

配置网络

到目前为止,虚拟机已经安装完成了,但是还不能正常上网,还需要配置一下网络

第一步,查看window宿主机的网段

代码语言:javascript复制
// 指令
ipconfig
// 我本机的网段为192.168.1.1的网段,每个人的机器可能网段不一样,根据实际情况来

配置Linux网卡

代码语言:javascript复制
// 找到网卡的配置文件
cd /etc/sysconfig/network-scripts/
ls
// 找到一个ifcfg-enp0s3 的配置文件
// 编辑它
vi ifcfg-enp0s3

做以下配置

代码语言:javascript复制
// 修改下面的两项
// 将BOOTPROTO=dhcp 修改为 BOOTPROTO=static  意思是IP设置为固定的
// 将ONBOOT=no 修改为ONBOOT=yes

// 添加以下配置 
// 以下以192.168.1开头的配置请根据个人实际的网段配置

# ip
IPADDR=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  保存
代码语言:javascript复制
// 重启网卡
service network restart
// 查看ip
ip addr
// ping网关
ping 192.168.1.1
// ping外网
ping www.qq.com
// 如果都能成功,说明网络已经配置成功

// *** 桥接模式****
// 如果检查配置发现没问题,但是网络就是不能正常访问
// 请检查一下虚拟机的网络是不是配置的 桥接模式 具体可参考上面的设置网络

到此!网络就配置完成了

配置hosts及hostname

代码语言:javascript复制
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

关闭防火墙

代码语言:javascript复制
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl mask firewalld.service

配置客户端连接工具

如果是Window就需要以下的工具,如果是Mac用户,就不需要了。

  • 第一种(推荐),SourceCRT WinSCP SourceCRT,用来连接linux的客户端,绿色版安装教程: https://lupf.cn/articles/2020/09/16/1600235760640.html WinSCP,用于上传文件到linux的客户端,教程: http://www.downxia.com/downinfo/4574.html
  • 第二种,Xshell Xftp(功能同上) 链接:https://pan.baidu.com/s/1qlJdQ0tSfEMdu7IZhQPf1g 提取码:52s6;下载安装即可,商用收费,个人版不收费
  • 创建连接

输入ip、用户名和密码,即可登录成功

多台机器配置免密登录

如果要搭建集群,特别是Hadoop生态(必须配置免密登录);服务器与服务器之间需要通讯及文件拷贝,那么就需要配置机器之间的免密登录;

准备多台机器,按上面的要求配置好ip、主机名、映射等配置

创建ssh的rsa密钥

代码语言:javascript复制
ssh-keygen -t rsa
// 一路回车
// 查看公钥
cat /root/.ssh/id_rsa.pub

将公钥拷贝至authorized_keys并设置权限

代码语言:javascript复制
cd /root/.ssh
cp id_rsa.pub authorized_keys
chmod 600 authorized_keys

// 到此,ssh本机即可不需要密码了,第一次需要确认一下,之后就不在需要了,测试:
ssh lupf0000

每台机器都重复以上的操作,设置本机ssh免密

配置机器与机器之间的免密登录

代码语言:javascript复制
// 在除第一台机器的其他所有机器执行以下指令,hostname为上面设置的
// 即,将当前机器的公钥授权给lupf0000
ssh-copy-id -i lupf0000
// 有多少台机器,就操作多少次,保证每一台机器的公钥都拷贝到了lupf0000

机器一(lupf0000)上确认所有的公钥是否都拷贝了

代码语言:javascript复制
cat /root/.ssh/authorized_keys
// 红框中表示对应的那台机器(hostname)的公钥

将此配置文件通过scp的方式,分别拷贝到其他机器

代码语言:javascript复制
scp -r /root/.ssh/authorized_keys root@lupf0001:/root/.ssh/authorized_keys

其中 lupf0001以及更多的lupf0002、lupf0003...为目标服务器;拷贝这个文件的时候,需要输入对应服务器的密码,一旦拷贝成功,再次拷贝或者连接就不再需要密码了

免密登录配置完成

基础使用、常用的软件安装

连接其他机器

代码语言:javascript复制
// ssh <ip or hostname>
ssh 192.168.1.123
//或者
ssh lupf0000

//退出远程
exit

拷贝文件或文件夹到其他机器

代码语言:javascript复制
// 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目录下

时间更新

代码语言:javascript复制
// 查看当前时间
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

查看进程

代码语言:javascript复制
// 查看所有的进程
ps -ef
// 查看特定软件的进程,如:redis
ps -ef | grep redis

wget vim gc 安装

代码语言:javascript复制
# 安装wget 和 vim
yum install -y wget vim

# 安装gcc
yum install -y gcc-c  

端口占用情况查看

代码语言:javascript复制
// 工具安装
yum install net-tools

netstat -tunl | grep ':80'
netstat -tunlp
netstat -apn | grep ':80' 
//查看连接数
netstat -ntu
netstat -nat|grep -i "80"|wc -l

到此!一台或多台用于测试及学习使用的虚拟机即搭建完成!

0 人点赞