CentOS中的网络管理

  1. 为网卡设置网络属性:

自动获取: 在主机所在网络中,至少有一台DHCP服务器; 通过DHCP服务器进行地址租凭.

手动配置(静态指定):

a.使用命令:

net-tools家族(ifcfg家族):

ifconfig(ipconfig ------ Windows中)

查看网络接口的配置信息;

配置网络属性;

管理接口状态;

route:

查看路由信息;

配置路由信息(网关,静态路由,静态默认路由);

netstat:

状态及统计数据的查看;

iproute家族:

ip OBJECT

其中OBJECT可以是:

addr: IP地址和掩码的管理

link: 物理接口的管理

route: 路由管理

ss:

状态及统计数据的查看

注意: 以上命令,在任何的Linux发行版中都适用;

nm家族: Network Manager

nmcli: 命令行工具

nmtui: text-window的工具

nm家族只在CentOS7中能够使用,在CentOS6中可以使用一下工具:

system-config-network

system-config-network-cmd

system-config-network-tui

上述三个工具都是setup的子命令; 在CentOS6中可以使用上述命令;

b.修改配置文件

2.网络接口的命名方式:

思科的交换机: FastEthernet0/1,GigabitEthernet0/1

思科的路由器: Ethernet0/0,FastEthernet0/0

Linux的接口命名的方式:

a.传统的命名方式:

以太网: ethX,X从0开始的整数; 如: eth0,eth1,......

PPP网络: PPPoE,PPP over Ethernet

pppx,x从0开始的整数; 如: ppp0,ppp1,......

环回接口: lo,loopback;

在CentOS6及之前的发行版本中使用;

b.可预测的命名方案(CentOS7开始)

可以支持很多中命名机制:

1)根据Firmware进行命令:

每一台计算机的网卡在起计算机的硬件固件中都有唯一的标识符,比如: MAC地址,厂商标识,电器编号等;

2)根据物理拓扑结构:

每一台计算机的主板上都有固定数量的插槽或接口,如主板上第二个插槽链接的网卡的第一个物理接口等;

根据不同的命名机制,可以有如下的命令标准:

1)如果Firmware或BIOS是主板上集成的设备提供的索引信息并且该信息可用,则根据此索引信息进行设备命名,如: enoX,eno1,eno167777736,......

2)如果Firmware或BIOS是主板上扩展插槽所提供的索引信息并且该信息可用,如: ensX,ens0,ens1,......

3)如果硬件接口的物理拓扑的位置信息存在并可用,则可以根据此信息进行设备命名,如: enp1s0

4)如果用户显示的定义,可以根据诸如MAC地址进行命名,如: enx000c290045b3

5)如果上述可预测命名皆不可用,则延用传统命名方式对网络设备进行命名;

命名的格式组成:

en: ethernet

wl: wlan

ww: wwan

名称的类型:

o<index>: 集成设备的索引编号

s<slot_num>: 扩展插槽的索引编号

x<MAC>: 基于MAC地址进行命名;

p<bus>s<slot>: 基于总线+扩展插槽的索引联合索引编号;

net-tools家族(ifcfg家族):

1.ifconfig命令:

ifconfig - configure a network interface

ifconfig [interface] : 用于查看网络接口的配置信息;

如果执行ifconfig命令,不带任何接口做参数,则显示所有处于激活状态的网络接口信息;

如果执行ifconfig命令,带有特定接口名称作为参数,则无论接口是否处于激活状态,都显示该网络接口的信息;

ifconfig interface address: 用于配置接口的网络参数;

ifconfig interface IP[/PREFIX_LEN] [up|down]

ifconfig interface IP netmask subnet_MASK [up|down]

实例:

# ifconfig eth1 172.16.100.105

# ifconfig eth1 172.16.100.105/24

# ifconfig eth1 172.16.100.105 netmask 255.255.255.192

# ifconfig eth1 up|down

常用选项:

-a: 显示所有的网络接口,无论其是否处于激活状态

实例:

# ifconfig -a

2.route命令: 查看和管理路由信息

路由表中的路由条目,可能包括下列几种类型;

1)主机路由: 目标地址是特定的单个IP地址;

2)网络路由: 子网路由: 主网路由,超网路由(CIDR);

3)默认路由: 目标地址为0.0.0.0/0的路由条目; 到达任意地址的路由;

常用选项:

