RedHat6.X系统管理

网络应用配置


主机禁ping

Ping命令在网络检测中是最常用的一个命令,所用的就是ICMP协议,不过为了保护主机,通常会禁用ICMP协议,忽略ICMP数据包,再使用ping方法对这台主机检测,这时没有任何反应。

禁用ICMP协议

若要禁用ICMP协议,可以直接输入参数或编辑配置文件,配置完成后无需重新启动。

1
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

再使用其他主机去ping该主机,会出现请求超时信息。

C:\Users\-Koen->ping 192.168.220.135

正在 Ping 192.168.220.135 具有 32 字节的数据:
请求超时。
请求超时。
请求超时。
请求超时。

192.168.220.135 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 0,丢失 = 4 (100% 丢失),

启用ICMP协议

若要启用ICMP协议,可以直接输入参数或编辑配置文件,配置完成后无需重新启动。

1
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all

再使用其他主机去ping该主机,就会有回复的消息。

C:\Users\-Koen->ping 192.168.220.135

正在 Ping 192.168.220.135 具有 32 字节的
来自 192.168.220.135 的回复: 字节=32 时间
来自 192.168.220.135 的回复: 字节=32 时间
来自 192.168.220.135 的回复: 字节=32 时间
来自 192.168.220.135 的回复: 字节=32 时间

192.168.220.135 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失
往返行程的估计时间(以毫秒为单位):
    最短 = 0ms,最长 = 0ms,平均 = 0ms

双网卡带宽绑定

通常想要实现带宽绑定,主要是为了实现设备容错、负载均衡、端口绑定。一台服务器都会有两块网卡,不过一般只会使用一块网卡,此时将服务器做带宽绑定是有必要的,以免浪费另一块网卡,也可以减轻一块网卡工作的负载。

检查网络配置可以看到有两块网卡eth0eth1,现在要将两块网卡带宽绑定,必须配置这两块网卡

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# ifconfig 
eth0 Link encap:Ethernet HWaddr 00:0C:29:29:D8:FA
inet addr:192.168.220.133 Bcast:192.168.220.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe29:d8fa/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:656 errors:0 dropped:0 overruns:0 frame:0
TX packets:413 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:58218 (56.8 KiB) TX bytes:56097 (54.7 KiB)

eth1 Link encap:Ethernet HWaddr 00:0C:29:29:D8:04
inet addr:192.168.220.134 Bcast:192.168.220.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe29:d804/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:39 errors:0 dropped:0 overruns:0 frame:0
TX packets:13 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4508 (4.4 KiB) TX bytes:1662 (1.6 KiB)
Interrupt:16 Base address:0x2000

先进入network-scripts目录,编辑的第一块网卡eth0的配置文件,内容如以下所示,编辑完后保存文档。

1
2
3
4
5
6
7
8
# cd /etc/sysconfig/network-scripts/
# vim ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
MASTER=bond0 //带宽绑定后的网卡配置,bond0为绑定带宽的网卡名称
SLAVE=yes

再来编辑第二块网卡eht1的配置文件,增加内容与eth0配置文件一样,编辑完后保存文档。

1
2
3
4
5
6
7
# vim ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
MASTER=bond0 //带宽绑定后的网卡配置,bond0为绑定带宽的网卡名称
SLAVE=yes

接下来创建一个新的配置文件ifcfg-bond0,内容如下,第5、6、7、8行请根据环境进行IP配置,编辑完后保存文档。

1
2
3
4
5
6
7
8
# vim ifcfg-bond0
DEVICE=bond0
ONBOOT=yes
BOOTPROTO=none
IPADDR=192.168.220.135
NETMASK=255.255.255.0
GATEWAY=192.168.220.2
DNS1=192.168.220.2

编辑modprobe.conf,增加两行配置信息,miimon=100为每100毫秒(0.1秒)检查网络一次,可根据个人需求进行设置,这代表网络如果断线,0.1秒就会恢复连接,mode为网卡工作模式,共有7种,通常设置0、1、6这几种。

