当前位置: 主页 > Linux安装教程 > 常见问题 >

怎么删除禁用RHEL/CentOS 7上不需要的服务

时间:2016-03-09 22:41来源:未知 作者:在下不才 举报 点击:
技术交流:官网QQ群①:347309696

RHEL/CentOS 7最低的安装版本都是默认安装了许多服务的,比如 邮件转移代理daemon, Avahi mdns daemon (multicast Domain Name System) Chrony 服务

Disable Services in CentOS 7

Remove Services in CentOS 7

不过也遇到了新的问题.因为有的服务感觉我们是不需要的,所以我们获得会禁用/启用一些服务.

要求

  1. CentOS 7 最低安装版
  2. RHEL 7最低安装版

如果你想把最新安装的RHEL/CentOS 7 加入到主机去, 也就是说一个你不需要执行Postifx MTA daemon的比如运行一个ApacheNginx网站,或者提供DNS, DHCP, PXE boot, FTP server网络服务器, 那么就要安装这些没必要服务,甚至要运行起来.

对外部来说,一个小的安装服务器运行后可能需要ssh进程,方便外部管理.

禁用/删除Postfix MTA, Avahi和Chrony服务

1.  安装玩系统后,root登录或者其他非root用户登录切换更新系统,保证你系统的资源是最新的.

# yum upgrade
Upgrade CentOS 7

Upgrade System

2.  接下里就是使用yum安装一些必要的东西,比如net-tools (这个软件包比较的旧但的确是一个很好的ifconfig命令), nano文本编辑, wget  curl, lsof (列出打开的文件)  bash-completion, 需要执行

# yum install nano bash-completion net-tools wget curl lsof
Install System Utilities in CentOS

Install System Utilities

3.  现在就可以开始禁用和删除预安装的不想要的服务.首先列出你已经安装或者正在运行的服务,执行netstat命令反向TCP, UDP和监听socket断开.

# netstat -tulpn  	## To output numerical service sockets
# netstat -tulp      	## To output literal service sockets
List Enabled Services

List Enabled Services

4.  看到了吧,Postfix是开启的,然后监听的是本地端口25, Avahi daemon绑定到了所有的网络接口,Chronyd服务绑定到了本地和所有的不同端口网络接口. 通过下面的命令来删除Postfix MTA 服务.

# systemctl stop postfix
# yum remove postfix
Remove Postfix Service in CentOS

Remove Postfix Service

5.  接下来删除Chronyd服务,我们用NTP服务替换掉.

# systemctl stop chronyd
# yum remove chrony
Remove Chronyd Service in CentOS

Remove Chronyd Service

6. 接下来删除Avahi daemon守护进程. RHEL/CentOS 7的Avahi daemon越来依靠网络管理服务了. 把Avahi daemon删除之后,可以然系统不会链接任何网络.

注意这步,如果你想要自动配置网络或者你需要通过nmtui网编辑网络接口,那么你需要停止和禁用Avahi 进程才能全部删除.

如果你还是想完全删除这个服务的话,你必须手动的编辑网络配置文件 /etc/sysconfig/network-scripts/ifcfg-interface_name,然后启动的启用网络服务.

删除Avahi mdns daemon的时候可能会遇到些问题.  注意:如果你ssh登录的情况下别删除Avahi daemon .

# systemctl stop avahi-daemon.socket avahi-daemon.service
# systemctl disable avahi-daemon.socket avahi-daemon.service
--------- 如果你不想删除的话到这里就别执行了 --------- 

# yum remove avahi-autoipd avahi-libs avahi
Remove Avahi Daemon in CentOS

Remove Avahi Daemon

7.  这步只有在你真想删除Avahi daemon服务和你断开网络连接并且你需要手动重新配置网络接口卡的时候.