-n: 以数字话显示主机名(IP地址)和端口

设置路由信息:

route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]

route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]

设置默认网关的方法: default === -net 0.0.0.0 netmask 0.0.0.0

route add default gw 192.168.100.1

route add default gw 192.168.220.1 dev eth2

删除默认网关的方法:

route del default

route del default gw 172.16.0.1

添加静态路由的方法:

route add -net 10.0.0.0/8 gw 192.168.220.100 [dev eth1]

删除静态路由的方法:

route del -net 10.0.0.0/8

route del -net 10.0.0.0/8 gw 192.168.220.100

netstat命令:

Print network connections,routing tables,interface statics,masquerade connections,and multicast menerships

Print network connections

[--tcp|-t]: 只显示与TCP协议相关的网络连接

[--udp|-u]: 只显示与UDP协议相关的网络连接

[--udplite|-U]: 只显示udplite协议相关的网络连接

[--raw|-w]: 显示与裸套接字相关的网络连接

[--listening|-l]: 显示处于LISTEN状态的TCP连接

[--all|-a]: 查看所有状态的任意连接

[--numeric|-n]: 数字化显示结果中的主机名,端口号,用户ID等信息;

[--numeric-hosts]

[--numeric-ports]

[--numeric-users]

[--extend|-e[--extend|-e]]: 以扩展格式显示结果

[--program|-p]: 显示与该网络连接相关的应用程序及进程ID

TCP的有限状态机(TCP FSM):

State套接字状态

ESTABLISHED套接字有一个已建立的连接

SYN_SENT套接字正在积极尝试建立连接

SYN_RECV已从网络收到连接请求

FIN_WAIT1套接字已关闭,连接正在关闭

FIN_WAIT2连接已关闭,套接字正在等待远程终端的关机

TIME_WAIT套接字在等待处理网络中的数据包之后等待

CLOSE套接字未被使用

CLOSE_WAIT远程终端已关闭,等待套接字关闭

LAST_ACK远程终端已关闭,套接字已关闭. 等待确认

LISTEN套接字监听传入的连接,这样的套接字不包含在输出中,除非您指定侦听(-l)或全部(-a)选项

CLOSING两个套接字都关闭了,但我们仍然没有发送所有的数据

UNKNowN套接字的状态未知

常用的选项组合:

-tan,-uan,-tnl,-unl,-tnlp,-unlp,-tunlp

iproute家族:

ip: 显示/操作路由,设备,策略路由和隧道

ip [ OPTIONS ] OBJECT { COMMAND | help }

OBJECT := { link | addr | route | netns }

ip link COMMAND

COMMAND: add,delete,set,show,help

ip link set - 修改网络设备的配置参数

ip link set [dev] IFACE_NAME { up | down }: 激活或禁用网络接口

ip link set [dev] IFACE_NAME [ arp { on | off } ]: 是否允许此网络接口使用ARP协议;

ip link set [dev] IFACE_NAME name IDACE_NEW_NAME: 更改网络接口名称,需要将设备先down掉;

ip link set [dev] IFACE_NAME [ mtu MTU ]: 修改网络接口的MTU数值;

ip link set [dev] IFACE_NAME [netns NAME]: 将指定的网络接口加入到指定的网络名称空间中;

ip link { show | list }: 列表显示所有的链路接口,只显示链路层信息;

ip link help: 获得简短的帮助信息

ip netns COMMAND - 设置内核中的网络名称空间;

ip netns list: 列表显示所有的自定义的名称空间;

ip netns add NS_NAME: 创建名称空间;

ip netns exec NS_NAME cmd: 在指定的名称空间中使用命令;

ip netns delete NS__NAME: 删除指定的名称空间;

ip addr COMMAND - 查看和设置三层逻辑网络地址;

ip addr add IDADDR dev IFACE_NAME: 为指定的网络接口添加IP地址;

ip addr del IDADDR dev IFACE_NAME: 将IP地址从指定的网络接口上删除;

ip addr flush dev IDACE_NAME: 将指定接口上配置的所有IP地址全部清楚;

ip addr { show | list } [dev IFACE_NAME]: 显示网络接口上配置的IP地址;

为网络接口增加多个IP地址,并能够使用ifconfig查看:

ip addr add IFADDR dev IFACE_NAME label IFACE_NAME_LABEL

ip route COMMAND - 查看和设置路由表信息

