背景
在使用Windows 10开发的过程之中避免不了使用Linux环境,比如装个数据库、装个docker跑开发环境、比如做一些实验、装一些杂七杂八的软件不影响宿主机环境、甚至仅仅是学习Linux
此时有几个选择
- 买台新电脑装Linux放局域网里面使用
- 虚拟机里面装Linux,虚拟机又有两个选择,Windows10自带的Hyper-V或者Vmware
- 装个Win10的docker,Win10上的docker其实也是基于Linux虚拟机
镜像获取
镜像要Minimal的,这种无GUI界面的镜像文件小,占用资源少而且稳定,正符合我们的需求,去CentOS官方镜像列表随便找个镜像站点下载
官方镜像列表:http://isoredirect.centos.org/centos/7/isos/x86_64/
随便找个找个镜像站,比如163的:http://mirrors.163.com/centos/7.9.2009/isos/x86_64/
下载镜像文件,类似于CentOS-7-x86_64-Minimal-2003.iso
安装镜像
打开Vmware,我们选择最简单的安装方式
- 点击创建新的虚拟机 ,选择典型,这种模式内存自行给出建议值,待创建好后可自行更改内存大小
- 安装程序光盘映像文件(iso),选择刚刚下载的镜像文件 >
- 点击下一步 ,输入虚拟机名称和位置
- 设置合适的磁盘大小,一般默认就好,不够用后面可以手动扩容
- 点击完成,点击界面上的Install
文章插图
安装过程之中你需要创建用户和设置root密码,用户可以不创建,但是root密码必须设置,设置完成后点击右下角Finish configuration
文章插图
最后点击roboot,稍等一会,输入用户名和密码即可登录
配置CentOS 7
网络配置
主角:网络配置文件 > /etc/sysconfig/network-scripts/ifcfg-ens33
为啥最先说网络,因为接下来的内容都是以网络为基础的,如果网没整好,后面就很麻烦,现在你连自己机器的内网IP都不知道,SSH连接都没办法
- 查看Vmware的网关地址,基于VMnet8,一会要用,本例中是192.168.108.2
文章插图
- 如果是克隆机需要重新生成一下MAC地址(右键刚才安装的虚拟机 > 设置 > 网络适配器 > 高级 > 点击下方生成重新生成MAC地址),因为物理地址不能一样,我们是新装的,不用管 。
- 修改网络配置文件,修改前最好备份一下
- 重启使配置生效
- 最后ping一下百度,看看生效没,如下回显表示成功
[root@localhost network-scripts]# cat ifcfg-ens33TYPE=Ethernet #网卡类型(通常是Ethemet以太网)PROXY_METHOD=none #代理方式:为关闭状态BROWSER_ONLY=no #只是浏览器:否BOOTPROTO=static #网卡的引导协议【static:静态IP dhcp:动态IP none:不指定,不指定容易出现各种各样的网络受限】DEFROUTE=yes #默认路由IPV4_FAILURE_FATAL=no #是否开启IPV4致命错误检测IPV6INIT=yes #IPV6是否自动初始化:是(现在还未用到IPV6,不会有任何影响)IPV6_AUTOCONF=yes #IPV6是否自动配置:是(现在还未用到IPV6,不会有任何影响)IPV6_DEFROUTE=yes #IPV6是否可以为默认路由:是(现在还未用到IPV6,不会有任何影响)IPV6_FAILURE_FATAL=no #是否开启IPV6致命错误检测IPV6_ADDR_GEN_MODE=stable-privacy #IPV6地址生成模型NAME=ens33 #网卡物理设备名称UUID=ab60d501-535b-49f5-a76b-3336a4120f64#通用唯一识别码,每一个网卡都会有,不能重复,否则两台linux机器只有一台可上网DEVICE=ens33 #网卡设备名称,必须和‘NAME’值一样ONBOOT=yes #是否开机启动,要想网卡开机就启动或通过 `systemctl restart network`控制网卡,必须设置为 `yes`IPADDR=192.168.108.105 # 本机IPNETMASK=255.255.255.0 #子网掩码GATEWAY=192.168.108.2 #默认网关DNS1=8.8.8.8 DNS2=8.8.8.5 [root@localhost network-scripts]# service network restart #重启网卡Restarting network (via systemctl): [ 确定 ] 注意点
上面的网关地址192.168.108.2是基于VMnet8,那我们看看VMnet8这块网卡在宿主机中的地址:192.168.108.1
文章插图
其实上面的配置中,网关地址你配置成192.168.108.1和192.168.108.2都可以,那这两个有什么区别?
经过我的测试,192.168.108.1不仅仅是一个网关的角色,它还能代表宿主机(在虚拟机环境中),比如宿主机跑了一个代理在1080端口,那么虚拟机在虚拟机中telnet 192.168.108.1 1080端口是通的,而telnet 192.168.108.2 1080端口不通,要设置代理必须指定为:192.168.108.1 1080,所以192.168.108.2仅仅是一个网关,不能代表宿主机 。
代理配置
有时候有代理的需求,比如下载一个很慢的软件,可以设置使用宿主机的代理,前提是宿主机已经有代理了 。
- 全局代理配置,没用用户密码就不需要username:password@这一串
- 取消全局代理
主角:SSH配置文件 > /etc/ssh/sshd_config`
SSH修改以下几个地方,第一个是允许root用户登录
UseDNS no
servicesshd restart 在宿主机上telnet 192.168.137.129 22如果端口通,IP即上一步骤设置的IPADDR字段,即可用SSH工具连接
安装Vmware Tools
Vmware Tools可以允许和宿主机文件共享,具体可参考https://docs.vmware.com/cn/VMware-vSphere/6.0/com.vmware.vsphere.html.hostclient.doc/GUID-28C39A00-743B-4222-B697-6632E94A8E72.html
为什么要放到最后来安装,是因为安装的过程需要一些依赖必须联网之后才能安装
- 先添加一个共享文件夹用于验证VMware Tools是否安装成功,步骤:选中虚拟机 > 右键 > 设置 > 虚拟机设置 > 选项 Tab > 共享文件夹 > 添加 ,随便选择一个文件夹添加,最后点击确认即可
- 在虚拟机下面点击安装Tools,或者点击顶部虚拟机 > 安装VMware Tools
文章插图
- 安装依赖
- 执行如下命令
- 安装过程之中一路回车使用默认选项即可
- 输入df -h如果看到类似如下回显则成功
可能出现的问题
参考:https://blog.csdn.net/u012820996/article/details/81463535、https://blog.csdn.net/ljunjie82/article/details/48895939
设置系统时间
# 覆盖系统时间cp/usr/share/zoneinfo/Asia/Shanghai /etc/localtime # 更新系统硬件时间hwclock 安装常用软件
安装之前先更新一下软件库
yum -y updateyum -y remove epel-releaseyum -y installepel-release iptables
CentOS 7 默认的防火墙是firewall,对于喜欢iptables的老铁可以直接更换成iptables
service iptables status # 先检查是否安装了iptablesyum install-y iptables # 安装iptablesyum updateiptables # 升级iptablesyum install-y iptables-services # 安装iptables-services (CentOS 7)systemctl stopfirewalld.service # 停止firewallsystemctl disablefirewalld.service # 禁止firewall开机启动firewall-cmd --state # 查看默认防火墙状态(关闭后显示not running,开启后显示running)systemctl maskfirewalld # 禁用firewalld服务#规则层级iptables -P INPUTACCEPT# 先允许所有,不然有可能会清除后断开连接,无法再连接iptables -F # 清空所有默认规则iptables -X # 清空所有自定义规则iptables -Z # 所有计数器归0iptables -A INPUT-i lo -j ACCEPTiptables -A INPUT-p tcp --dport 22 -j ACCEPTiptables -A INPUT-p icmp --icmp-type 8 -j ACCEPTiptables -A INPUT-m state --state ESTABLISHED,RELATED -j ACCEPT #允许本机入站 否则无法联网iptables -A OUTPUT-m state --state ESTABLISHED,RELATED -j ACCEPT #允许本机出站 否则无法联网iptables -P INPUTDROPiptables -P OUTPUTACCEPTiptables -P FORWARD DROP#iptables层级service iptables savesystemctl enableiptables.service # 注册iptables服务 #相当于以前的chkconfig iptables on systemctl startiptables.service # 开启服务systemctl statusiptables.service # 查看状态 docker
大家对docker肯定是不陌生的,如果还不知道docker的话,可以看之前的文章:都9102年了,还没听过docker?5分钟带你了解docker的前世今生!、史上最全(全平台)docker安装方法!
一键安装
懒人必备官方提供的一键安装脚本:wget -qO- https://get.docker.com/ | bash
标准版
#!/bin/bash# remove old versionsudoyum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine# remove all docker data sudorm -rf /var/lib/docker# preinstall utils sudoyum install -y yum-utils \ device-mapper-persistent-data \ lvm2# add repositorysudoyum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo# make cachesudoyum makecache fast# install the latest stable version of dockersudoyum install -y docker-ce# start deamon and enable auto start when power onsudosystemctl start dockersudosystemctl enable docker# add current user sudogroupadd dockersudogpasswd -a ${USER} dockersudosystemctl restart docker 国内镜像版
#!/bin/bash# 移除掉旧的版本sudoyum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine# 删除所有旧的数据sudorm -rf /var/lib/docker# 安装依赖包sudoyum install -y yum-utils \ device-mapper-persistent-data \ lvm2# 添加源,使用了阿里云镜像sudoyum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo# 配置缓存sudoyum makecache fast# 安装最新稳定版本的dockersudoyum install -y docker-ce# 配置镜像加速器sudomkdir -p /etc/dockersudotee /etc/docker/daemon.json <<-'EOF'{"registry-mirrors": ["http://hub-mirror.c.163.com"]}EOF# 启动docker引擎并设置开机启动sudosystemctl start dockersudosystemctl enable docker# 配置当前用户对docker的执行权限sudogroupadd dockersudogpasswd -a ${USER} dockersudosystemctl restart docker 注意:国内访问docker太慢,一般会配置加速器,此处配置的加速器是163的加速器:http://hub-mirror.c.163.com,也可以配置阿里云的加速器 。
dockerveth
查看docker容器与网卡的对应关系
rm -rf /usr/local/bin/dockerveth curl -o /usr/local/bin/dockerveth https://raw.githubusercontent.com/micahculpepper/dockerveth/master/dockerveth.sh chmod+x/usr/local/bin/dockerveth Java
这个就不说了,Java环境必备
# 安装javayum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel which# 环境变量设置cat > /etc/profile.d/java8.sh <<EOF exportJAVA_HOME=$(dirname $(dirname $(readlink $(readlink $(whichjavac))))) exportPATH=\$PATH:\$JAVA_HOME/bin exportCLASSPATH=.:\$JAVA_HOME/jre/lib:\$JAVA_HOME/lib:\$JAVA_HOME/lib/tools.jar EOF source/etc/profile.d/java8.sh fail2ban
多次SSH登录失败就封禁IP,避免SSH被爆破
yum -y install fail2ban echo'fail2ban install complete............'cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local echo'conf file copy complete.............'sed -i '/^\[sshd\]/a enabled = true'/etc/fail2ban/jail.local echo'sshd has enabled.....'systemctl restart fail2ban.service echo'fail2ban has restart...'systemctl enablefail2ban.service echo'fail2ban has added auto started...'echo'=========================fail2ban sshd status==============================='sleep 4 fail2ban-client status sshd 常用小工具
【教你5分钟快速搭建环境 如何搭建linux虚拟机环境】# zip压缩hashzip 2>/dev/null || {yum-y install zip}# 解压hashunzip 2>/dev/null || {yum-y install unzip}# GIThashgit 2>/dev/null || {yum-y install git}# ifconfig命令hashifconfig 2>/dev/null || {yum-y install net-tools}# telnet命令hashtelnet 2>/dev/null || {yum-y install telnet-serveryum-y install telnet}# wget命令hashwget 2>/dev/null || {yum-y install wget} BBR
bbr是谷歌出品的解决TCP拥堵一定程度上提升网速的算法
wget--no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && ./bbr.sh 参考
推荐阅读
- 图解10秒教你快速重置系统 小米手机怎样恢复出厂设置
- 教你一招快速免费转换 pdf怎么转换成word手机上
- 手把手教你设置宽度全流程 电脑宽带连接怎么连接
- 教你一键批量导出微信好友 微信通讯录怎么导出
- 1分钟教你轻松导出通讯录 手机通讯录怎么导出excel
- 三招教你分辨肤色的方法 中国皮肤色卡对照表
- 免费教你2招快速解决 华为忘记锁屏密码10秒解决
- 图解6步快速关闭 微信运动步数怎么关闭
- 手把手教你查询缴费电表号 电费缴费户号在哪里看
- 教你3步快速查看ip地址 怎么查看打印机ip地址