【Linux】【开发环境】【RHEL】开发环境搭建系列之一——安装Virtual Box虚拟机搭建基础嵌入式开发环境

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析DNS,个人版 1个月
云解析 DNS,旗舰版 1个月
简介: 【Linux】【开发环境】【RHEL】开发环境搭建系列之一——安装Virtual Box虚拟机搭建基础嵌入式开发环境

前言


Linux环境搭建


嵌入式开发或学习过程中,经常需要涉及Linux开发环境的搭建。生产环境下,一般都是直接在配置较高的服务器上安装。而对于个人学习而言,没有现成的服务器,无非两个选择:


  • 双系统:经常需要修改启动项,如操作失误,可能会导致windows无法启动;


  • 虚拟机:使用虚拟机的方式,在主机上虚拟另外一台主机。


本文主要讲解虚拟机VB安装RHEL并将网络接口、IP、DNS、FTP、SAMBA等配置完成的过程。


虚拟机软件选择


常用虚拟机软件大概有下面几种:


  • Vmware Workstation


  • Virtual Box


  • Windows Virtual PC


  • VMware Player


比较常用的是Virtual Box和Vmware Workstation两个软件,但Vmware Workstation是收费的,Virtual Box是免费的,本文主要以Virtual Box 6.16为例来说明具体的操作过程。


Linux发布版本


一般来说著名的linux发布版本基本上分两大阵营:


  • RedHat系列:Redhat、Centos、Fedora等;


  • Debian系列:Debian、Ubuntu等;


RedHat主要集中在企业级服务器版的制作 是推动Linux商业化最成功的公司 RedHat对应的桌面版制作都是由Fedora社区研发。


RHEL是Red Hat的企业版。


Ubuntu桌面版适合初学者使用比较简单,桌面用户的首选ubuntu 。


本文选择RHEL7,因为比较适合企业级别使用。


具体操作


1、VirtualBox安装RHEL


这个流程可参考后文参考资料【1】【2】,比较详细,不再赘述;


这里主要注意几点:


  • VB的网络模式建议配置为桥接模式,这样,虚拟机和主机会在一个网段中,方便虚拟机上网并和主机交换数据。


  • LOCALIZATION:DATA&TIME选下时区、LANGUAGE SUPPORT选下汉语;


  • SOFTWARE:选“Server with GUI”,千万不要选“Minimal Install”,同时在右边软件列表中,尽量将会用到的软件或服务选中。


  • SYSTEM:“NETWORK&HOSTNAME”,主要把网络配置下。


经过上述操作,不出意外,RHEL已经拿到IP地址,后续可以使用ssh连接RHEL了,不需要在VB界面里操作了。


2、IP地址


上一步如果选择DHCP方式,则默认会在ifcfg-enp0s3文件中写下面的内容:


[qxhgd@localhost /]$ cat ./etc/sysconfig/network-scripts/ifcfg-enp0s3
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="enp0s3"
UUID="e26ca312-25e6-45de-8a15-7bb03df1ff37"
DEVICE="enp0s3"
ONBOOT="yes"


2.1、重命名接口


这里默认的网卡名为enp0s3,不是通常的eth0,可以通过下面方式修改:


  • 配置文件调整,将其中的NAME和DEVICE都修改为eth0


[qxhgd@localhost]$ mv ifcfg-enp0s3 ifcfg-eth0


  • 禁用网卡命名规则并生成新的grub配置参数


修改grub引导文件,在GRUB_CMDLINE_LINUX中增加net.ifnames=0 biosdevname=0部分,并使用grub2-mkconfig命令更新grub配置参数


[qxhgd@localhost ~]$ vi /etc/sysconfig/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto spectre_v2=retpoline rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap net.ifnames=0 biosdevname=0 rhgb quiet"
GRUB_DISABLE_RECOVERY="true"


[qxhgd@localhost ~]$ grub2-mkconfig -o /boot/grub2/grub.cfg


  • 重启虚拟机


2.2、配置固定IP


修改配置文件中的IP地址、掩码、网关、以及获取地址方式等几个字段即可。


[qxhgd@localhost ~]$ cat /etc/sysconfig/network-scripts/ifcfg-eth0
BOOTPROTO="static"
IPADDR=192.168.2.100
NETMASK=255.255.255.0
GATEWAY=192.168.2.1
ONBOOT=yes 


