有关 CentOS-7 的问题

1. 我过往利用 boot.iso 映像进行网络安装。它去了哪里?

由 EL6 起,上游决定把 boot.iso 移出 images/ 这个目录并利用另一个独立的媒体来发行它。基于该映像颇大,我们亦决定同样做。网络安装磁盘的映像名为 netinstall.iso,它只收藏在 isos/ 这个目录,当中还有其它的安装映像。

2. 为何我的乙太网络不能运作,除非我登录并刻意启用它?

……还有,为什么界面名称完全「逆转」以往惯例?这样做违反了 Unix「不更改预期结果」的原则。

上游的缺省组态已改用 NetworkManager,而且界面缺省是不会被启用的(针对乙太网来说是较难理解)。权宜之计就是在安装过程中,等待安装程序出现询问语系/键盘/存储设备/软件安装的主页,然后启用你的网络卡。这个昼面内有一粒「网络及主机名称」的按钮。点击这个按钮,选择你要编辑的乙太网络连接,然后点击右上角的「停用」按钮。假如你选用 DHCP,你便会看见该连接取得一个网络地址。如果你需要以手动方式更改网络设置,请按「设置」按钮,输入所需数值并存储他们。你大概要停用然后再启用刚设置的网络卡才能套用这些改动。现在按「完成」便大功告成。你也可以在安装完成后通过 NetworkManager(「系统;选项;网络连接」或右按通知本地内的网络小图示,选择「编辑连接……」)来作出这些改动。

假如你不采用 NetworkManager,你可以通过编辑网络界面的概述文件(正常为 /etc/sysconfig/network-scripts/ifcfg-eth0)并把 ONBOOT=no 改为 ONBOOT=yes 来达到相同効果。某些采用 DHCP 的安装还需要额外一行:BOOTPROTO=dhcp;固定 IP 的安装当然需要:BOOTPROTO=static

假设界面是 eth0,你可以(通过 root 的身份)这样编辑 ONBOOT{{{ # cd /etc/sysconfig/network-scripts/ # sed -i -e 's@^ONBOOT="no@ONBOOT="yes@' ifcfg-eth0 }}}

关于「更改预期结果」:上述例子采用「传统」的网络设备,eth0。其它设备名称亦有可能出现,例如:em1p3p1 等。不论你喜欢与否,这个为界面命名的改动是 Linux 的未来趋势。它已包含在上游的「测试发行版本」作为预览。此外请参阅:Dell 的介绍及内部员工的网志

3. 要是我想撤消至旧的命名呢?

以下是所需的步骤:

4. 但我只想令它运作及手动式编辑配置文件。

很多安装用不著 NetworkManager 工具的复杂性,而采用人手编辑的配置文件。以下是一个 非 NetworkManager 的 DHCP 界面设置样例:

[root@example ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO=dhcp
NM_CONTROLLED="no"
PERSISTENT_DHCLIENT=1
ONBOOT="yes"
TYPE=Ethernet
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME="eth0"
[root@none ~]#

以及一个「静态配置」配置文件的样例:

[username@hostname]$ cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
HWADDR="00:21:70:10:7E:CD"
NM_CONTROLLED="no"
ONBOOT="yes"
BOOTPROTO=static
# BOOTPROTO=dhcp
IPADDR=10.16.1.106
NETMASK=255.255.255.0
#
#   the GATEWAY is sometimes in: /etc/sysconfig/network
GATEWAY=10.16.1.1

此外,通用项目如主机名称及 DNS 服务器可选择性地放置在:

[username@hostname]$ cat /etc/sysconfig/network
HOSTNAME=acme.example.com
DNS1=10.16.1.112
DNS2=8.8.8.8
## DNS2=76.242.0.28
SEARCH=example.com

这些信息是「选择性」的,因为一台 DHCP 服务器能派发这些数值。当一个良好部署的 DNS 环境存在时,initscripts 能够从 PTR 等记录找出主机名称等信息,但有些用户需要以人手管理这些细节。要取得更多信息,你可用以下方式列出整全的 initscripts 文档:

rpm -qd initscripts 

不论该环境是否安装了 man 阅读说明手册的组件及所依赖的组件。

5. 我如何停用 IPv6?

上游雇员 Daniel Walsh 推荐不要停用 ipv6 模块,因为这样会导致 SELinux 及其它组件出现问题。你可改而在 /etc/sysctl.conf 加入:

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

要在运作中的系统停用它:

echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6
echo 1 > /proc/sys/net/ipv6/conf/default/disable_ipv6

sysctl -w net.ipv6.conf.all.disable_ipv6=1
sysctl -w net.ipv6.conf.default.disable_ipv6=1

附加备注 #1:要是你在停用 IPv6 的系统上转接 X 时遇到问题,请编辑 /etc/ssh/sshd_config 及作出以下一组改动:

(1) 更改这一行

#AddressFamily any

AddressFamily inet

(inet 指定 ipv4;inet6 指定 ipv6)

或者

(2) 删除这行行首的井号(#)

#ListenAddress 0.0.0.0

然后重新引导 ssh。

附加备注 #2:要是你在停用 IPv6 的系统上引导 postfix 时遇到问题,你可选择

(1) 编辑 /etc/postfix/main.cf 并备注掉 localhost 部份的设置及采用 ipv4 回路。

#inet_interfaces = localhost
inet_interfaces = 127.0.0.1

(2) 从 /etc/hosts 取掉 ipv6 的 localhost。

附加备注 #3 :如要停用 RPCBIND ipv6(rpcbind、rpc.mountd、prc.statd),请在 /etc/netconfig 备注掉 udp6 及 tcp6 行:

udp        tpi_clts      v     inet     udp     -       -
tcp        tpi_cots_ord  v     inet     tcp     -       -
#udp6       tpi_clts      v     inet6    udp     -       -
#tcp6       tpi_cots_ord  v     inet6    tcp     -       -
rawip      tpi_raw       -     inet      -      -       -
local      tpi_cots_ord  -     loopback  -      -       -
unix       tpi_cots_ord  -     loopback  -      -       -

6. 我可以从哪里下载 32 位元版本?

你可于 http://mirror.centos.org/altarch/7/isos/i386/ 下载 32 位元的 CentOS 7 发行版本。

7. 你对 ifconfig/netstat 做了甚手脚?

ifconfig 及 netstat 工具程序在 CentOS 5 及 6 的应用手册内被置标为降级已接近十年,而 Redhat 决定在 CentOS 7 不会缺省安装 net-tools 组件。其中一个转换的原因就是 ifconfig 不会显示界面卡所拥有的全部 IP 位置 —— 请改用 ip 指令。取而代之的工具是 ss 和 ip。假如你真的、真的很需要 ifconfig 和 netstat,你可执行 yum install net-tools。

Translation of revision 21

zh/FAQ/CentOS7 (last edited 2019-12-13 20:56:08 by TimothyLee)