CentOS 6下正确配置DNS的方法

本来配置DNS是比较简单的东西,没想专门写一篇文章的。但后来我发现这里还是有一个大坑的,很有必要单独拿出来对其进行说明。
我看到网上很多教程都推荐大家通过编辑/etc/resolv.conf这个文件来修改系统的DNS。
但经过实测,用此方法修改DNS,在某些情况下会发生明明编辑了/etc/resolv.conf文件,但重启网络后文件又恢复到之前的状态的情况。
经过一翻搜索之后,发现。原来是因为CentOS 6使用NetworkManager来管理网络,当在/etc/resolv.conf中配置了DNS时,/etc/sysconfig/network-scripts/ifcfg-eth*文件中并没有DNS信息或还是之前的DNS信息,而NetworkManager会用/etc/sysconfig/network-scripts/ifcfg-eth*中的DNS信息来覆盖/etc/resolv.conf中的信息。
正确配置DNS的方法:

vim /etc/sysconfig/network-scripts/ifcfg-eth*(*是什么依据实际情况来定)

按照如下格式添加DNS。

DNS1=
DNS2=
DNS3=
……

例如下图,其中“114.114.114.114”是国内著名的DNS服务,“8.8.8.8”是谷歌的DNS服务,也可以根据自身需求更改为其他DNS地址。

最后重启网络即可。

service network restart

find命令使用exec参数报错:missing argument to “-exec”

这个错误其实是参数格式写错导致的。
例如:

find /root -name file -exec ls -l {}\;

这样写就会报错,修改为以下形式就不会报错了:

find /root -name file -exec ls -l {} \;                //{}和\之间多了一个空格。

看到网上有很多文章说解决这条错误的方法可以是给{}\;加上双引号变为”{}\;”,这个解决方法笔者使用CentOS 6.5亲测无效。

linux卸载无响应的nfs文件系统

问题表现:

如果正在使用的nfs文件系统服务器突然宕掉了,那在客户端执行df命令就会卡死掉,使用umount命令卸载此文件系统会提示设备正忙(device is busy)。

解决方法:

使用umount命令加-l参数卸载失去响应的nfs文件系统。
若不清楚nfs文件系统的挂载位置可以使用nfsstat -m命令查看

sendmail启动缓慢的解决方法

问题表现:
原本配置的好好的sendmail服务,速度飕飕的。直到某一个月黑风高的夜晚,你重启服务会发现关闭的很快,但启动时巨慢无比。
解决方法(不保证百分百有效):
这个问题通常是在更改了主机名的时候产生的,解决办法就是编辑/etc/hosts文件

vim /etc/hosts

在文件末尾添加如下内容:
你的公网ip地址     你的主机名.      你的主机名                //注意第一个主机名后面有一个“.”!!!
例如:

我的公网ip是192.168.162.246      主机名是mail2
保存此文件,然后再重启senmdail试一下,又感受到了以往的速度是不是?

解决yum update意外中断后无法继续更新的问题

问题表现:
在执行yum update更新系统时因卡住、SSH意外断开等原因导致更新被打断后,再次执行更新会抛出错误:

There are unfinished transactions remaining. You might consider running yum-complete-transaction first to finish them.
The program yum-complete-transaction is found in the yum-utils package.

解决方法:
安装安装yum-complete-transaction

yum install -y yum-utils

运行运行yum-complete-transaction

yum-complete-transaction

再次执行更新即可

yum update

CentOS 6下selinux配置文件写错导致进不去系统的解决方法

问题表现:
修改完selinux的配置文件重启后无法进入系统,并抛出以下错误(其他错误也适用本篇文章介绍的解决方法):

解决方法:
重启系统
进入如下界面时按任意键(不要问我任意键是哪个。。。)

按“e”键。

这里选择第二项,按“e”编辑它。

这里按空格接selinux=0(如图),之后按“esc”返回上个界面,按“b”键重新引导即可进入系统。

进入系统后记得将你的配置文件中写错的部分修改过来。

CentOS虚拟机克隆后无法启动网卡的解决方法