1
2
3
# vim /etc/modprobe.conf
alias bond0 bonding
options bond0 miimon=100 mode=1

Mode模式的功能如下表所示:

mode 功能 功能说明
0 balance-rr 负载均衡模式需有switch配置(trunk)支持才能发挥实际效果,具有容错功能,其中一块网卡失效仍可持续工作
1 active-backup 同一时间只有一块网卡工作,Active Slave其中一块网卡断线时自动启用另一块网卡,不需switch支持
2 balance-xor 具容错作用
3 broadcast 所有网卡一起收发网络数据包,具容错功能,其中一块网络卡断线仍可持续工作
4 802.3ad 无实际功能,不建议使用
5 balance-tlb 发送数据包自动负载均衡,接收数据包由Current Active Slave负责,具容错功能,其中一块网络卡失效仍可持续工作,不需switch支持及配置
6 balance-alb 发送及接收皆自动负载均衡,具容错功能,其中一块网络卡断线时仍可持续工作,网络卡驱动程序需支持,setting hardware address功能,不需switch支持及配置

全部配置完成后,重新启动网卡,让bond0重新启动。

1
/etc/init.d/network restart

查看网卡配置信息,可以看到只有bond0有配置IP地址,不过其他两块网卡仍正常工作。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# ifconfig 
bond0 Link encap:Ethernet HWaddr 00:0C:29:29:D8:FA
inet addr:192.168.220.135 Bcast:192.168.220.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe29:d8fa/64 Scope:Link
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
RX packets:3762 errors:0 dropped:0 overruns:0 frame:0
TX packets:2393 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:323472 (315.8 KiB) TX bytes:343087 (335.0 KiB)

eth0 Link encap:Ethernet HWaddr 00:0C:29:29:D8:FA
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:3667 errors:0 dropped:0 overruns:0 frame:0
TX packets:2380 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:313450 (306.1 KiB) TX bytes:341425 (333.4 KiB)

eth1 Link encap:Ethernet HWaddr 00:0C:29:29:D8:FA
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:95 errors:0 dropped:0 overruns:0 frame:0
TX packets:13 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:10022 (9.7 KiB) TX bytes:1662 (1.6 KiB)
Interrupt:16 Base address:0x2000

查看bonding状态,可以看到bond0的配置信息,MII Status均为up状态则表示绑定成功。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# cat /proc/net/bonding/bond0 
Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:29:d8:fa
Slave queue ID: 0

Slave Interface: eth1
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 00:0c:29:29:d8:04
Slave queue ID: 0

禁用IPv6支持提高网络效率

IPv6协议是下一代IP地址的通信协议,目前所使用的IPv4协议,因IP地址随互联网用户的快速增长,很快会面临用完的困境,所以IPv6协议势必成为未来的趋势。而绝大对数的Linux操作系统都支持IPv6协议,甚至很多主流的Linux操作系统默认安装后可直接启用。可以根据实际应用禁用IPv6支持。检查网络配置,如果有inet6 addr相关信息,表示IPv6协议是开启状态。

1
2
3
4
5
6
7
8
9
# ifconfig 
eth0 Link encap:Ethernet HWaddr 00:0C:29:29:D8:FA
inet addr:192.168.220.135 Bcast:192.168.220.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe29:d8fa/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:285 errors:0 dropped:0 overruns:0 frame:0
TX packets:207 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:26187 (25.5 KiB) TX bytes:26759 (26.1 KiB)

禁用IPv6支持的方法很简单,即在disable-ipv6.conf配置文件中增加install ipv6 /bin/true,然后重新启动,配置才会生效。

1
echo "install ipv6 /bin/true" > /etc/modprobe.d/disable-ipv6.conf

重新启动后,再次检查网卡信息,则不会再出现inet6 addr,代表IPv6已停用。

1
2
3
4
5
6
7
8
# ifconfig 
eth0 Link encap:Ethernet HWaddr 00:0C:29:29:D8:FA
inet addr:192.168.220.135 Bcast:192.168.220.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:35 errors:0 dropped:0 overruns:0 frame:0
TX packets:39 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4522 (4.4 KiB) TX bytes:4939 (4.8 KiB)

