今天给大家带来一篇ubuntu安装java8和7的教程。 前言 安装 jdk 切换 jdk 版本 前言 本机装的是 jdk7 ,无奈最近看的源码不少都已经拥抱 jdk8 了。便于调试,安装了新的 java 版本。 安装 jdk 这里简单说明下 Ubuntu 下 jdk8 的安装过程,jdk7 的类似,不再赘述。 下载安装包: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html ,选择 jdk-8u162-linux-x64.tar.gz。 新建目录并解压到该目录 sudo mkdir /usr/lib/java sudo tar zxvf ./jdk-8u162-linux-x64.tar.gz -C /usr/lib/java sudo mv /usr/lib/java/jdk1.8.0_162/ /usr/lib/java/jdk8 打开配置文件, sudo gedit /etc/profile, 在文件中加入以下内容 export JAVA_HOME=/usr/lib/java/jdk8 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH 将新安装的 jdk 加入到选项里 sudo update-alternatives --install /usr/bin/java java /usr/lib/java/jdk8/bin/java 300 sudo update-alternatives --install /usr/bin/javac javac /usr/lib/java/jdk8/bin/javac 300 通过 sudo update-alternatives –config java 指令,选择相应的jdk即可! $ sudo update-alternatives --config java There are 3 choices for the alternative java (providing /usr/bin/java). Selection Path Priority Status ------------------------------------------------------------ 0 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 auto mode * 1 /usr/lib/java/jdk7/bin/java 300 manual mode 2 /usr/lib/java/jdk8/bin/java 300 manual mode 3 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 manual mode Press enter...
lamp架构wordpress和discuzx教程 背景 虚拟主机 fastcgi 部署流程 部署架构 环境 架构图 编译软件 安装开发环境和必要的包 编译httpd 编译php 安装mariadb 配置文件修改 修改httpd主机 修改fast-cgi主机 配置mysql 宿主机的hosts文件修改 安装wordpress和Discuzx 背景 虚拟主机 如今服务器的配置提升明显,单一主机上部署单一网站会对主机造成大量的性能损失,因此web服务虚拟主机的技术应运而生。所谓虚拟主机指的是在一台机器上运行多个网站(如company1.example.com和company2.example.com)的做法 。虚拟主机可以是“ 基于IP的 ”,这意味着每个网站都有不同的IP地址,或者“ 基于名称 ”,这意味着每个IP地址上都有多个名称,或者“基于端口”,这意味着在同一ip的不同端口上提供不同的网站,通过这些方法使得他们在同一台物理服务器上运行的事实对最终用户来说并不明显。 Apache是第一批支持基于IP的虚拟主机的服务器之一。Apache的版本1.1及更高版本支持基于IP和基于名称的虚拟主机(虚拟主机)。虚拟主机的后一种变型有时也被称为基于主机的或非IP虚拟主机。 fastcgi FastCGI像是一个常驻(long-live)型的CGI,它可以一直执行着,只要激活后,不会每次都要花费时间去fork一次(这是CGI最为人诟病的fork-and-execute 模式)。它还支持分布式的运算, 即 FastCGI 程序可以在网站服务器以外的主机上执行并且接受来自其它网站服务器来的请求。 FastCGI是语言无关的、可伸缩架构的CGI开放扩展,其主要行为是将CGI解释器进程保持在内存中并因此获得较高的性能。众所周知,CGI解释器的反复加载是CGI性能低下的主要原因,如果CGI解释器保持在内存中并接受FastCGI进程管理器调度,则可以提供良好的性能、伸缩性、Fail- Over特性等等。 部署流程 部署架构 环境 3台主机用于分别部署httpd,php和mysql,实现分离 软件版本 架构图 编译软件 这里我们需要编译的软件为httpd和php,mysql可以考虑使用二进制包或者直接官方yum安装 安装开发环境和必要的包 1.安装centos开发工具包 yum groupinstall "development tools" -y 2.安装编译httpd和php需要的包 #部分包需要epel源 #yum install epel-release -y yum install pcre-devel openssl-devel expat-devel libxml2-devel bzip2-devel libmcrypt-devel -y 编译httpd 这里在192.168.99.130机器上编译httpd2.4 1.创建apache用户 useradd -r apache -s /sbin/nologin 2.解压httpd,apr,apr-util源码包,这里需要的包均可在httpd官网下到 tar xvf httpd-2.4.33.tar.bz2 tar xvf apr-1.6.2.tar.gz tar xvf apr-util-1.6.1.tar.gz 3.编译httpd #移动解压的apr和apr-util到指定的httpd源码目录可以省去分别编译3个程序 mv apr-1.6.2 httpd-2.4.33/srclib/apr mv apr-util-1.6.1 httpd-2.4.33/srclib/apr-util #编译参数,具体含义可以参考./configure的帮助文档或者官方文档 ./configure \ --prefix=/app/httpd24 \ --enable-so \ --enable-ssl \ --enable-cgi \ --enable-rewrite \ --with-zlib \ --with-pcre \ --with-included-apr \...
【腾讯云】2核2G云服务器新老同享 99元/年,续费同价,云服务器3年机/5年机限时抢购,低至 2.5折
2025-01-03
前言 现在NGINX越来越普及了、通过很多面板都可以简单搭建、小白都可以操作、但是出了问题、不知道如何下手、今天我们总结下教程 学派吧-小编初到一家公司做运维的工作,刚来的第一天就开始部署LNMP(Linux+Nginx+MySQL+PHP)环境,结果出现了问题。 他来向我请教,具体问题现象、原因和解决思路如下: 问题一 nginx进程CPU和内存不均衡,某个进程占用资源特别高,如何解决? 回答:我让学派吧-小编绑定下CPU的亲缘性(设置nginx配置worker_cpu_affinity项为auto,auto这个特殊值(1.9.10版本)允许自动绑定工作进程到可用的CPU上。),绑定后CPU和内存使用就均衡了。 问题二 学派吧-小编又问close系统调用消耗很高怎么解决? 回答:且听我娓娓道来,继续看下文。 strace−cpstrace−cp(pgrep -n nginx) $ top 系统32c的,top查看负载去到75.14, 查看过nginx和php-fpm的 错误日志也没有什么发现。 strace 跟踪close的系统调用, 都是以下的信息: strace−T−ttpstrace−T−ttp(pgrep -n nginx) 2&>1 |grep -B 10 close > ./close.log $ lsof | more 遂怀疑是连接创建关闭消耗了太多的资源,便让学派吧-小编加了台机器专门跑nginx, 前端挂了个nginx用长连接跟后端的nginx连接,接了个nginx之后负载果然就下来了。 前端未挂nginx压测ab压测结果: 前端挂了nginx压测ab压测结果: tps基本没变第一个Time per,requset快了87.52%。 接着继续排查tps上不去的原因,继续strace后端的nginx。 strace−cpstrace−cp(pgrep -n nginx) 发现现在是wrtiev占用高了,strace 跟踪close的系统调用, 发现很多以下的输出: connect(26, {sa_family=AF_INET, sin_port=htons(9000), sin_addr=inet_addr("127.0.0.1")}, 16) = -1 EINPROGRESS (Operation now in progress) 问题应该不是在nginx上, 应该是在php-fpm上了。 继续 strace−cpstrace−cp(pgrep -n php-fpm) 显示下图所示: access cpu时间消耗最多那就先 排查access 系统调用: strace−T−ttpstrace−T−ttp(pgrep -n php-fpm) 2&>1 | grep -B 10 access > ./access.log php-fpm进程频繁的去读取文件,整个操 作下来花费4ms的时间。 然后排查recvfrom: strace−T−ttpstrace−T−ttp(pgrep -n php-fpm) 2&>1 | grep -B 10 recvfrom > ./recvfrom.log 频繁的去访问10.0.0.156的6379,端口,明显就是访问redis读取数据的过程, 整个过程花费12ms。 让学派吧-小编把上面两个strace信息发给开发,第一个得到回复是老版本的流程, 新版本改了,但还是有些判断没有处理。 第二个问题让开发使用redis连接池,无需频繁创建连接读取数据, 频繁创建连接开销很大的。 总 结 当遇上性能问题时,排查日志无法解决时,使用strace工具来查看一下系统调用,看时间到底消耗在哪里了,可以轻松的找到问题所在。欢迎关注我们学派吧
nginx配置location教程及rewrite规则教程 location正则写法 实际使用建议 Rewrite规则 flag标志位 if指令与全局变量 if判断指令 全局变量 常用正则 rewrite实例 location正则写法 一个示例: location = / { # 精确匹配 / ,主机名后面不能带任何字符串 [ configuration A ] } location / { # 因为所有的地址都以 / 开头,所以这条规则将匹配到所有请求 # 但是正则和最长字符串会优先匹配 [ configuration B ] } location /documents/ { # 匹配任何以 /documents/ 开头的地址,匹配符合以后,还要继续往下搜索 # 只有后面的正则表达式没有匹配到时,这一条才会采用这一条 [ configuration C ] } location ~ /documents/Abc { # 匹配任何以 /documents/Abc 开头的地址,匹配符合以后,还要继续往下搜索 # 只有后面的正则表达式没有匹配到时,这一条才会采用这一条 [ configuration CC ] } location ^~ /images/ { # 匹配任何以 /images/ 开头的地址,匹配符合以后,停止往下搜索正则,采用这一条。 [ configuration D ] } location ~* \.(gif|jpg|jpeg)$ { # 匹配所有以 gif,jpg或jpeg 结尾的请求 # 然而,所有请求 /images/ 下的图片会被 config D 处理,因为 ^~ 到达不了这一条正则 [ configuration E ] } location /images/ { # 字符匹配到 /images/,继续往下,会发现 ^~ 存在 [ configuration F ] } location /images/abc { #...
Nginx配置 main模块 events 模块 http模块 sendfile keepalive 超时 map proxy openfile client buffer Gzip fastcgi cache server模块 正则 Rewrite 文件缓存 FPM HTTPS upstream模块 默认轮询(加权) 最小连接数 IP Hash FPM配置 global全局配置 进程池配置 Nginx配置 nginx的配置主要分为6个区域,main(全局设置),events(工作模式),http(http服务),upstream(负载均衡),server(主机设置),location(url规则)。 main events { } http { upstream domain { } server { location { } } } main模块 user www www; worker_processes 4; worker_cpu_affinity 0001 0010 0100 1000; error_log /home/git/logs/error_log error; pid /usr/local/var/run/nginx/nginx.pid; worker_rlimit_nofile 65535; user 用来指定worker进程运行的用户及用户组 worker_processes 来指定开启的worker进程数,如果是多核CPU,建议指定和CPU的数量一样的进程数即可,这里的CPU数量指物理核数。 worker_cpu_affinity 将不同的woker进程绑定到不同的cpu,这里指绑定到CPU[0-3],降低由于多CPU核切换造成的寄存器等现场重建带来的性能损耗。 error_log 用来定义全局错误日志文件。日志输出级别有debug、info、notice、warn、error、crit可供选择,其中,debug输出日志最为最详细,而crit输出日志最少。 pid 指定master进程ID存储位置。 worker_rlimit_nofile 指定最多打开的文件描述符(fd),查看用户级fd限制(ulimit -n),查看系统级fd限制(cat /proc/sys/fs/file-max),系统fd与系统内存有关。 events 模块 events用来指定nginx的事件模型及连接数上限。 events { use epoll; worker_connections 65535; multi_accept on; } use 用来指定具体的事件模型,包括select、poll、epoll、kqueue、/dev/poll、eventport、rtsig,其中select、poll是标准的事件模型,epoll(用于linux平台)和kqueue(用于BSD平台)是高效的事件模型。 worker_connections 定义每个nginx进程接收的最大连接数,最大客户端连接数Max_clients = worker_processes * worker_connections / 2,而作为反向代理时,Max_clients = worker_processes * worker_connections / 4。 multi_accept 让NGINX在接收到一个新连接通知后调用accept()来接受尽可能多的连接。 http模块 负责http服务器的设置,包括虚拟主机和反向代理。 http{ server_tokens off; include mime.types; default_type application/octet-stream;...
解决办法 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Cpnnection "upgrade";
Flask项目部署 web工作原理 nginx安装 添加虚拟主机 uWSGI 静态文件处理 Flask项目部署 web工作原理 客户端 < = > 服务器(nginx) < = > uWSGI < = > Python(Flask) < = > 数据库 nginx安装 源码安装、apt-get install … sudo /usr/local/nginx/sbin/nginx -s reload 添加虚拟主机 1.在nginx的主配置文件最后一个大括号的上面添加: include vhost/*.conf; 2.在conf/下新建文件夹,用于保存所有的虚拟主机配置文件 mkdir vhost 3.vhost目录下新建一个虚拟主机的配置文件(sudo vim idandan.vip.conf) server{ listen 80; server_name idandan.vip; location / { root html/blog; index index.html; } } # sudo vim idandan.vip.conf 4.在html目录下创建blog文件夹,在blog下新建index.html Hello World 5.重启nginx(sudo /usr/local/nginx/sbin/nginx -s reload) 6.添加本地的域名解析,修改文件:(C:\Windows\System32\drivers\etc\hosts) 最后一行添加:139.196.81.238 idandan.vip 7.测试,在浏览器地址栏输入:idandan.vip uWSGI 1.安装:pip3 install uwsgi 2.配置: http: # 采用http协议 socket: # 采用socket协议 wsgi-file # 将数据交给哪个模块 callable # 具体可调用的对象 chdir # 指定uwsgi启动后的当前目录 daemonize # 后台运行,需要指定一个日志文件 # blog.py文件 from flask import Flask app = Flask(__name__) @app.route('/') def index(): return 'Hi' if __name__ == '__main__': app.run() 3.简单实例 1.在blog目录下创建blog.py文件,里面写上flask启动代码用于测试 2.启动: sudo uwsgi --http...
今天学派吧给大家分享一篇关于负载均衡的教程 1. 部署前准备工作 2. Ansible主机与远程主机秘钥认证 3. 安装配置Ansible 4. 编写roles,实现web的部署 5. 编写roles角色部署nginx+keepalived 6. 编写roles角色 7. 其他问题 本篇文章记录通过Ansible自动化部署nginx的负载均衡高可用,前端代理使用nginx+keepalived,后端web server使用3台nginx用于负载效果的体现,结构图如下: 1. 部署前准备工作 主机规划 Ansible : 192.168.214.144 Keepalived-node-1 : 192.168.214.148 Keepalived-node-2 : 192.168.214.143 web1 : 192.168.214.133 web2 : 192.168.214.135 web3 : 192.168.214.139 2. Ansible主机与远程主机秘钥认证 #!/bin/bash keypath=/root/.ssh [ -d ${keypath} ] || mkdir -p ${keypath} rpm -q expect &> /dev/null || yum install expect -y ssh-keygen -t rsa -f /root/.ssh/id_rsa -P "" password=centos while read ip;do expect <<EOF set timeout 5 spawn ssh-copy-id $ip expect { "yes/no" { send "yes\n";exp_continue } "password" { send "$password\n" } } expect eof EOF done < /home/iplist.txt iplist.txt 192.168.214.148 192.168.214.143 192.168.214.133 192.168.214.135 192.168.214.139 192.168.214.134 执行脚本 [root@Ansible script]# ./autokey.sh 测试验证 [root@Ansible script]# ssh 192.168.214.148 'date' Address 192.168.214.148 maps to localhost,...
今天给大家带来一篇关于mysql数据库的注入总结教程 基础知识 什么是SQL注入 什么是Mysql MySQL手工注入 手工注入流程 判断注入点 判断查询的字段数 确定回显位 获取信息函数 获取数据库名 获取表名 获取列名 获取数据 写shell 各位大佬。。。这篇文章是个人再练习注入的时候自己总结出来的一部分经验,步骤确实很简单,百度上面确实也能搜的到相关类似的,但关于文章中一些我个人的理解与总结部分肯定是搜不到的。菜鸟初来乍到,如果个人经验比较少或者说总结的不够深入,入不了各位大佬法眼,请各位大佬见谅。菜鸟还是需要不断学习进步,争取后续分享的文章能有更高的一个质量,能入的了各位大佬的眼。。。给各位大佬递茶。。。。 由于新人刚报道不久,大概浏览了一下论坛内的帖子,发现很多都是大佬们分型的工具,以及各种牛逼的渗透过程及思路记录。关于新人的一些简单入门点的资料好像不多(可能新人刚到,不太熟悉如何寻找资料,如果有误还请各位大佬不吝指教,请多多见谅,)。 这篇文章属于个人在学习sql注入时的一部分总结,后续的关于个人sql注入的总结文章也会陆续发出来。如果跟大佬的有重复或者有什么其他问题,请各位大佬及时指出{:6_430:} 。自评TCV=0….. 下面就是正文部分了。 基础知识 什么是SQL注入 A SQL injection attack consists of insertion or “injection” of a SQL query via the input data from the client to the application. A successful SQL injection exploit can read sensitive data from the database, modify database data (Insert/Update/Delete), execute administration operations on the database (such as shutdown the DBMS), recover the content of a given file present on the DBMS file system and in some cases issue commands to the operating system. SQL injection attacks are a type of injection attack, in which SQL commands are injected into data-plane input in order to effect the execution of...
FirewallD 提供了支持网络/防火墙区域(zone)定义网络链接以及接口安全等级的动态防火墙管理工具,它拥有运行时配置和永久配置选项。CentOS 7中防火墙是一个非常的强大的功能,本文主要介绍FirewallD常用管理命令。 安装firewalld Centos7自带FirewallD防火墙工具,如果你的系统是最小化安装的,可能就需要自己动手安装firewalld服务。 yum install firewalld firewall-config 运行和停止firewalld systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。我们使用systemctl命令来控制firewalld。 启动防火墙: systemctl start firewalld.service 关闭防火墙: systemctl stop firewalld.service 重启防火墙: systemctl restart firewalld.service 开机时启动防火墙: systemctl enable firewalld.service 开机时禁用防火墙: systemctl disable firewalld.service 查看防火墙运行状态: systemctl status firewalld 配置firewalld-cmd管理防火墙端口 我们使用firewalld的字符界面管理工具firewall-cmd很方便就可以管理firewalld。 显示防火墙状态: firewall-cmd --state 显示防火墙状态: firewall-cmd --state 添加80端口,允许访问80端口,并永久生效: firewall-cmd --zone=public --add-port=80/tcp --permanent 添加服务,允许https访问,并永久生效: firewall-cmd --zone=public --add-service=https --permanent 移除80端口: firewall-cmd --zone=public --remove-port=80/tcp --permanent 重新载入使配置生效: firewall-cmd --reload 查看开放的端口: firewall-cmd --list-ports 当然,你也可以到/etc/firewalld/zones/目录下直接修改xml配置文件。 习惯用centos7以前版本的伙伴都喜欢用iptable来管理防火墙,设置在使用CentOS7后还把系统自带的firewalld服务弃用,转而用老版本的iptable,可我觉得firewalld很好用啊,简单又实在,好东西为什么不用呢。 欢迎大家投稿到我们学派吧
前言 现在很多朋友选择使用了阿里云、如何在阿里云ecs主机上挂载oss存储,在服务器上通过本地文件系统操作OSS 上的对象?阿里云提供一个ossfs的程序,不用我们再次使用api开发, 直接就能使用。步骤比较简单,按照官方文档基本可以完成。 准备条件 您需要有一个ecs云主机,创建Access Key和对应的OSS对象。 安装依赖 yum install automake gcc-c++ git libcurl-devel libxml2-devel make openssl-devel 官方文档还提供安装fuse-devel包。不过因为博主centos 6系统在安装fuse后版本是2.8.3,而ossfs必须要2.8.4以上,所以fuse需要手动安装。 下载fuse 2.8版本,地址:https://github.com/libfuse/libfuse/tree/fuse_2_8_bugfix ,不要使用最新的fuse 3的版本。 # wget https://codeload.github.com/libfuse/libfuse/zip/fuse_2_8_bugfix -O fuse_2_8_bugfix.zip # unzip fuse_2_8_bugfix.zip # cd libfuse-fuse_2_8_bugfix # ./makeconf.sh # ./configure --prefix=/usr/local/fuse # make # make install 安装后确认是否正确,命令类似如下: # export PKG_CONFIG_PATH=/usr/lib64/pkgconfig:/usr/local/fuse/lib/pkgconfig # ldconfig # modprobe fuse # pkg-config --modversion fuse fuse安装成功: 安装ossfs 安装和文档差不多,依赖正确后一般不会出现问题。这里我手动安装在/usr/local/ossfs目录,如果需要全局使用ossfs命令在PATH加下目录即可。 # git clone https://github.com/aliyun/ossfs.git # cd ossfs # ./autogen.sh # ./configure --prefix=/usr/local/ossfs # make # make install 挂载卸载 将my-bucket这个bucket挂载到/tmp/ossfs目录下,AccessKeyId是faint, AccessKeySecret是123,oss endpoint是http://oss-cn-hangzhou.aliyuncs.com。 如果你是阿里云的ecs,endpoint可以使用内网地址,例如http://oss-cn-hangzhou-internal.aliyuncs.com,减少流量费用。 # echo my-bucket:faint:123 > /etc/passwd-ossfs # chmod 640 /etc/passwd-ossfs # mkdir /tmp/ossfs # ossfs my-bucket /tmp/ossfs -ourl=http://oss-cn-hangzhou.aliyuncs.com 卸载 # umount /tmp/ossfs 优化 挂载成功后,可以和操作本地文件一样操作OSS对象了。在正式用之前最好做下优化,比如开机自动挂载、取消程序扫描这个目录。 自动挂载、修改/etc/fstab 文件,添加如下代码,保存后mount -a挂载。 /usr/local/ossfs/bin/ossfs#my-bucket /tmp/ossfs fuse _netdev,url=http://oss-cn-hangzhou.aliyuncs.com,allow_other 0 0 使用ECS挂载ossfs,如何避免因后台程序扫描文件而产生费用。修改/etc/updatedb.conf 文件,在PRUNEFS =后面加上fuse.ossfs,在PRUNEPATHS =后面加上挂载的目录。 如果有错误的地方、请给位网络朋友给予回复纠正、 欢迎关注我们学派吧
今天宝塔突然apache启动不了.网站打不开。提示: 报错: Apache配置规则错误: [url=]httpd: Syntax error on line 501 of /www/server/apache/conf/httpd.conf: Syntax error on line 1 of /www/server/panel/vhost/apache/btwaf.conf: Cannot load modules/mod_lua.so into server: /www/server/apache/modules/mod_lua.so: cannot open shared object file: No such file or directory[/url] 系统: CentOS Linux 7.4.1708 (Core) 解决方法 卸载用编译方式重装即可, 如果有疑问可以加入我们学派吧QQ群 81885552
前言 centos 越来越普及了,通过一些面板很多小白都可以使用centos、但是安全方面却不行、今天学派吧整理下 centos安全相关的资料 发布出来、供小白学习、 设置 1 修改网卡为eth0 2 更新系统 3 给/etc/rc.local添加执行权限 4 添加用户hequan 5 禁用selinux 6 关闭防火墙安装iptables 7 修改主机名 8 查看并管理服务 9 设置字符集 10 yum 11 配置sshd 12 加大打开文件数的限制(open files) 13 优化内核 14 时间设置 15 man 中文版 16 vim基本设置 1 修改网卡为eth0 cd /etc/sysconfig/network-scripts/ vim ifcfg-eno16777729 TYPE=Ethernet BOOTPROTO=static IPADDR=192.168.1.201 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DEFROUTE=yes PEERDNS=yes PEERROUTES=yes IPV4_FAILURE_FATAL=no NAME=eth0 UUID=efd17b9a-a5ab-4c94-be62-d2c32eb48a7e DEVICE=eth0 ONBOOT=yes DNS1=202.106.0.20 mv ifcfg-eno16777729 ifcfg-eth0 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="net.ifnames=0 biosdevname=0 rhgb quiet" #添加 net.ifnames=0 biosdevname=0 GRUB_DISABLE_RECOVERY="true" grub2-mkconfig -o /boot/grub2/grub.cfg #生成启动菜单 Generating grub configuration file ... Found linux image: /boot/vmlinuz-3.10.0-327.el7.x86_64 Found initrd image: /boot/initramfs-3.10.0-327.el7.x86_64.img Found linux image: /boot/vmlinuz-0-rescue-e8675ae79abd41309dac42388f8d9116 Found initrd image: /boot/initramfs-0-rescue-e8675ae79abd41309dac42388f8d9116.img reboot ip addr 或者 yum install net-tools #默认centos7不支持ifconfig 需要看装net-tools包 ifconfig eth0 #再次查看网卡信息 2...