《构建高可用Linux服务器 第3版》—— 2.3 网络配置时容易发生的错误描述与处理方法

简介:

本节书摘来自华章出版社《构建高可用Linux服务器 第3版》一 书中的第2章,第2.3节,作者:余洪春 ,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.3 网络配置时容易发生的错误描述与处理方法

系统成功安装后,下一步就要正确配置服务器的网络情况了。在此过程中,如果对Linux系统不是太熟悉,也很容易犯一些错误,比如说网卡配置有问题导致无法分配IP,DNS配置失误等。

2.3.1 安装CentOS 5.8时忘了激活网卡

如果刚开始安装CentOS 5.8时,忘记勾选“Active on Boot”,最直接的后果就是导致网卡IP分配不成功,下面是正确的步骤(见图2-9)。

结果我们进入系统后才发现,IP地址没有正确分配,不过也不要着急,我们可以直接配置eth0网卡文件,即/etc/sysconfig/network-scripts/ifcfg-eth0,文件内容如下:

DEVICE=eth0

BOOTPROTO=none

HWADDR=00:14:22:1B:70:FA

ONBOOT=yes #这项记得选择yes,表示系统启动时就引导网卡

NETMASK=255.255.255.192

IPADDR=203.93.236.145

GATEWAY=203.93.236.129

TYPE=Ethernet

screenshot

我们将ONBOOT=no中的no改成yes,然后重启网卡服务即可以解决这个问题,命令如下:

service network restart

2.3.2 CentOS 5.8网卡文件备份的正确方法

许多朋友备份eth0网卡文件时喜欢跟备份其他文件一样,用命令cp/etc/sysconfig/network-scripts/ifcfg-eth0/etc/sysconfig/network-scripts/ifcfg-eth0.bak,然后用service network start来启动机器的网卡。这其实会带来一个问题,系统也会启动以.bak后缀结尾的网卡文件,请大家注意CentOS 5.8的/etc/init.d/network脚本中下面这一段内容:

# find all the interfaces besides loopback.

# ignore aliases, alternative configurations, and editor backup files

interfaces=$(ls ifcfg*| \

      LANG=C sed -e "$__sed_discard_ignored_files" \

            -e '/\(ifcfg-lo\|:\|ifcfg-.*-range\)/d' \

            -e '/ifcfg-[A-Za-z0-9\._-]\+$/ { s/^ifcfg-//g;s/[0-9]/ &/}' | \

      LANG=C sort -k 1,1 -k 2n | \

      LANG=C sed 's/ //')