经过上述操作后,已经可以在主机上使用putty软件通过SSH访问RHEL的IP了。


3、DNS服务器


如果前两步网络配置的有问题,或者不是DHCP方式获取地址,可能没有生成DNS服务器,则此时可通过下面这个文件进行修改;


[qxhgd@localhost ~]$cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.2.1


DNS如果不在这个文件配置,在ifcfg-eth0文件中修改也可以:


[qxhgd@localhost ~]$cat /etc/sysconfig/network-scripts/ifcfg-eth0
DNS1=192.168.2.1      //网卡eth0的第一个DNS服务器                                                  
DNS2=8.8.8.8          //网卡eth0的第二个DNS服务器    


4、SAMBA服务


4.1 账户添加到smaba协议


[qxhgd@localhost ~]$ sudo smbpasswd -a qxhgd
[sudo] password for qxhgd
New SMB password:
Retype new SMB password:
Added user qxhgd
[qxhgd@localhost ~]$ 


4.2 配置账户的权限目录


[qxhgd@localhost ~]$ setfacl -m u:qxhgd:rw /home/qxhgd


不建议使用chmod修改目录权限,不安全。


4.3 修改samba的配置文件


[qxhgd@localhost ~]$ cat /etc/samba/smb.conf
[qxhgd]
        path = /home/qxhgd
        browseable=yes
        writeable=yes
        write list = qxhgd


4.4 启动smb服务


[qxhgd@localhost ~]$ systemctl start smb nmb
[qxhgd@localhost ~]$ systemctl enable smb nmb


类似的命令还有service smb restart。


如果需要配置开机自动启动,可执行下面命令:


chkconfig smb on


4.5 关闭防火墙


[qxhgd@localhost ~]$firewall-cmd --permanent --add-service=samba
[qxhgd@localhost ~]$firewall-cmd --permanent --add-service=rpc-bind 
[qxhgd@localhost ~]$firewall-cmd --permanent --add-service=mountd 
[qxhgd@localhost ~]$firewall-cmd --reload


4.6 关闭SELINUX


[qxhgd@localhost ~]$ cat /etc/sysconfig/selinux
SELINUX=disabled
[qxhgd@localhost ~]$ sudo setenforce 0


5、FTP服务


这里主要以vsftpd为例说明,实际上RHEL上有其他选择。


另外,ftp账户可以有本地用户、虚拟用户、匿名访问三种,这里只关心本地用户的情况。


5.1 修改配置文件


  • 在vsftpd.conf中增加下面几项即可:


[qxhgd@localhost ~]$ cat /etc/vsftpd/vsftpd.conf
local_root=/home/qxhgd
chroot_local_user=YES
userlist_deny=NO
allow_writeable_chroot=YES


  • 在user_list中增加本地账号:


[qxhgd@localhost ~]$ cat /etc/vsftpd/user_list
...
qxhgd


5.2 启动vsftpd服务


重启:


[qxhgd@localhost ~]$ service vsftpd restart


启动:


[qxhgd@localhost ~]$ service vsftpd start


开机启动vsftpd服务:


[qxhgd@localhost ~]$ systemctl enable vsftpd


5.3 查看vsftpd服务状态


本质上下面几条命令都类似:


[qxhgd@localhost ~]$systemctl status vsftpd
[qxhgd@localhost ~]$systemctl status vsftpd.service 
[qxhgd@localhost ~]$systemctl status vsftpd.service -l


5.4 SELinux控制


[qxhgd@localhost ~]$setsebool -P ftpd_full_access=on


5.5 iptables控制


[qxhgd@localhost ~]iptables -I IN_public_allow -p tcp -m tcp --dport 21 -m conntrack --ctstate NEW,UNTRACKED -j ACCEPT


如果安装的时候,防火墙默认打开了,则需要将ftp使用的21端口放开。


相关操作技巧


1、VB增强工具


管理——全局设定——扩展中可安装下载好的增强工具。


注:有的VB版本是“设备——安装增强功能”这个路径。


2、VB虚拟机备份


控制——工具——备份【系统快照】(S),可以将某一时刻的虚拟机备份。