ip route { add | del } TARGET/PREFIX via NEXT_HOP [dev IDACE_NAME]

ip route list

net-tools

iproute

特点: 使用命令配置网络参数以后,网络参数会立即生效,但是,只要重新启动或重新激活网络接口,其配置的网络参数立即丢失;

上述命令的配置结果,并没有影响或修改网络设备的配置文件;

配置文件:

CentOS6中:

跟IP,MASK,GATEWAY,DNS Server相关的配置文件;

/etc/sysconfig/network-scripts/ifcfg-IFACE_NAME

DEVICE: 此网络接口的名称;

TYPE: 此网络接口的类型,比较常见的是Ethernet,Bridge,Token Ring,...

HWADDR: 此设备的物理地址,在以太网中是MAC地址,

ONBOOT: 在系统引导的过程中,是否激活此设备;

NETBOOT: 是否可以使用此设备进行网络引导;

BOOTPROTO: 激活此接口时使用何种协议来配置此接口的属性;

动态配置: dhcp,bootp

静态配置: static,none

IPV6INIT: 是否在此接口上初始化IPV6协议

USERCTL: 是否允许普通用户能够管理此接口,推荐取值为no;

IPADDR: 指定此接口的固定IP地址,前提是BOOTPROTO应该是static或none;

NETMASK: 设置IP地址对应的子网掩码,

PREFIX: 设置IP地址的网络前缀的位数;

GATEWAY: 设置默认网关

DNS1: 首选DNS服务器的地址指向;

DNS2: 备用DNS服务器的地址指向;

DNS3: 第三DNS服务器的地址指向;

PEERDNS: 是否允许从DHCP服务器获得DNS服务器的地址指向替代此配置文件中的DNS服务器的地址指向; 默认值为允许;

NM_CONTROLLED: 是否允许NetworkManager服务管理网络接口,此服务在CentOS6中非常不完善,所以建议不适用此服务进行网络接口的管理; 而且最后将此服务永久关闭,执行下列命令即可:

# service NetworkManager stop

# chkconfig NetworkManager off

主机名称的配置文件: /etc/sysconfig/network

HOSTNAME: 当前Linux系统使用的主机名称;

# hostname查看当前系统的FQDN

# hostname NEW HOSTNAME注销后重新登录,即可生效

系统自动生成的配置文件

/etc/udev/rules.d/70-persistent-net.rules

重启网卡

service network restart

CentOS7中:

跟IP,DNS Server相关的配置文件:

/etc/sysconfig/network-scripts/ifcfg-IFACE_NAME

多数的配置语句与CentOS6相同,多出了下列几项;

UUID: 全局唯一标识符,用来唯一标识此网络接口;

NAME: 此网络接口的显示名称;

DEFROUTE: 是否允许此网络接口运行默认路由;

主机名称的配置文件: /etc/sysconfig/network

# hostnamectl set-hostname NEW_HOSTNAME

本地解析配置文件: /etc/hosts

格式为: IP地址 主机名(多个主机名之间使用空白字符隔开)

解析器文件: /etc/resolv.conf

search DOMAIN_NAME

nameserver DNS_SERER_IP_ADDRESS

静态路由的配置文件: /etc/sysconfig/network-scripts/route-IFACE_NAME

IFACE_NAME: 必须为此次路由出站接口的名称;

两种风格的写法:

1.每条路由信息占用一行:

TARGET via NEXT_HOP [dev IFACE_NAME]

2.每条路由信息占用多行:

ADDRSS#=TARGET

NATMASK#=MASK

GATEWAY#=NEXT_HOP

Bonding - 绑定

就是将多块网卡(多个网络接口设备)绑定同一IP地址,对外提供网络服务; 这些网卡之间可以实现负载均衡或高可用技术;

通过bonding,虚拟一个网卡对提供服务及网络连接,所有的物理网卡都被修改为相同的MAC地址;

Bonding的工作模式:

Mode 0--负载均衡解决方案,其负载均衡的算法为balance-rr(round robin,轮询); 轮询策略意味着: 从头到尾顺序的在每个slave接口上面发送数据包,该模式可以提供负载均衡以及容错的能力;

Mode 1--主备解决方案,(active-backup,master-backup),在此模式中,只有一个slave被激活,用于正常数据传输; 而其他的接口都贱死此接口的工作状态,当且仅当活动的slave接口失败的时候,才会从其他备份的接口中选择一个用于激活; 该模式只能实现容错,无法进行负载均衡;

