有关 CentOS-7 的问题
Contents
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。其它设备名称亦有可能出现,例如:em1、p3p1 等。不论你喜欢与否,这个为界面命名的改动是 Linux 的未来趋势。它已包含在上游的「测试发行版本」作为预览。此外请参阅:Dell 的介绍及内部员工的网志。
3. 要是我想撤消至旧的命名呢?
以下是所需的步骤:
- 在 grub 加入 net.ifnames=0 and biosdevname=0 作为内核参数
- 在 /etc/sysconfig/network-scripts/ 内把你的网络卡配置文件换名为 ifcfg-ethX
- 假若你拥有多个界面并希望控制每个设备的名称,不想由内核作主,你似乎有必要通过 /etc/udev/rules.d/60-net.rules 盖过 /usr/lib/udev/rules.d/60-net.rules。
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