问题表现:
装有CentOS系统的虚拟机克隆并启动后使用ifconfig命令查看不到网卡,使用service network restart命令重启网络抛出错误:bringing up interface eth0
解决办法:
1. 修改 /etc/udev/rules.d/70-persistent-net.rules文件,将文件中原来的eth0的网卡的信息删除,并将eth1修改为eth0。
2. 修改 /etc/sysconfig/network-scripts/ifcfg-eth0,删除其中的MAC地址信息和UUID的信息。
修改完成之后,重启虚拟机即可。

win server 2012安装vcenter卡在目录服务不动

这是因为win server 2012少了一个系统文件导致的,可以在win server 2008下提取。
具体路径在:C:\Windows\System32\ocsetup.exe,提取出来放在win server 2012相对应的目录下运行即可,可在vcenter安装卡住的时候运行也可以先运行这个二进制文件再进行安装。
为了方便大家,这里提供一个ocsetup.exe的下载地址:点我下载

linux中root用户无法删除某个文件的解决方法

root用户登录,删除文件:

rm -f  a.txt

删除不了,提示:

rm: cannot remove 'a.txt': Opreation not permitted

查看权限:

ls -l a.txt
-rwxr--r-- a.txt root root

发现root 用户 有执行文件的权限
再使用 lsattr   命令查看权限:

lsattr a.txt
---i------------ a.txt

发现有一个 i 权限,百度查看此权限,发现 I 权限如下:
不能被删除、改名、设定连结、写入或新增数据;
使用   命令撤销 i 权限:

chattr -i a.txt

再查看:

lsattr a.txt
--------------- a.txt

此时再删除:

rm -f  a.txt

删除成功。
本文来源:http://blog.csdn.net/ye1142262478/article/details/51152228

TTL传输中过期

访问目标所需的跃点数超过了发送方主机为转发数据包而设置的 TTL(生存时间)。Ping 发送的 ICMP 回显消息的默认 TTL值是 128。如果这个值不足以将所需的链接数传递到目标,则可以通过使用 ping -i 来增大 TTL,最高可增至 255 个链接(最大值)。如果增大 TTL值未能解决问题,则说明在路由循环(即路由器之间的循环路径)中转发数据包。使用 Tracert 来跟踪路由循环(它在 Tracert 报告中显示为一系列重复的相同 IP 地址)中的一组路由器。接下来,对路由循环中路由器的路由表进行相应的更改,或将此问题告知远程路由器的管理员。

解决vsftpd登录时间过长的问题

新配置完的vsftpd服务器在登录时总会有登录异常缓慢的情况,而登录成功后上传文件速度却很快。
造成这个问题的原因是因为vsftpd默认开启了dns反向解析,当输入ip地址时客户端会尝试查询此ip地址对应的域名,如此除非等到dns查询超时,才可能登录上ftp服务器。
解决的方法自然是关闭vsftpd服务器的dns方向解析选项。
关闭方法:
在配置文件/etc/vsftpd/vsftpd.conf
中加入

reverse_lookup_enable=NO

重启服务后就会发现登录速度快了非常多了~

解决vsftpd中虚拟用户和系统用户不能共存的问题

按照网上的教程设置虚拟用户之后会发现系统账户登录不上ftp,查看日志显示认证失败。由此怀疑问题出在pam上。
百度搜索之后找到问题原因,是因为设置虚拟用户的时候注释掉了pam中关于系统账户认证的配置选项,所以导致系统账户验证失败。
系统用户与虚拟用户共存的正确配置方法:
编辑/etc/pam.d/vsftpd
在原内容前加入

auth sufficient pam_userdb.so db=/etc/vsftpd/db#db=后面接用户数据库文件地址
account sufficient pam_userdb.so db=/etc/vsftpd/db#db=后面接用户数据库文件地址

注意不要注释源文件内容!直接在源文件内容前加入上述内容!
细心一点就会发现上述两段配置内容中将网上设置虚拟用户时原本的required变成了sufficient,同时强调了新增配置内容必须在最前方。
这是因为required在验证了一次之后就不会继续验证下去,而sufficient在验证后还会继续向下验证。
所以这就是为什么新增的配置选项中用sufficient替换了required,因为都使用required注定只能验证一种登录方式。而如果把新增配置内容加到原配置文件后方的话在前面原本的系统用户的required验证后就不会继续向下验证,虚拟用户登录就不能实现了。所以才要把新增配置内容放在最前方,验证完虚拟账户继续验证系统账户,从而实现虚拟账户与本地账户共存。