背景
在使用Windows 10開發(fā)的過程之中避免不了使用Linux環(huán)境,比如裝個數(shù)據(jù)庫、裝個docker跑開發(fā)環(huán)境、比如做一些實驗、裝一些雜七雜八的軟件不影響宿主機環(huán)境、甚至僅僅是學習Linux
此時有幾個選擇
- 買臺新電腦裝Linux放局域網(wǎng)里面使用
- 虛擬機里面裝Linux,虛擬機又有兩個選擇,Windows10自帶的Hyper-V或者Vmware
- 裝個Win10的docker,Win10上的docker其實也是基于Linux虛擬機
鏡像獲取
鏡像要Minimal的,這種無GUI界面的鏡像文件小,占用資源少而且穩(wěn)定,正符合我們的需求,去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,我們選擇最簡單的安裝方式
- 點擊創(chuàng)建新的虛擬機 ,選擇典型,這種模式內(nèi)存自行給出建議值,待創(chuàng)建好后可自行更改內(nèi)存大小
- 安裝程序光盤映像文件(iso),選擇剛剛下載的鏡像文件 >
- 點擊下一步 ,輸入虛擬機名稱和位置
- 設置合適的磁盤大小,一般默認就好,不夠用后面可以手動擴容
- 點擊完成,點擊界面上的Install

文章插圖
安裝過程之中你需要創(chuàng)建用戶和設置root密碼,用戶可以不創(chuàng)建,但是root密碼必須設置,設置完成后點擊右下角Finish configuration

文章插圖
最后點擊roboot,稍等一會,輸入用戶名和密碼即可登錄
配置CentOS 7
網(wǎng)絡配置
主角:網(wǎng)絡配置文件 > /etc/sysconfig/network-scripts/ifcfg-ens33
為啥最先說網(wǎng)絡,因為接下來的內(nèi)容都是以網(wǎng)絡為基礎的,如果網(wǎng)沒整好,后面就很麻煩,現(xiàn)在你連自己機器的內(nèi)網(wǎng)IP都不知道,SSH連接都沒辦法
- 查看Vmware的網(wǎng)關(guān)地址,基于VMnet8,一會要用,本例中是192.168.108.2

文章插圖
- 如果是克隆機需要重新生成一下MAC地址(右鍵剛才安裝的虛擬機 > 設置 > 網(wǎng)絡適配器 > 高級 > 點擊下方生成重新生成MAC地址),因為物理地址不能一樣,我們是新裝的,不用管 。
- 修改網(wǎng)絡配置文件,修改前最好備份一下
- 重啟使配置生效
- 最后ping一下百度,看看生效沒,如下回顯表示成功
[root@localhost network-scripts]# cat ifcfg-ens33TYPE=Ethernet #網(wǎng)卡類型(通常是Ethemet以太網(wǎng))PROXY_METHOD=none #代理方式:為關(guān)閉狀態(tài)BROWSER_ONLY=no #只是瀏覽器:否BOOTPROTO=static #網(wǎng)卡的引導協(xié)議【static:靜態(tài)IP dhcp:動態(tài)IP none:不指定,不指定容易出現(xiàn)各種各樣的網(wǎng)絡受限】DEFROUTE=yes #默認路由IPV4_FAILURE_FATAL=no #是否開啟IPV4致命錯誤檢測IPV6INIT=yes #IPV6是否自動初始化:是(現(xiàn)在還未用到IPV6,不會有任何影響)IPV6_AUTOCONF=yes #IPV6是否自動配置:是(現(xiàn)在還未用到IPV6,不會有任何影響)IPV6_DEFROUTE=yes #IPV6是否可以為默認路由:是(現(xiàn)在還未用到IPV6,不會有任何影響)IPV6_FAILURE_FATAL=no #是否開啟IPV6致命錯誤檢測IPV6_ADDR_GEN_MODE=stable-privacy #IPV6地址生成模型NAME=ens33 #網(wǎng)卡物理設備名稱UUID=ab60d501-535b-49f5-a76b-3336a4120f64#通用唯一識別碼,每一個網(wǎng)卡都會有,不能重復,否則兩臺linux機器只有一臺可上網(wǎng)DEVICE=ens33 #網(wǎng)卡設備名稱,必須和‘NAME’值一樣ONBOOT=yes #是否開機啟動,要想網(wǎng)卡開機就啟動或通過 `systemctl restart network`控制網(wǎng)卡,必須設置為 `yes`IPADDR=192.168.108.105 # 本機IPNETMASK=255.255.255.0 #子網(wǎng)掩碼GATEWAY=192.168.108.2 #默認網(wǎng)關(guān)DNS1=8.8.8.8 DNS2=8.8.8.5 [root@localhost network-scripts]# service network restart #重啟網(wǎng)卡Restarting network (via systemctl): [ 確定 ] 注意點
上面的網(wǎng)關(guān)地址192.168.108.2是基于VMnet8,那我們看看VMnet8這塊網(wǎng)卡在宿主機中的地址:192.168.108.1