想使用IPv6和静态IP编辑你的NIC, 进入 /etc/sysconfig/network-scripts/ , 打开NIC 接口文件爱你 (一般来说第一张卡名是ifcfg-eno1677776 默认网络管理器就配置好了的) ,如果你网络接口还没配置的话就参考下面的向导.

IPV6INIT=no
IPV6_AUTOCONF=yes
BOOTPROTO=none
DEVICE=eno16777736
ONBOOT=yes
UUID=c3f0dc21-d2eb-48eb-aadf-10a520b13df0
TYPE=Ethernet
#DEFROUTE=no
IPV4_FAILURE_FATAL=no
IPV6_DEFROUTE=no
IPV6_FAILURE_FATAL=no
NAME="System eno16777736"
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
HWADDR=00:0C:29:E2:06:E9
                IPADDR=192.168.1.25
                NETMASK=255.255.255.0
                GATEWAY=192.168.1.1
                DNS1=192.168.1.1
                DNS2=8.8.8.8
Configure Network Interface in CentOS

Configure Network Interface

一些重要的设置说明:

  1. BOOTPROTO – 设置为空或者静态IP – 适合配置静态IP.
  2. ONBOOT – 设置为yes – 重启后启动接口.
  3. DEFROUTE – 使用 #可以注视或者全部删除也行 – 不要使用默认配置 (如果你使用默认的,那你需要给所有网络接口添加一个 “DEFROUTE: no”).

8.  如果你的机器配置有自动分配IP的DHCP服务器的话, 使用下面的读来配置网络接口.

IPV6INIT=no
IPV6_AUTOCONF=yes
BOOTPROTO=dhcp
DEVICE=eno16777736
ONBOOT=yes
UUID=c3f0dc21-d2eb-48eb-aadf-10a520b13df0
TYPE=Ethernet
##DEFROUTE=no
IPV4_FAILURE_FATAL=no
IPV6_DEFROUTE=no
IPV6_FAILURE_FATAL=no
NAME="System eno16777736"
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
HWADDR=00:0C:29:E2:06:E9
Configure DHCP Interface

Configure DHCP Interface

跟配置静态IP地址一样,假设BOOTPROTO设置到dhcp,DEFROUTE是注视或者删除了设备并需要重启才行,如果你没有IPv6,你阿九删除或者注视所有含有IPV6的配置.

9. 为了让新的接口配置生效,你需要重启电脑或者网络服务,重启之后使用ifconfig或者ip命令来查看你设置的网络是否生效.

# service network restart	## Use this command before systemctl
# chkconfig network on
# systemctl restart network
# ifconfig
# ping domain.tld
Confirm Network Settings

Confirm Network Settings

10.  最后确保你使用了hostnamectl系列命令给系统设置了hosetname名字,查看你的hostname配置使用下面的命令.

# hostnamectl set-hostname FQDN_system_name
# hostnamectl status
# hostname
# hostname -s   	## Short name
# hostname -f   	## FQDN name
Setup System Hostname in CentOS 7

Setup System Hostname

11. 好了,最后使用一下netstat来看看系统允许的是那个网络.

# netstat -tulpn
# netstat -tulp
Verify Running Services

Verify Running Services

12. 处理SSH服务外,如果你的网络使用的是DHCP来拉去静态IP配置,那么需要运行一个DHCP客户端,然后启用UDP端口.

# netstat -tulpn
Verify DHCP Service

Verify DHCP Service

13.  另外可以选的,你也可以使用ofSockets Statistics命令来打印出正在运行的socket网络.

# ss -tulpn 
ss Command to Check Network

ss Command to Check Network

14.  重启电脑,执行systemd-analize来检测你的系统boot-time是否正常,同时,使用 freeDisk Free 命令可以用来显示RAM和HDD统计情况,top命令可以来查看系统资源使用情况.

# free -h
# df -h
# top 
Check System Boot Time in Linux

Check System Boot Time

Check Memory and Disk Usage

Check Memory and Disk Usage

推荐内容