《构建高可用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
相关文章
|
8月前
|
人工智能 JavaScript API
零基础构建MCP服务器:TypeScript/Python双语言实战指南
作为一名深耕技术领域多年的博主摘星,我深刻感受到了MCP(Model Context Protocol)协议在AI生态系统中的革命性意义。MCP作为Anthropic推出的开放标准,正在重新定义AI应用与外部系统的交互方式,它不仅解决了传统API集成的复杂性问题,更为开发者提供了一个统一、安全、高效的连接框架。在过去几个月的实践中,我发现许多开发者对MCP的概念理解透彻,但在实际动手构建MCP服务器时却遇到了各种技术壁垒。从环境配置的细节问题到SDK API的深度理解,从第一个Hello World程序的调试到生产环境的部署优化,每一个环节都可能成为初学者的绊脚石。因此,我决定撰写这篇全面的实
1875 67
零基础构建MCP服务器:TypeScript/Python双语言实战指南
|
6月前
|
机器学习/深度学习 算法 调度
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
492 0
|
6月前
|
安全 Linux 网络安全
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
185 0
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
|
5月前
|
机器学习/深度学习 数据采集 边缘计算
基于灰色神经网络的预测方法
基于灰色神经网络的预测方法
345 0
|
7月前
|
运维 Linux 开发者
Linux系统中使用Python的ping3库进行网络连通性测试
以上步骤展示了如何利用 Python 的 `ping3` 库来检测网络连通性,并且提供了基本错误处理方法以确保程序能够优雅地处理各种意外情形。通过简洁明快、易读易懂、实操性强等特点使得该方法非常适合开发者或系统管理员快速集成至自动化工具链之内进行日常运维任务之需求满足。
476 18
|
7月前
|
网络协议 关系型数据库 Linux
【App Service Linux】在Linux App Service中安装 tcpdump 并抓取网络包
在App Service for Linux环境中,无法像Windows一样直接使用网络排查工具抓包。本文介绍了如何通过TCPDUMP在Linux环境下抓取网络包,包括SSH进入容器、安装tcpdump、执行抓包命令及下载分析文件的完整操作步骤。
366 5
|
7月前
|
弹性计算 安全 Linux
阿里云服务器ECS安装宝塔Linux面板、安装网站(新手图文教程)
本教程详解如何在阿里云服务器上安装宝塔Linux面板,涵盖ECS服务器手动安装步骤,包括系统准备、远程连接、安装命令执行、端口开放及LNMP环境部署,手把手引导用户快速搭建网站环境。
|
7月前
|
人工智能 自然语言处理 安全
Python构建MCP服务器:从工具封装到AI集成的全流程实践
MCP协议为AI提供标准化工具调用接口,助力模型高效操作现实世界。
1285 1
|
6月前
|
算法 Python
【EI复现】考虑网络动态重构的分布式电源选址定容优化方法(Matlab代码实现)
【EI复现】考虑网络动态重构的分布式电源选址定容优化方法(Matlab代码实现)
224 0
|
7月前
|
机器学习/深度学习 数据采集 TensorFlow
基于CNN-GRU-Attention混合神经网络的负荷预测方法(Python代码实现)
基于CNN-GRU-Attention混合神经网络的负荷预测方法(Python代码实现)
391 0

热门文章

最新文章