有关闭就有开启,不然要使用IPv6时,却不知如何开启就麻烦了。要启用IPv6协议,只要删除配置文件中的install ipv6 /bin/true或删除disable-ipv6.conf文件然后重启网络服务即可。

1
rm -rf /etc/modprobe.d/disable-ipv6.conf

系统管理技巧


登录前后显示信息

登录前显示的信息除了是一句标语,也可以达到提醒的效果,类似备忘录的功能。

RedHat6.X操作系统登录前的信息,默认只有操作系统版本号及内核版本号,接下来就是输入账号。

Red Hat Enterprise Linux Server release 6.5 (Santiago)
Kernel 2.6.32-431.el6.x86_64 on an x86_64
bogon login:

如果需要显示信息,需编辑/etc/issue配置文件,在最后加上Welcome,保存后退出。

1
2
3
4
# vim /etc/issue
Red Hat Enterprise Linux Server release 6.5 (Santiago)
Kernel \r on an \m
Welcome //登录前显示的文字信息

若要测试刚才配置是否会生效,需要重新登录,输入账号和密码前就会有登录前配置的信息,如果出现配置的信息,表示配置成功。

Red Hat Enterprise Linux Server release 6.5 (Santiago)
Kernel 2.6.32-431.el6.x86_64 on an x86_64
Welcome
bogon login:

对于登录后显示的信息,需要编辑/etc/motd,输入所要显示的欢迎信息,保存后退出。

1
2
# vim /etc/motd
check system

测试登录后是否会显示文字信息,如果出现所配置的信息,表示配置成功。

配置Choose a Tool工具

RedHat6.X操作系统内有一个很好用的工具,那就是输入setup命令就会出现Choose a Tool工具,可以配置防火墙、网络、系统服务等。

RedHat6.X操作系统如果是最小化安装就无法使用该工具,因为最小化安装几乎什么软件都不装,所以要使用该工具都要自行安装。

1
2
# setup
-bash: setup: command not found

可以使用yum在线安装方法安装以下软件setuptool、ntsysv、system-config-firewall-tui、system-config-network-tui。

1
yum install setuptool ntsysv system-config-firewall-tui system-config-network-tui -y

成功安装Choos a Tool工具后,再次输入setup检查是否可以使用。

自动调整错误路径

通常输入路径时,会打错一两个字,就会出现错误信息,RedHat提供了一个小技巧,不过这个技巧不是万能的,只限于一两个字母路径打错,系统就会自动调整,其实系统也是根据输入的路径与相应的目录比对,然后修正,例如,要到etc目录却打成ect,就会出现找不到目录的情况

1
2
# cd /ect
-bash: cd: /ect: No such file or directory

修改.bashrc配置文件

在用户目录下修改.bashrc配偶文件,在最后一行添加shopt -s cdspell,修改完成后保存退出,此配置必须重新登录才会生效。

1
2
3
4
5
6
7
8
9
10
11
12
# vim ~/.bashrc
......
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi

shopt -s cdspell

说明
如果要其他用户也有这样的功能,则必须编辑/etc/bashrc

自动注销登录账户

系统使用完后,正确的习惯是要退出或锁定,Windows及Linux操作系统都是如此,Windows是锁定账号,Linux必须输入命令才会退出,不过这个操作很多使用者都会忘记,所以必须设置系统空闲时间过长,就会自动退出。

编辑/etc/profile,设置系统在空闲时间超过30秒后,自动退出,保存设置后,此设置在下一次登录时才会生效,无需重新启动。

1
2
3
# vim /etc/profile
...
export TMOUT=30 //增加此行

查询Linux内核与发行版信息

如何查询Linux内核信息及发行版信息是很重要的,这是因为软件安装时要区分i386的32位平台和x86_64的64位平台,所以一定要掌握相关信息,其实不只是单纯要知道操作系统版本,还有很多信息是有意义。

若要查询Linux内核信息,利用uname命令可以看到最完整的内核信息。