文章插圖
其實上面的配置中,網(wǎng)關(guān)地址你配置成192.168.108.1和192.168.108.2都可以,那這兩個有什么區(qū)別?
經(jīng)過我的測試,192.168.108.1不僅僅是一個網(wǎng)關(guān)的角色,它還能代表宿主機(在虛擬機環(huán)境中),比如宿主機跑了一個代理在1080端口,那么虛擬機在虛擬機中telnet 192.168.108.1 1080端口是通的,而telnet 192.168.108.2 1080端口不通,要設置代理必須指定為:192.168.108.1 1080,所以192.168.108.2僅僅是一個網(wǎng)關(guān),不能代表宿主機 。
代理配置
有時候有代理的需求,比如下載一個很慢的軟件,可以設置使用宿主機的代理,前提是宿主機已經(jīng)有代理了 。
- 全局代理配置,沒用用戶密碼就不需要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
為什么要放到最后來安裝,是因為安裝的過程需要一些依賴必須聯(lián)網(wǎng)之后才能安裝
- 先添加一個共享文件夾用于驗證VMware Tools是否安裝成功,步驟:選中虛擬機 > 右鍵 > 設置 > 虛擬機設置 > 選項 Tab > 共享文件夾 > 添加 ,隨便選擇一個文件夾添加,最后點擊確認即可
- 在虛擬機下面點擊安裝Tools,或者點擊頂部虛擬機 > 安裝VMware Tools

文章插圖
- 安裝依賴
- 執(zhí)行如下命令
- 安裝過程之中一路回車使用默認選項即可
- 輸入df -h如果看到類似如下回顯則成功
可能出現(xiàn)的問題
參考:https://blog.csdn.net/u012820996/article/details/81463535、https://blog.csdn.net/ljunjie82/article/details/48895939
設置系統(tǒng)時間
# 覆蓋系統(tǒng)時間cp/usr/share/zoneinfo/Asia/Shanghai /etc/localtime # 更新系統(tǒng)硬件時間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 # 查看默認防火墻狀態(tài)(關(guān)閉后顯示not running,開啟后顯示running)systemctl maskfirewalld # 禁用firewalld服務#規(guī)則層級iptables -P INPUTACCEPT# 先允許所有,不然有可能會清除后斷開連接,無法再連接iptables -F # 清空所有默認規(guī)則iptables -X # 清空所有自定義規(guī)則iptables -Z # 所有計數(shù)器歸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 #允許本機入站 否則無法聯(lián)網(wǎng)iptables -A OUTPUT-m state --state ESTABLISHED,RELATED -j ACCEPT #允許本機出站 否則無法聯(lián)網(wǎng)iptables -P INPUTDROPiptables -P OUTPUTACCEPTiptables -P FORWARD DROP#iptables層級service iptables savesystemctl enableiptables.service # 注冊iptables服務 #相當于以前的chkconfig iptables on systemctl startiptables.service # 開啟服務systemctl statusiptables.service # 查看狀態(tài) 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 國內(nèi)鏡像版
#!/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# 刪除所有舊的數(shù)據(jù)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# 安裝最新穩(wěn)定版本的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的執(zhí)行權(quán)限sudogroupadd dockersudogpasswd -a ${USER} dockersudosystemctl restart docker 注意:國內(nèi)訪問docker太慢,一般會配置加速器,此處配置的加速器是163的加速器:http://hub-mirror.c.163.com,也可以配置阿里云的加速器 。
dockerveth
查看docker容器與網(wǎng)卡的對應關(guān)系
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環(huán)境必備
# 安裝javayum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel which# 環(huán)境變量設置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分鐘快速搭建環(huán)境 如何搭建linux虛擬機環(huán)境】# 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擁堵一定程度上提升網(wǎng)速的算法
wget--no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && ./bbr.sh 參考
推薦閱讀
- 圖解10秒教你快速重置系統(tǒng) 小米手機怎樣恢復出廠設置
- 教你一招快速免費轉(zhuǎn)換 pdf怎么轉(zhuǎn)換成word手機上
- 手把手教你設置寬度全流程 電腦寬帶連接怎么連接
- 教你一鍵批量導出微信好友 微信通訊錄怎么導出
- 1分鐘教你輕松導出通訊錄 手機通訊錄怎么導出excel
- 三招教你分辨膚色的方法 中國皮膚色卡對照表
- 免費教你2招快速解決 華為忘記鎖屏密碼10秒解決
- 圖解6步快速關(guān)閉 微信運動步數(shù)怎么關(guān)閉
- 手把手教你查詢繳費電表號 電費繳費戶號在哪里看
- 教你3步快速查看ip地址 怎么查看打印機ip地址
