CentOS7静态IP与网关配置:原理、实操与虚拟机排障
搞运维或者做开发的朋友都有体会CentOS7这台系统装完之后最先让人卡住的地方从来不是软件安装而是网络。屏幕是黑的命令行能用就是上不了网ping 不通外网yum 装不了包连 SSH 工具都连不进来。我见过太多新手在虚拟机里折腾半天最后发现只是ONBOOT那行写着no。CentOS7 网络配置这件事说难不难说简单也容易翻车关键是要把 IP、网关、子网掩码、DNS 这几个概念之间的关系理顺再搞清楚 CentOS7 里到底是谁在管网络。这篇内容就是围绕 CentOS7 的 IP 和网关设置把整套流程从原理到实操完整走一遍包括静态 IP 怎么填、网关为什么必须和 IP 同网段、虚拟机 NAT 和桥接两种模式该怎么选、配置完怎么验证、出了问题怎么排查。不管你是刚接触 Linux 的新手还是想系统梳理一遍的老手都能直接照着做。下面进入正题。1. 搞懂CentOS7网络配置的底层逻辑1.1 一次装完系统连不上网的常见场景很多人第一次接触 CentOS7是在 VMware 或者 VirtualBox 这类虚拟机里装。装完之后打开终端敲一句ping www.baidu.com结果要么提示unknown host要么就是一直卡住没反应。这时候新手的第一反应往往是系统坏了镜像有问题其实九成以上的情况就是网络没配。CentOS7 和早期的 CentOS6 相比网络管理这一块做了比较大的调整。CentOS6 主要靠/etc/sysconfig/network-scripts/下面的ifcfg-eth0这种配置文件再配合/etc/init.d/network脚本来启动网络。到了 CentOS7冒出来一个 NetworkManager 服务它默认接管了网络管理同时传统的 network 服务也还保留着。两套东西并存就导致了一个很典型的现象你改了配置文件重启服务发现改动没生效或者你明明在图形界面里配好了命令行里看又不对。这种到底谁说了算的困惑是 CentOS7 网络配置里第一个要迈过去的坎。还有一种情况是台式机或者服务器上装物理机。物理机装完 CentOS7网线插着路由器也正常但就是上不了网。这种多半是装机时网络模式选了 DHCP而当前网络环境又不给自动分配地址或者分配的地址和实际网段对不上。物理机和虚拟机的排查思路不完全一样后面会分开讲。总之连不上网这件事先别急着怀疑系统先看配置。1.2 配置文件、NetworkManager和network服务到底谁说了算要搞清楚 CentOS7 的网络配置必须先把这三个东西的关系理清楚不然你永远在瞎改。第一个是网卡配置文件路径在/etc/sysconfig/network-scripts/ifcfg-网卡名。比如常见的ifcfg-ens33、ifcfg-ens160、ifcfg-eth0。这个文件决定了网卡是静态 IP 还是 DHCPIP 地址、网关、DNS 写在哪开机要不要启动。它是配置的数据源。第二个是NetworkManager 服务。CentOS7 默认安装并启用它负责实际把配置文件里的内容应用到网卡上还会在图形界面、nmcli 命令和配置文件之间做同步。它的好处是能动态感知网络变化坏处是它有时候会自作主张比如你自己手动改了/etc/resolv.confNetworkManager 重启后可能给你覆盖回去。第三个是传统的network 服务。CentOS7 里它还在命令是systemctl restart network。很多老教程、老运维习惯用它。它会读取/etc/sysconfig/network-scripts/下的配置来启动网络。两者同时启用的时候偶尔会打架。我的建议是要么统一用 NetworkManagersystemctl restart NetworkManager 或 nmcli要么统一用 network 服务别混着来。如果你在改配置文件这种手工流用systemctl restart network最直接反馈也清楚。如果你喜欢命令行那就全程用 nmcli。选一种坚持下去能省掉一大半莫名其妙的问题。提示CentOS7 里如果 network 服务和 NetworkManager 都启用了理论上 network 脚本会调用 NetworkManager 来处理但实际表现跟版本和补丁有关遇到诡异现象时可以试着停掉其中一个。1.3 三种网络连接模式怎么选虚拟机场景下网络连接模式主要有三种选错了后面 IP 怎么填都是白搭先把这个搞清楚。NAT 模式虚拟机通过宿主机借道上网。VMware 会创建一个虚拟网络比如 VMnet8虚拟机分到这个网段里的 IP宿主机做地址转换。优点是虚拟机不需要和物理机同网段也不占用局域网 IP宿主机换个网络环境比如从公司 Wi-Fi 换到家里 Wi-Fi虚拟机 IP 不用改。缺点是局域网里其他机器默认访问不到这台虚拟机需要额外做端口转发。日常学习、开发调试NAT 是最省心的选择。桥接模式虚拟机直接接入物理机所在的局域网和宿主机平起平坐会占用路由器的一个 IP。优点是局域网内互相能访问IP 看起来就是一台真实设备。缺点是 IP 资源紧张时不好办IP 段如果和公司网络冲突也麻烦而且宿主机换网络环境后虚拟机 IP 可能要跟着改。仅主机模式Host-Only只有宿主机和虚拟机之间能通信虚拟机上不了外网。适合做一些纯本地实验需要联网的场景就别用了。选哪种取决于你的需求只想自己练手、能上网就行选 NAT需要被别人访问、或者模拟真实服务器环境选桥接。确定了模式才知道网关该填什么后面第 4 章会按模式分别讲。2. 配置前必须做好的三件事2.1 定位网卡名和系统环境动手改配置之前先确认三件事你的网卡叫什么名字、当前是什么网络状态、系统版本是多少。这三条信息决定了后面所有操作。查网卡名最直接的办法有两个。终端里敲ip addr输出里会列出所有网络接口像ens33、ens160、eth0、lo这些lo是本地回环不用管剩下那个带 IP 或者带state UP/DOWN的就是你的物理网卡。也可以用ifconfig -a不过 CentOS7 最小化安装可能没带这个命令需要装net-tools包。我个人更喜欢ip addr系统自带输出清爽。确认网卡名之后配置文件就是/etc/sysconfig/network-scripts/ifcfg-你的网卡名。有的系统网卡名是ens33有的是ens160还有老一点的虚拟机是eth0。名字跟硬件、BIOS、systemd 的命名规则有关不是固定的。别照着网上教程里的ens33硬套先查清楚自己的。查系统版本用cat /etc/redhat-release会输出类似CentOS Linux release 7.9.2009 (Core)的内容。确认是 7.x 版本因为 CentOS8 之后网络管理默认完全交给了 NetworkManager命令和细节有区别混着看教程容易乱。2.2 备份与规划IP、网关、掩码怎么算改任何系统配置文件之前先备份这是铁律。执行cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens33.bak出问题了一条命令就能还原。别嫌麻烦我见过改坏配置文件之后 ssh 连不上、只能进虚拟机控制台救场的场面几分钟的备份能省你半小时。接下来是最关键的一步规划 IP 和网关。这一步很多人是拍脑袋填的填完不通又不知道错在哪。其实规则很简单填之前想清楚三件事。第一网段是什么。NAT 模式下打开 VMware 的虚拟网络编辑器看一眼 VMnet8 的网段常见的是192.168.xxx.0子网掩码255.255.255.0。桥接模式下看宿主机自己的 IP比如宿主机是192.168.1.100那虚拟机就填192.168.1.xxx同网段。第二IP 地址选哪个。NAT 模式下要避开 VMware 的 DHCP 分配范围比如 DHCP 池是192.168.xxx.128到192.168.xxx.254那你就选192.168.xxx.10到192.168.xxx.127之间的地址避免和自动分配的地址撞车。桥接模式要避开路由器 DHCP 池或者干脆在路由器里给这台机器做静态分配。第三网关填什么。这是最容易错的地方。网关必须和你的 IP 在同一个网段而且通常是这个网段里的第一个可用地址或者路由器地址。NAT 模式下 VMware 默认网关常是192.168.xxx.2桥接模式下网关就是路由器的地址比如192.168.1.1。如果你 IP 是192.168.1.50网关填了192.168.0.1那肯定通不了两个不在一个网段数据包出不去。2.3 子网掩码的计算与PREFIX写法CentOS7 的配置文件里子网掩码有两种写法一种是传统的NETMASK255.255.255.0另一种是PREFIX24。两种都行但你要知道 24 是怎么来的。子网掩码本质是一串二进制 1255.255.255.0转换成二进制就是 24 个 1 后面跟 8 个 0所以写成PREFIX24。常见的对应关系是这样的子网掩码PREFIX可用主机数典型用途255.255.255.024254最常见的小型局域网255.255.255.12825126对半划分255.255.255.1922662小型隔离网段255.255.255.2242730更小规模255.255.0.01665534大型网络为什么要懂这个因为有时候你会碰到/26这种写法比如网段是192.168.10.0/26可用地址是192.168.10.1到192.168.10.62广播地址是192.168.10.63。如果你随手填了个192.168.10.100虽然看着像但已经超出这个网段了网关也在别的段里网络自然不通。规划的时候算清楚比事后排查省事得多。注意IP 地址不能是这个网段的网络号全 0和广播地址全 1这两个地址是保留的填了会报错或者行为异常。3. 从零开始配置静态IP与网关完整实操3.1 编辑ifcfg配置文件环境查清楚了规划也想明白了现在开始动手。以网卡ens33、规划 IP192.168.10.100、网关192.168.10.2、DNS114.114.114.114为例走一遍完整流程。第一步用编辑器打开配置文件vi /etc/sysconfig/network-scripts/ifcfg-ens33打开之后你可能看到的是 DHCP 模式的内容长这样TYPEEthernet BOOTPROTOdhcp NAMEens33 DEVICEens33 ONBOOTno我们要把它改成静态 IP。改完之后的完整内容参考下面TYPEEthernet PROXY_METHODnone BROWSER_ONLYno BOOTPROTOstatic DEFROUTEyes IPV4_FAILURE_FATALno IPV6INITyes IPV6_AUTOCONFyes IPV6_DEFROUTEyes IPV6_FAILURE_FATALno NAMEens33 DEVICEens33 ONBOOTyes IPADDR192.168.10.100 PREFIX24 GATEWAY192.168.10.2 DNS1114.114.114.114 DNS2223.5.5.5保存退出。这里面每一行都有讲究尤其是我加粗关注的那几个参数。3.2 每一行参数拆开讲先看BOOTPROTO。它的值有三个常见选项dhcp表示自动获取static表示静态 IPnone也是不自动获取但语义上更接近无协议。做静态 IP 就写static。这行如果不改后面的 IPADDR 填了也白填因为系统还在按 DHCP 走。ONBOOT是新手翻车最多的地方。它控制开机时是否激活这块网卡值是yes或者no。很多系统装完之后默认是no结果就是重启一次网络就没了或者根本连不上。做静态 IP这一行必须是yes。我建议你在改完配置后专门回头确认一遍这行它值得你多看一眼。IPADDR、PREFIX、GATEWAY是核心三件套。IPADDR是你给这台机器分配的固定地址PREFIX是子网前缀GATEWAY是网关。前面说了这三个值要在同一个网段逻辑里缺一不可。GATEWAY可以写在这个配置文件里也可以写在/etc/sysconfig/network里但写在网卡配置里更直观也更好维护。DNS1、DNS2是域名解析服务器地址。不写 DNS就会出现能 ping 通 IP、ping 不通域名的情况。114.114.114.114和223.5.5.5是国内常用的公共 DNS填两个做冗余。注意CentOS7 里/etc/resolv.conf这个文件会被 NetworkManager 根据配置自动生成或覆盖所以要把 DNS 写在 ifcfg 配置文件里而不是直接改 resolv.conf否则重启网络后你的手动修改就丢了。NAME和DEVICE都写网卡名保持一致。TYPEEthernet表示有线以太网一般不用动。DEFROUTEyes表示这条连接可以作为默认路由做普通上网的机器保持yes。3.3 重启服务与四步验证法配置文件改完别急着高兴得让配置生效。CentOS7 里执行systemctl restart network如果没报错说明配置文件语法大概率没问题。如果报错看下面的第 5 章排查。重启之后用下面四步验证一步都别省。第一步看 IP 有没有上ip addr show ens33输出里应该能看到inet 192.168.10.100/24这一行。如果没有说明 IP 没配上回去检查配置文件。第二步看路由和网关ip route输出里应该有default via 192.168.10.2 dev ens33这一行表示默认网关设置成功。如果这行缺失说明 GATEWAY 没生效。第三步ping 网关ping -c 4 192.168.10.2这是判断网络是否通的第一个关口。如果网关都 ping 不通别想着 ping 外网先解决本地到网关的连通性。第四步ping 外网域名ping -c 4 www.baidu.com这一步同时验证了网关和 DNS。如果能通恭喜网络配置完成。如果 IP 能通但域名不行那就是 DNS 的问题看 5.2 节。3.4 nmcli命令行配置方式除了改配置文件CentOS7 还提供了 nmcli 命令行工具全程不用打开编辑器适合喜欢命令行或者需要批量操作的场景。同样以ens33、IP192.168.10.100/24、网关192.168.10.2为例nmcli connection modify ens33 ipv4.addresses 192.168.10.100/24 nmcli connection modify ens33 ipv4.gateway 192.168.10.2 nmcli connection modify ens33 ipv4.dns 114.114.114.114 223.5.5.5 nmcli connection modify ens33 ipv4.method manual nmcli connection up ens33这五条命令的效果和手改配置文件一模一样而且 nmcli 会自动帮你把配置写回 ifcfg 文件两套方式是互通的。ipv4.method manual就相当于BOOTPROTOstatic别忘了这一条不然前面的地址设置了也不会启用。用 nmcli 的好处是即时反馈命令执行完就能用nmcli connection show ens33查看当前配置。坏处是参数多记不住就得多查。我个人在单台机器上习惯手改配置文件在脚本批量部署时用 nmcli。两种都掌握遇到什么场景都不慌。实操心得改完配置之后systemctl restart network和nmcli connection up不要同时用。如果 NetworkManager 在管理这块网卡重启 network 可能只重启了一部分。认准一种方式重启后ip addr看到地址变了才算数。4. 虚拟机场景下的网络配置差异4.1 NAT模式固定IP怎么设NAT 模式是虚拟机里最常用的也是配置细节最容易搞错的一种。先用 VMware 举例VirtualBox 思路类似。打开 VMware 菜单里的编辑 - 虚拟网络编辑器找到 VMnet8NAT 模式对应的虚拟网卡点开NAT 设置你会看到网关地址常见的就是192.168.xxx.2。再看DHCP 设置里面能看到自动分配的地址范围比如192.168.xxx.128到192.168.xxx.254。知道了这些配置策略就清楚了你的静态 IP 要选在这个 DHCP 范围之外的地址段同时和网关同网段。假设 VMnet8 网段是192.168.118.0/24网关192.168.118.2DHCP 范围128-254那你的静态 IP 就选192.168.118.10到192.168.118.127之间的闲置地址。为什么要避开 DHCP 范围因为如果你固定了一个192.168.118.150而哪天 VMware 的 DHCP 恰好把这个地址分配给了另一台虚拟机就造成 IP 冲突两边都上不了网排查起来还特别费劲。避开这个区间从源头上杜绝冲突。配置内容参考BOOTPROTOstatic ONBOOTyes IPADDR192.168.118.100 PREFIX24 GATEWAY192.168.118.2 DNS1114.114.114.114这里网关填192.168.118.2就是 VMnet8 的 NAT 网关。填完重启网络ping 一下网关和百度验证。4.2 桥接模式与仅主机模式桥接模式的配置逻辑和 NAT 完全不同。桥接之后虚拟机变成了局域网里的一员它的网络环境和宿主机所在的局域网一致。所以你要看的是宿主机自己的 IP 和网关。比如宿主机是192.168.1.100网关192.168.1.1子网掩码255.255.255.0。那虚拟机的静态 IP 就选同网段的闲置地址比如192.168.1.200网关填192.168.1.1子网掩码255.255.255.0。配置参考BOOTPROTOstatic ONBOOTyes IPADDR192.168.1.200 PREFIX24 GATEWAY192.168.1.1 DNS1114.114.114.114桥接模式要注意 IP 冲突问题。192.168.1.200这个地址得确认局域网里没别的设备在用否则就撞车了。比较稳妥的做法是在路由器里把这台虚拟机的 MAC 地址和 IP 做绑定或者在选地址前先用ping测一下这个 IP 有没有回应。仅主机模式下虚拟机只能和宿主机通信走的是 VMware 的 VMnet1 虚拟网卡。网关一般填宿主机 VMnet1 网卡的地址比如192.168.xxx.1。这种模式不能上网除非额外做网卡共享或者路由转发一般只用于纯本地实验。如果你只是想在宿主机和虚拟机之间传文件、做测试用这个模式最安全因为它和外部网络完全隔开。4.3 克隆虚拟机后网卡起不来怎么办这是虚拟机运维里的经典坑值得单拎出来说。你从一台配好的 CentOS7 虚拟机克隆出一台新的开机后发现网卡没了ip addr看不到ens33或者看到个ens34网络配置文件对不上。原因在于 CentOS7 里有个机制网卡的配置文件和网卡的 MAC 地址或者说硬件身份是绑定的。克隆之后新虚拟机的网卡 MAC 地址变了但配置文件里的信息还指向旧网卡系统就认为这块网卡没见过于是要么不启用要么新建了一个接口。处理方法不复杂。首先确认新网卡的名称ip addr假如新网卡叫ens34那就把配置文件复制一份改名cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens34然后把新文件里的NAME和DEVICE都改成ens34旧文件可以删掉或者保留。再过一遍UUID那一行如果配置文件里有UUIDxxxx也要删掉或重新生成因为克隆出来的 UUID 和原机一样会造成冲突。重新生成 UUID 可以用uuidgen命令然后把值填回去。做完这些重启网络服务再确认 IP 和新网卡名对得上。还有一种更彻底的做法把/etc/udev/rules.d/下面和网卡命名相关的规则文件清掉让系统重新识别网卡但这种做法对不同的镜像兼容性不一新手建议用上面这种复制配置文件改名的思路更稳。5. 常见故障排查与避坑实录5.1 网络服务重启失败的排查顺序systemctl restart network报错是很多人配置之后遇到的第一道坎。错误信息通常是Job for network.service failed或者Error: Connection activation failed。看到这个别慌按下面顺序排查。先看配置文件语法。最常见的原因是拼写错误比如IPADDR写成了IPADDRR或者多了一个空格、少了一个引号。CentOS7 的配置文件对格式比较宽松但不是完全不在乎。检查时可以对照一份标准模板逐行看。再确认网卡名一致。配置文件里的DEVICE和NAME必须和你实际网卡名一致。如果你的实际网卡是ens160配置文件里还写着ens33那重启必然失败或者不生效。然后看是否有多余的配置文件。有时候克隆或者重装之后network-scripts目录下会残留旧的网卡配置文件启动时系统尝试启用一个不存在的网卡也会报错。把那些明显过时、网卡不存在的文件移走。最后看服务和配置是否冲突。如果 NetworkManager 和 network 同时启用偶尔会出现互相干扰。可以试着停掉 NetworkManager只用 network 服务systemctl stop NetworkManager systemctl disable NetworkManager然后再重启 network。反过来也行但一定要选一种。提示排查的时候用journalctl -xe或者systemctl status network -l看详细日志比只看那一行报错信息有用得多。5.2 能通IP不通域名的处理这个现象特别典型ping 8.8.8.8能通说明网络层和路由都正常但ping www.baidu.com提示unknown host说明 DNS 解析没工作。问题就出在 DNS 上。第一步检查/etc/resolv.confcat /etc/resolv.conf正常应该看到nameserver 114.114.114.114这样的行。如果没有或者内容和你配的对不上说明 DNS 没生效。第二步回到 ifcfg 配置文件确认DNS1和DNS2写对了。如果配置文件里没写 DNSNetworkManager 生成的 resolv.conf 里自然没有。第三步检查 DNS 是否被覆盖。有个常见现象是你手动改了 resolv.conf重启网络之后又变回去了。这是因为 CentOS7 里 NetworkManager 会接管这个文件。解决办法是把 DNS 写在 ifcfg 文件里让 NetworkManager 自己生成而不是手动去改。第四步如果配置都对还不行测一下 DNS 服务器本身通不通ping 114.114.114.114如果能通但解析还是失败可以换个 DNS 试试比如223.5.5.5或者119.29.29.29。偶尔也会遇到特定 DNS 在这个网络环境下被限制的情况换个地址往往就好了。5.3 常见问题速查表为了让你遇到问题时能快速定位我把常见的现象、原因和处理方法整理成一张表收藏着备用。现象可能原因处理方法重启network报失败配置文件语法错误、网卡名不匹配逐行检查 ifcfg确认 NAME/DEVICE 与实际网卡一致重启后 IP 消失ONBOOTno改成ONBOOTyes再重启服务ping 不通网关IP/掩码/网关不在同一网段重新核对三者的网段逻辑能通 IP 不通域名DNS 未配置或被覆盖在 ifcfg 里写 DNS1/DNS2IP 冲突时通时断固定 IP 落在 DHCP 池内换一个 DHCP 范围外的地址克隆后网卡起不来MAC 变化、配置文件不匹配复制配置文件改名并更新 UUID网关填了但不生效GATEWAY 与 IP 不同段改成同网段网关地址局域网访问不到虚拟机NAT 模式默认隔离改用桥接模式或做端口转发这张表建议在配置前先扫一眼心里有数遇到问题不慌。6. 进阶多网卡多IP与稳定运行方案6.1 单网卡绑定多个IP生产环境里有时候一块网卡需要配置多个 IP比如一个内网地址、一个对外服务地址。CentOS7 支持在配置文件里直接用IPADDR1、IPADDR2这种写法也可以复制配置文件生成子接口。先说简单的写法在同一个 ifcfg 文件里加IPADDR1192.168.10.100 PREFIX124 IPADDR2192.168.10.101 PREFIX224这样一块网卡就有两个地址。重启网络后ip addr能同时看到两个inet行。如果两个地址的用途差异较大、需要独立管理可以用子接口方式。复制一份配置文件命名成ifcfg-ens33:0修改里面的DEVICE为ens33:0NAME也相应改一下再配置自己的 IP。子接口的方式更清晰适合服务区分比较明确的场景。两种方式选哪种看你的管理习惯小规模用IPADDR1/2就够了别把配置搞复杂。6.2 多网卡分流配置服务器上装两块网卡的情况很常见比如一块走管理网一块走业务网。这时候要决定默认路由走哪块网卡以及不同网段的流量怎么分流。核心概念是默认网关。只有一块网卡能成为默认路由DEFROUTEyes其他网卡要么不设网关要么只做特定网段路由。如果你两块网卡都设置了默认网关就可能出现路由混乱、时通时不通的情况。正确的做法是主网卡需要上外网的那块设置DEFROUTEyes并配网关从网卡只服务内网设置DEFROUTEno不配网关只配 IP 和掩码。如果有跨网段访问需求再单独加静态路由命令是ip route add 10.10.0.0/16 via 192.168.20.1 dev ens192这条表示去往10.10.0.0/16的流量走192.168.20.1这个网关、从ens192出去。静态路由写入配置文件可以在network-scripts目录下建一个route-ens192文件内容格式是网段 via 网关 dev 网卡这样重启后也不会丢。6.3 开机自启与持久化检查清单配置做完最后一步是确保重启之后一切照旧。很多新手在命令行里配好了一重启就全白搭就是漏了持久化和自启的设置。下面这份检查清单建议每次配完网络都过一遍。ONBOOT 是否为 yes决定开机是否激活网卡这是最基础的。network 或 NetworkManager 是否开机自启systemctl is-enabled network或systemctl is-enabled NetworkManager返回enabled才算稳。DNS 是否写在 ifcfg 文件里而不是手动改的 resolv.conf。网关是否写在网卡配置里并且和 IP 同网段。是否配置了静态路由如果有检查 route 文件是否存在且语法正确。是否有残留的旧网卡配置文件移走不用的避免干扰。防火墙和 SELinux 是否影响了服务有时候网络通但某个服务访问不了是防火墙拦截不是网络配置的问题。过完这一遍基本可以放心重启了。我的经验是第一次配完先重启一次系统确认所有配置都还在再去做别的操作。别等到部署了一半才发现重启后网络没了那时候排查成本更高。最后分享一个自己的习惯每次配置完网络我会把关键的配置内容IP、网关、DNS、子网掩码记到一张便签上贴在虚拟机备注或者项目文档里。虚拟机多了之后哪台机器是什么地址、网关是哪个光靠记忆很容易串。一张清晰的记录能让后续的排查和维护少走很多弯路。CentOS7 的网络配置本身不复杂真正花时间的是那些细节和边界情况把这些理顺了以后换任何 Linux 发行版思路都是通用的。