1
2
# uname -a
Linux bogon 2.6.32-431.el6.x86_64 #1 SMP Sun Nov 10 22:19:54 EST 2013 x86_64 x86_64 x86_64 GNU/Linux

参数不一样可以查询到的信息就不一样,可按需求查询。

参数 说明
-a 输出所有信息
-s 显示内核名称(Linux)
-n 显示完整主机名称(bogon)
-r 显示内核版本(2.6.32-431.el6.x86_64)
-v 显示内核发行日期(#1 SMP Sun Nov 10 22:19:54 EST 2013)
-m 显示机器硬件类型(x86_64)
-p 显示处理器类型(x86_64)
-i 显示硬件平台类型(x86_64)
-o 显示操作系统(GNU/Linux)

查询操作系统应用平台(32位或64位)

查询Linux操作系统应用平台是非常重要的,以免在使用rpm方式安装软件时,才发现软件版本不符合系统应用平台,大多数人都知道使用uname命令去查询,但是看起来眼花缭乱,如何使用最简单的方式查询呢?以下示例能够识别32位或64位的操作系统。

在应用平台使用uname命令查询,再使用getconf命令查询,进行对比看是否一样。

1
2
3
4
# uname -a
Linux bogon 2.6.32-431.el6.x86_64 #1 SMP Sun Nov 10 22:19:54 EST 2013 x86_64 x86_64 x86_64 GNU/Linux
# getconf LONG_BIT
64

设置服务默认启动或关闭

因为很多系统服务默认系统启动时不自动启动,每次开机后都要使用的服务,必须设置为默认启动,有些没有用到的服务则可以关闭,设置服务默认启动或关闭有图形和命令两种方式,建议使用命令方式去设置,有些服务是无法在图形工具中进行设置的。

图形界面设置

输入ntsysv命令启动Services选项,使用tab及空格键进行选择和修改。

命令界面设置

一般来说最常见的设置服务默认启动或默认关闭的方法是命令方式,常用命令是chkconfig,该命令主要是检查、设定系统各服务的运行级别和运行状态。

1
2
3
4
5
6
# chkconfig httpd on  # 将httpd服务设为默认启动
# chkconfig httpd --list # 查看httpd的level状态
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
# chkconfig httpd off # 将httpd服务设为默认关闭
# chkconfig httpd --list # 查看httpd的level状态
httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off

以上的方式较常见,不过在特殊环境下会设置不同的level启动。下表示chkconfig命令的完整说明。On表示启动,Off表示关闭。

命令 说明
chkconfig –list 显示所有服务启动情况
chkconfig –add 服务名称 增加指定的服务
chkconfig –del 服务名称 删除指定的服务
chkconfig –level 0~6 服务名称 on/off 设置服务Level启动/关闭

下表为chkconfig命令显示单个服务的运行状态,默认level2、3、4、5为on,其他level为off。

Level 0 1 2 3 4 5 6
on/off off off on on on on off

下表说明每个Level所代表的意义。

Level 说明
0 关机
1 单用户模式
2 多用户命令行模式,没有网络功能
3 多用户命令行模式,有网络功能
4 保留
5 带图形界面的多用户模式
6 重新启动
1
2
3
4
5
6
7
8
# chkconfig httpd --list  # 检查httpd目前level状态
httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
# chkconfig --level 0123456 httpd on # 全部都开启
# chkconfig httpd --list # 检查httpd目前level状态
httpd 0:on 1:on 2:on 3:on 4:on 5:on 6:on
# chkconfig --level 0123456 httpd off # 全部都关闭
# chkconfig httpd --list # 检查httpd目前level状态
httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off

安装图形界面

采用最小化安装的RedHat操作系统默认是没有图形界面,这对于初学者来说是一件比较痛苦的事情。但是,可以通过yum来安装图形界面。

1
yum groupinstall "X Window System" "Desktop" "Desktop Platform" "chinese-support" "fonts" -y

安装完成后,执行init 5或者startx开启图形界面

参考书籍


  • 《CentOS6.X系统管理实战宝典》