Mode 3--全广播解决方案,在所有的slave接口上传输全部报文;

miimon用来进行链路检测,如果miimon=100,则系统每100ms检测一次链路连接的状态; 如果某个网络接口在miimon监测的结果为不连通,则进行故障倒换;

使用Bonding的时候,我们需要配置:

1.创建虚拟接口,

2.选择miimon的检测时间及Boding的工作模式

3.选择用于此次Bonding的物理接口

CentOS中的网络管理的更多相关文章

  1. Html5页面二次分享的实现

    这篇文章主要介绍了Html5页面二次分享的实现的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  2. HTML5跳转小程序wx-open-launch-weapp的示例代码

    这篇文章主要介绍了HTML5跳转小程序wx-open-launch-weapp的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  3. 配置iOS VoIP应用程序以在睡眠/后台模式下运行

    我正在开发基于VoIP的iOS(7.1)应用程序.它的底层套接字编程是用C而不是客观C编写的.应用程序在前台运行良好,但在进入睡眠/后台模式时,它无法从服务器接收任何通信.根据apple文档,我们必须为VoIP使用配置一个appsocket.我无法弄清楚如何配置C套接字.目的是在睡眠模式下运行应用程序,直到它被杀死.从SO中尝试了几个链接甚至几个链接,但由于我是新手,我希望这个配置有一步一步的过程.[注意:在某个地方我发现了CoreFoudation框架,我是否需要使用它?

  4. 我应该使用哪个高级API来管理iOS上的UDP套接字?

    在“NetworkProgrammingTopicsConceptualGuide”的“UsingSocketsandStreams”一章中,Apple说:Note:POSIXnetworkingdoesnotactivatethecellularradiooniOS.Forthisreason,thePOSIXnetworkingAPIisgenerallydiscouragediniOS.同样

  5. 关闭iOS原生MPVolumeView音频路由菜单

    我正在使用MPVolumeView允许用户在使用我的应用程序时控制他喜欢的音频路径.该代码显示了该视图:当用户点击音频路由按钮时,会出现一个带有可用选项的菜单.问题:显示音量视图的屏幕可能需要隐藏,因为我的应用程序处理各种事件,我想同时隐藏音频路由菜单我的问题:有没有人知道是否可以手动关闭MPVolumeView的音频路由选择菜单而无需用户按下取消按钮?解决方法在iOS8上,您可以使用以下使用私有API的代码

  6. ios – Objective C接口,委托和协议

    所以我试图围绕Objctive-C接口,代理和协议.所以我有一个问题:委托是否必须在单独的文件中,或者它是否是您班级中定义的方法?协议就像java接口吗?

  7. iOS:使用CFStreamCreatePairWithSocketToHost的套接字网络基础

    >每次要发送新数据对象时,是否设置了新套接字?>我是否必须重置outputStream并发送更多数据.码大部分代码来自CocoaStreamsDocumentation:响应:请注意,在发送数据后,outputStream流将关闭.我尝试在[selfsendString:@“AnotherTest”]之前重新启动outputStream.我也试过了idz的回答.根据文档,我相信len:0的发送缓冲区是我的问题.IfthedelegatereceivesanNsstreamEventHasspaceAvai

  8. ios – AFNetworking / NSURLConnection接收NSPOSIXErrorDomain代码= 9“操作无法完成.坏文件描述符“

    有人在他们的AFNetworking操作中遇到这个错误吗?此外,如果我真的想要,如何故意关闭这个文件描述符?

  9. iOS:使用蓝牙音频输出(kAudioSessionProperty_OverrideCategoryEnableBluetoothInput)AudioSession

    >如果有可用的A2DP设备,我的音频路由将始终自动切换到kAudioSessionOutputRoute_BluetoothA2DP路由.如何防止此路线更改?我希望你们中的一些人可以帮助我解决这些问题.这对我对CoreAudio的整体理解,特别是AudioSession框架,真的有帮助.解决方法AudioSession是一项棘手的业务.1.BluetoothHFPaudiooutputisonlypossibleincaseofAudioSessionkAudioSessionCategory_PlayA

  10. ios – watchOS错误:控制器的接口描述中的未知属性

    解决方法创建IBOutlet作为WKInterfacePicker的属性,您将不会收到消息.

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部