龙空技术网

5分钟在虚拟机中搭建Linux开发环境

代码狂魔 576

前言:

目前咱们对“telnet环境变量”大约比较看重,看官们都需要学习一些“telnet环境变量”的相关知识。那么小编在网摘上汇集了一些对于“telnet环境变量””的相关资讯,希望朋友们能喜欢,你们快快来学习一下吧!

背景

在使用Windows 10开发的过程之中避免不了使用Linux环境,比如装个数据库、装个docker跑开发环境、比如做一些实验、装一些杂七杂八的软件不影响宿主机环境、甚至仅仅是学习Linux

此时有几个选择

买台新电脑装Linux放局域网里面使用虚拟机里面装Linux,虚拟机又有两个选择,Windows10自带的Hyper-V或者Vmware装个Win10的docker,Win10上的docker其实也是基于Linux虚拟机

当然经济划算加上对Vmware最熟悉所以本文选择在Win10上安装Vmware,在Vmware中安装配置Linux虚拟机,具体选择如下:

宿主机系统:Windows10 19042.685VMware:VMware® Workstation 15 Pro,安装可参考:发行版:CentOS 7安装CentOS 7虚拟机镜像获取

镜像要Minimal的,这种无GUI界面的镜像文件小,占用资源少而且稳定,正符合我们的需求,去CentOS官方镜像列表随便找个镜像站点下载

官方镜像列表:

随便找个找个镜像站,比如163的:

下载镜像文件,类似于CentOS-7-x86_64-Minimal-2003.iso

安装镜像

打开Vmware,我们选择最简单的安装方式

点击创建新的虚拟机 ,选择典型 ,这种模式内存自行给出建议值,待创建好后可自行更改内存大小安装程序光盘映像文件(iso),选择刚刚下载的镜像文件 >点击下一步 ,输入虚拟机名称和位置设置合适的磁盘大小,一般默认就好,不够用后面可以手动扩容点击完成,点击界面上的Install

此时进入了CentOS的图形化安装界面,一会会让你选择INSTALLATION DESTINATION,选择刚才在Vmware分配的硬盘,最后点击右下角的Begin Installation,如下图

安装过程之中你需要创建用户和设置root密码,用户可以不创建,但是root密码必须设置,设置完成后点击右下角Finish configuration

最后点击roboot,稍等一会,输入用户名和密码即可登录

配置CentOS 7网络配置

主角:网络配置文件 > /etc/sysconfig/network-scripts/ifcfg-ens33

为啥最先说网络,因为接下来的内容都是以网络为基础的,如果网没整好,后面就很麻烦,现在你连自己机器的内网IP都不知道,SSH连接都没办法

查看Vmware的网关地址,基于VMnet8,一会要用,本例中是192.168.108.2如果是克隆机需要重新生成一下MAC地址(右键刚才安装的虚拟机 > 设置 > 网络适配器 > 高级 > 点击下方生成重新生成MAC地址),因为物理地址不能一样,我们是新装的,不用管。修改网络配置文件,修改前最好备份一下

# 进入网络配置目录cd /etc/sysconfig/network-scripts# 修改配置文件,你的可能不一样,本例为ifcfg-ens33 vi ifcfg-ens33 # 修改部分如下,没有的就加上,有的就修改,别的不用管BOOTPROTO=static # 表示是静态IPONBOOT=yes # 开机启动IPADDR=192.168.108.105 # IP地址,根据网关来,变动最后一位即可GATEWAY=192.168.108.2 # 网关地址,重要!设置错误不能上网NETMASK=255.255.255.0 # 掩码DNS1=192.168.108.2 # DNS设置成和网关一样说明用宿主机的DNS设置DNS2=8.8.8.8 # 备用DNS
重启使配置生效
service network restart
最后ping一下百度,看看生效没,如下回显表示成功
[root@192 ~]# ping   (110.242.68.3) 56(84) bytes of data.64 bytes from 110.242.68.3 (110.242.68.3): icmp_seq=1 ttl=128 time=38.9 ms64 bytes from 110.242.68.3 (110.242.68.3): icmp_seq=2 ttl=128 time=38.8 ms64 bytes from 110.242.68.3 (110.242.68.3): icmp_seq=3 ttl=128 time=39.2 ms64 bytes from 110.242.68.3 (110.242.68.3): icmp_seq=4 ttl=128 time=39.1 ms64 bytes from 110.242.68.3 (110.242.68.3): icmp_seq=5 ttl=128 time=38.8 ms