3、RHEL操作细节


  • 在修改ftp、smb、dns等配置文件之前,最好备份一份;


  • 如果忘记备份了,可从下载的iso文件中捞一份。


参考资料


【1】VirtualBox安装RedHat7


【2】电脑安装Linux虚拟机图文教程


【3】VMWare虚拟机网络配置


【4】Virtual Box资源


【5】RHEL7资源:rhel-server-7.7-x86_64-dvd.iso,提取码:iy2b

相关文章
|
18天前
|
关系型数据库 MySQL Linux
|
21天前
|
Linux
FFmpeg开发笔记(三十四)Linux环境给FFmpeg集成libsrt和librist
《FFmpeg开发实战》书中介绍了直播的RTSP和RTMP协议,以及新协议SRT和RIST。SRT是安全可靠传输协议,RIST是可靠的互联网流传输协议,两者于2017年发布。腾讯视频云采用SRT改善推流卡顿。以下是Linux环境下为FFmpeg集成libsrt和librist的步骤:下载安装源码,配置、编译和安装。要启用这些库,需重新配置FFmpeg,添加相关选项,然后编译和安装。成功后,通过`ffmpeg -version`检查版本信息以确认启用SRT和RIST支持。详细过程可参考书中相应章节。
34 1
FFmpeg开发笔记(三十四)Linux环境给FFmpeg集成libsrt和librist
|
16天前
|
安全 Ubuntu Linux
6 个受欢迎且好用的轻量级Linux桌面环境
Linux被认为是最安全的系统,但这并不意味着它不受恶意软件或其他安全漏洞的侵害。Linux系统的使用范围非常广泛,因此防范潜在威胁至关重要。在这里,将探索 2024 年适用于 Linux 的最佳防病毒软件。根据评级、功能以及与其他 Linux 发行版的兼容性列出了十款最佳防病毒软件,内容仅供分享,不做其它用途。
109 0
6 个受欢迎且好用的轻量级Linux桌面环境
|
2天前
|
安全 Linux 数据安全/隐私保护
入职必会-开发环境搭建33-VMWare虚拟机安装Linux系统
CentOS(Community ENTerprise Operating System)是一个基于Linux的开源操作系统,它是由社区志愿者团队从Red Hat Enterprise Linux(RHEL)源代码重新编译而成。CentOS致力于提供一个稳定、可靠且免费的企业级Linux发行版,适用于服务器和工作站环境。
|
21天前
|
Linux 网络安全 虚拟化
Ngnix04系统环境准备-上面软件是免费版的,下面是收费版的,他更快的原因使用了epoll模型,查看当前Linux系统版本, uname -a,VMWARE建议使用NAT,PC端电脑必须使用网线连接
Ngnix04系统环境准备-上面软件是免费版的,下面是收费版的,他更快的原因使用了epoll模型,查看当前Linux系统版本, uname -a,VMWARE建议使用NAT,PC端电脑必须使用网线连接
|
22天前
|
Linux Docker 容器
Docker02--搭建Linux环境,配置Docker,docker images无法访问,因为docker没有启动,阿里云镜像加速器免费的
Docker02--搭建Linux环境,配置Docker,docker images无法访问,因为docker没有启动,阿里云镜像加速器免费的
|
22天前
|
负载均衡 Java Linux
黑马头条01,环境搭建,今日头条的介绍,今日头条的功能架构图,技术栈的说明,服务层,nacos(奶靠丝)安装,安装在Linux服务器上环境准备,
黑马头条01,环境搭建,今日头条的介绍,今日头条的功能架构图,技术栈的说明,服务层,nacos(奶靠丝)安装,安装在Linux服务器上环境准备,
|
25天前
|
Linux
【问题解决】Linux环境下pip下载缓慢
【问题解决】Linux环境下pip下载缓慢
12 0
|
26天前
|
NoSQL Linux 开发工具
【linux】在linux操作系统下快速熟悉开发环境并上手开发工具——体验不一样的开发之旅
【linux】在linux操作系统下快速熟悉开发环境并上手开发工具——体验不一样的开发之旅
|
29天前
|
Linux Shell Python
linux服务器python2升级安装python3.7环境
linux服务器python2升级安装python3.7环境
62 0

热门文章

最新文章