rc=0```
系统脚本会将此目录下以ifcfg开头的所有网卡均启动,大家看到这里应该会明白,此时的备份方式其实是有问题的,如果用CentOS 5.8下自带的工具setup进行配置,从图2-10中可以明显看出,系统将会把bak文件也当做一块网卡,所以正确的备份应该重新定义一个不以ifcfg开头的名字。


![screenshot](https://yqfile.alicdn.com/001a02ab38cc943b6084f73713fceef2f6db4a08.png)





####2.3.3 在CentOS 5.8下如何正确配置网关

由于现在的服务器都安装了防火墙及SNAT,所以网关的配置正确与否就很重要了,我们在正确配置网关后还应该用命令traceroute来检测其是否生效,打开/etc/sysconfig/network-scripts/ifcfg-eth0网卡配置文件,内容如下所示:


DEVICE=eth0

BOOTPROTO=static

HWADDR=00:22:15:c9:3c:0f

IPV6INIT=yes

IPV6_AUTOCONF=yes

ONBOOT=yes

NETMASK=255.255.255.0

IPADDR=192.168.4.45

GATEWAY=192.168.4.3

TYPE=Ethernet
首先,我们用命令检测其是否生效,“netstat -rn”或“route -n”命令如下所示:


Kernel IP routing table

Destination   Gateway     Genmask     Flags  MSS Window irtt Iface

192.168.4.0   0.0.0.0     255.255.255.0  U     0 0     0 eth0

169.254.0.0   0.0.0.0     255.255.0.0   U     0 0     0 eth0

0.0.0.0     192.168.4.3   0.0.0.0     UG    0 0     0 eth0
大家注意带有UG标识的这一行,它表示192.168.4.3为机器的网关地址,在CentOS 5.8系统中还可以用命令traceroute查看外网IP地址来判断最近的下一跳地址是否为你的默认网关,此命令也适用于FreeBSD 8.1,命令如下所示:


traceroute www.163.com
命令显示结果如下:


traceroute to www.163.com(210.51.213.180), 30 hops max, 40 byte packets

 1 192.168.4.3(192.168.4.3) 0.584 ms 0.638 ms 0.703 ms

 2 220.249.72.129(220.249.72.129) 4.099 ms 7.870 ms 11.611 ms

 3 218.104.109.77(218.104.109.77) 6.787 ms 6.792 ms 6.933 ms

 4 218.104.110.193(218.104.110.193) 3.158 ms 3.159 ms 3.148 ms

 5 218.106.127.82(218.106.127.82) 3.804 ms 3.800 ms 3.868 ms

 6 218.104.110.82(218.104.110.82) 3.841 ms 3.202 ms 3.551 ms

 7 220.249.83.130(220.249.83.130) 3.614 ms 3.455 ms 3.514 ms

 8 210.51.213.180(210.51.213.180) 2.721 ms 3.007 ms 3.487 ms
其中,第一行即为系统现在默认的网关地址。

####2.3.4 防火墙初始化的注意事项

我在配置电信机房中某一台服务器的iptables时,不小心设置了某一项错误参数(现在回忆应该是iptables-P OUTPUT DROP),结果锁定了SSH会话,导致所有同事都连不上这台服务器了,郁闷之余想到了解决办法,特推荐给大家,这对于生产环境的服务器来说还是极其有用的,建议大家参考。

我们其实可以配置一个计划任务crontab,每5分钟运行一次,如下所示:


*/5 * * * * root /bin/bash /etc/init.d/iptables stop
相关文章
|
4月前
|
机器学习/深度学习 算法 调度
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
438 0
|
3月前
|
机器学习/深度学习 数据采集 边缘计算
基于灰色神经网络的预测方法
基于灰色神经网络的预测方法
201 0
|
4月前
|
安全 Linux 网络安全
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
144 0
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
|
5月前
|
运维 Linux 开发者
Linux系统中使用Python的ping3库进行网络连通性测试
以上步骤展示了如何利用 Python 的 `ping3` 库来检测网络连通性,并且提供了基本错误处理方法以确保程序能够优雅地处理各种意外情形。通过简洁明快、易读易懂、实操性强等特点使得该方法非常适合开发者或系统管理员快速集成至自动化工具链之内进行日常运维任务之需求满足。
351 18
|
5月前
|
网络协议 关系型数据库 Linux
【App Service Linux】在Linux App Service中安装 tcpdump 并抓取网络包
在App Service for Linux环境中,无法像Windows一样直接使用网络排查工具抓包。本文介绍了如何通过TCPDUMP在Linux环境下抓取网络包,包括SSH进入容器、安装tcpdump、执行抓包命令及下载分析文件的完整操作步骤。
275 5
|
5月前
|
弹性计算 安全 Linux
阿里云服务器ECS安装宝塔Linux面板、安装网站(新手图文教程)
本教程详解如何在阿里云服务器上安装宝塔Linux面板,涵盖ECS服务器手动安装步骤,包括系统准备、远程连接、安装命令执行、端口开放及LNMP环境部署,手把手引导用户快速搭建网站环境。
|
4月前
|
算法 Python
【EI复现】考虑网络动态重构的分布式电源选址定容优化方法(Matlab代码实现)
【EI复现】考虑网络动态重构的分布式电源选址定容优化方法(Matlab代码实现)
111 0
|
5月前
|
机器学习/深度学习 数据采集 TensorFlow
基于CNN-GRU-Attention混合神经网络的负荷预测方法(Python代码实现)
基于CNN-GRU-Attention混合神经网络的负荷预测方法(Python代码实现)
245 0
|
8月前
|
监控 Linux 应用服务中间件
Linux多节点多硬盘部署MinIO:分布式MinIO集群部署指南搭建高可用架构实践
通过以上步骤,已成功基于已有的 MinIO 服务,扩展为一个 MinIO 集群。该集群具有高可用性和容错性,适合生产环境使用。如果有任何问题,请检查日志或参考MinIO 官方文档。作者联系方式vx:2743642415。
2890 57
|
6月前
|
Web App开发 网络协议 Linux
【Linux】网络基础
TCP/IP五层模型是网络通信的基础框架,将复杂的数据传输过程分为物理层、数据链路层、网络层、传输层和应用层,每层各司其职,协同完成远程通信。该模型确保了不同设备和网络之间的互联互通,是现代互联网运行的核心机制。
476 5