最后贴一份网络参数的解释

[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.8DNS2=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.1192.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@这一串

#打开profile文件vi /etc/profilehttp_proxy= http_proxyexport https_proxyexport ftp_proxy# 使代理生效source /etc/profile# 测试是否生效(有返回为生效)curl 
取消全局代理
# 打开profile文件vi /etc/profile# 去掉上面的配置# 使生效source /etc/profile# unset 一下unset http_proxyunset https_proxyunset ftp_proxy# 测试是否生效(无返回为生效)curl 
SSH配置

主角:SSH配置文件 > /etc/ssh/sshd_config`

SSH修改以下几个地方,第一个是允许root用户登录

允许root用户登录PermitRootLogin yes关闭GSSAPI和DNS,这可能会导致SSH登录缓慢,参考:GSSAPIAuthentication no

UseDNS no

修改完成后保存退出重启SSH服务

service sshd restart

在宿主机上telnet 192.168.137.129 22如果端口通,IP即上一步骤设置的IPADDR字段,即可用SSH工具连接

安装Vmware Tools

Vmware Tools可以允许和宿主机文件共享,具体可参考

为什么要放到最后来安装,是因为安装的过程需要一些依赖必须联网之后才能安装

先添加一个共享文件夹用于验证VMware Tools是否安装成功,步骤:选中虚拟机 > 右键 > 设置 > 虚拟机设置 > 选项 Tab > 共享文件夹 > 添加 ,随便选择一个文件夹添加,最后点击确认即可在虚拟机下面点击安装Tools,或者点击顶部虚拟机 > 安装VMware Tools安装依赖

yum install -y perlyum install -y net-toolsyum install -y gccyum install -y kernel*
执行如下命令
# 挂载cdrommkdir /mnt/cdrommount /dev/cdrom /mnt/cdrom# 复制并解压cd /mnt/cdrom cp VMwareTools-10.3.10-13959562.tar.gz /tmpcd /tmp && tar zxvf VMwareTools-10.3.10-13959562.tar.gz# 安装/tmp/vmware-tools-distrib/vmware-install.pl
安装过程之中一路回车使用默认选项即可输入df -h如果看到类似如下回显则成功
.host:/                  1.9T  1.4T  473G   75% /mnt/hgfs

或者直接ls /mnt/hgfs/看看是否有最开始设置的文件夹即可!

可能出现的问题如果出现bash:./vmware-install.pl :/usr/bin/perl:bad interpreter:No such file or directory.现象,需要安装Perl支持

yum groupinstall "Perl Support"
The path "" is not a valid path to the 3.8.13-44.1.1.el6uek.x86_64 kernel

可能的原因是kernel版本不一致的问题,检查一下本机kernel版本:uname -r,再看一下安装的kernel相关组件是否和本机的kernel版本不一致:rpm -qa|grep kernel,对比一下,找到不一致的remove掉:yum remove XXXXX,最后重新安装kernel相关组件:yum install -y kernel*

参考:、

设置系统时间

# 覆盖系统时间cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime# 更新系统硬件时间hwclock
安装常用软件

安装之前先更新一下软件库

yum -y updateyum -y remove epel-releaseyum -y install epel-release
iptables

CentOS 7 默认的防火墙是firewall,对于喜欢iptables的老铁可以直接更换成iptables

service iptables status                     # 先检查是否安装了iptablesyum install -y iptables                     # 安装iptablesyum update iptables                         # 升级iptablesyum install -y iptables-services            # 安装iptables-services (CentOS 7)systemctl stop firewalld.service            # 停止firewallsystemctl disable firewalld.service         # 禁止firewall开机启动firewall-cmd --state                        # 查看默认防火墙状态(关闭后显示not running,开启后显示running)systemctl mask firewalld                    # 禁用firewalld服务#规则层级iptables -P INPUT ACCEPT                    # 先允许所有,不然有可能会清除后断开连接,无法再连接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 INPUT DROPiptables -P OUTPUT ACCEPTiptables -P FORWARD DROP#iptables层级service iptables savesystemctl enable iptables.service   # 注册iptables服务 #相当于以前的chkconfig iptables on systemctl start iptables.service    # 开启服务systemctl status iptables.service   # 查看状态
docker

大家对docker肯定是不陌生的,如果还不知道docker的话,可以看之前的文章:都9102年了,还没听过docker?5分钟带你了解docker的前世今生!、史上最全(全平台)docker安装方法!

一键安装

懒人必备官方提供的一键安装脚本:wget -qO- | bash

标准版

#!/bin/bash# remove old versionsudo yum 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 sudo rm -rf /var/lib/docker#  preinstall utils sudo yum install -y yum-utils \  device-mapper-persistent-data \  lvm2# add repositorysudo yum-config-manager \    --add-repo \     make cachesudo yum makecache fast# install the latest stable version of dockersudo yum install -y docker-ce# start deamon and enable auto start when power onsudo systemctl start dockersudo systemctl enable docker# add current user sudo groupadd dockersudo gpasswd -a ${USER} dockersudo systemctl restart docker
国内镜像版
#!/bin/bash# 移除掉旧的版本sudo yum remove docker \                  docker-client \                  docker-client-latest \                  docker-common \                  docker-latest \                  docker-latest-logrotate \                  docker-logrotate \                  docker-selinux \                  docker-engine-selinux \                  docker-engine# 删除所有旧的数据sudo rm -rf /var/lib/docker#  安装依赖包sudo yum install -y yum-utils \  device-mapper-persistent-data \  lvm2# 添加源,使用了阿里云镜像sudo yum-config-manager \    --add-repo \     配置缓存sudo yum makecache fast# 安装最新稳定版本的dockersudo yum install -y docker-ce# 配置镜像加速器sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-'EOF'{  "registry-mirrors": [";]}EOF# 启动docker引擎并设置开机启动sudo systemctl start dockersudo systemctl enable docker# 配置当前用户对docker的执行权限sudo groupadd dockersudo gpasswd -a ${USER} dockersudo systemctl restart docker

注意:国内访问docker太慢,一般会配置加速器,此处配置的加速器是163的加速器:,也可以配置阿里云的加速器。

dockerveth

查看docker容器与网卡的对应关系

rm -rf /usr/local/bin/dockervethcurl -o /usr/local/bin/dockerveth  +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 <<EOFexport JAVA_HOME=$(dirname $(dirname $(readlink $(readlink $(which javac)))))export PATH=\$PATH:\$JAVA_HOME/binexport CLASSPATH=.:\$JAVA_HOME/jre/lib:\$JAVA_HOME/lib:\$JAVA_HOME/lib/tools.jarEOFsource /etc/profile.d/java8.sh
fail2ban

多次SSH登录失败就封禁IP,避免SSH被爆破

yum -y install fail2banecho 'fail2ban install complete............'cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.localecho 'conf file copy complete.............'sed -i '/^\[sshd\]/a enabled = true' /etc/fail2ban/jail.localecho 'sshd has enabled.....'systemctl restart fail2ban.serviceecho 'fail2ban has restart...'systemctl enable fail2ban.serviceecho 'fail2ban has added auto started...'echo '=========================fail2ban sshd status==============================='sleep 4fail2ban-client status sshd
常用小工具
# zip压缩hash zip 2>/dev/null || {	yum -y install zip}# 解压hash unzip 2>/dev/null || {	yum -y install unzip}# GIThash git 2>/dev/null || {	yum -y install git}# ifconfig命令hash ifconfig 2>/dev/null || {	yum -y install net-tools}# telnet命令hash telnet 2>/dev/null || {	yum -y install telnet-server    yum -y install telnet}# wget命令hash wget 2>/dev/null || {	yum -y install wget}
BBR

bbr是谷歌出品的解决TCP拥堵一定程度上提升网速的算法

wget --no-check-certificate  && chmod +x bbr.sh && ./bbr.sh
参考VMware Workstation 15中文破解版 下载与安装(附密钥):CentOS Mirrors ListSSH客户端(如PuTTY)ssh远程登录Linux非常慢的解决方法VMware Tools 简介Linux安装Vmware-tools步骤(命令行)+The path is not valid path to...排错安装vmware-tools遇The path "" is not a valid path to the 3.8.13-44.1.1.el6uek.x86_64 kernel问题解决

标签: #telnet环境变量