我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Linux下怎么调整网卡的工作模式

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Linux下怎么调整网卡的工作模式

本篇内容介绍了“Linux下怎么调整网卡的工作模式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

现在的网卡一般都是10/100M自适应工作模式,在配置网卡参数时我们很少考虑它的工作模式,但是在路由器、交换机、代理服务器等通信量比较大的关键设备上,我们应该为它指定正确的工作模式,这样可以提高通信效率。在Linux环境下,我们可以使用系统自带的工具mii-tool(这是专门设置网卡工作模式的命令)来配置网卡工作模式。下面我们具体来谈一下它的使用方法。

  1. 查看网卡的工作模式,输入命令:

  #mii-tool -v

  eth0: negotiated 100baseTx-FD,link ok

  product info:Vendor 00:05:be,model 8 rev 0

  basic status: autonegotiation complete,link ok

  basic mode:autonegotiation enabled.

  Capabilities: ..............

  从以上信息中可以看出,这块网卡工作在100M全双工自适应模式下,“100BaseTx-FD”意为100M Full Duplex。

  2. 更改网卡的工作模式,输入命令:

  #mii-tool -F media [interface]

  media可选的模式有100baseTx-FD、100baseTx-HD、10baseT-FD、10baseT-HD等。 Interface代表所选择的网卡,如eth0、eth2等,默认为eth0。

  例如,设置网卡工作在10M半双工模式下,输入命令:

  #mii-tool -F 10baseT-HD eth0

  3. 恢复网卡的自适应工作模式,输入命令:

  #mii-tool -r eth0

  更详细的使用方法可以用mii-tool -h来获得。
 在《调谐LINUX网络性能之调试工具篇》和《调谐LINUX网络性能之网络配置文件详解》两篇文章中,我们介绍了route、netstat、tcpdump三种网络调谐测试工具的使用方法及其可实现的功能和网络配置文件的内容,本文我们将从实战的角度介绍网络性能调谐的方法。
  
  下面,我们先来介绍网络性能调谐的第一种方法:服务方式选择。
  
  服务方式选择
  
  网络服务器由于要同时为多个客户提供服务,就必须使用某种方式来支持这种多任务的服务方式。一般情况下可以有三种方式来选择,多进程方式、多线程方式及异步方式。其中,多进程方式中服务器对一个客户要使用一个进程来提供服务,由于在操作系统中,生成一个进程需要进程内存复制等额外的开销,这样在客户较多时的性能就会降低。为了克服这种生成进程的额外开销,可以使用多线程方式或异步方式。在多线程方式中,使用进程中的多个线程提供服务,由于线程的开销较小,性能就会提高。事实上,不需要任何额外开销的方式还是异步方式,它使用非阻塞的方式与每个客户通信,服务器使用一个进程进行轮询就行了。异步方式下,多个任务之间的调度是由服务器程序自身来完成的,而且一旦一个地方出现问题则整个服务器就会出现问题,不在讨论的范围内。增大系统线程的数量:限制线程的数量的因素很多,主要有进程数量的限制,内存大小的限制,mutex/semaphore/shm/ipc的限制;一般情况下先增大进程最大数,再扩充内存,在增大线程最大数,而增大线程最大数的方法很简单,只需改变glibc中两处即可:线程最大数和线程堆栈区的大小;线程最大数的增加是以进程的异步 I/O性能下为代价;所以需要加以平衡。
  
  络配置文件中有用的内容
  
  1. 对于数据库而言,增大共享内存段和信号量的多少,对数据传输效率的提高起到很重要的作用;
  
  方法:只需编辑文件linux/include/linux/sem.h和linux/include/asm-i386/shmparam.h即可。
  
  2. 先增大进程最大数,再扩充内存,再增大线程最大数,而增大线程最大数的方法很简单,只需改变glibc中两处即可:线程最大数和线程堆栈区的大小;
  
  3. 把"/etc/inittab"文件中的一行注释掉可以禁止用Control-Alt-Delete关闭计算机。如果服务器不是放在一个安全的地方,这非常重要。
  
  编辑inittab文件(vi /etc/inittab)把这一行:
  
  ca::ctrlaltdel:/sbin/shutdown -t3 -r now
  
  改为:
  
  #ca::ctrlaltdel:/sbin/shutdown -t3 -r now
  
  用下面的命令使改变生效:
  
  [root@deep]# /sbin/init q
  
  4. /etc/host.conf 文件指定如何解析主机名。Linux通过解析器库来获得主机名对应的IP地址。下面是一个"/etc/host.conf"的示例:
  
  order bind,hosts :指定主机名查询顺序,这里规定先使用DNS来解析域名,然后再查询"/etc/hosts"文件(也可以相反)。
  
  可以在该文件后加上以下两句:
  
  multi on:指定的主机可以有多个地址,拥有多个IP地址的主机一般称为多穴主机。
  
  ospoof on:指不允许对该服务器进行IP地址欺骗,以提高服务器的安全性。IP欺骗是一种攻击系统安全的手段,通过把IP地址伪装成别的计算机,来取得其它计算机的信任。
  
  可调谐的Linux内核网络参数
  
  ICMP相关内核配置参数
  
  概述:通常我们使用icmp包来探测目的主机上的其它协议(如tcp和udp)是否可用。比如包含"destination unreachable"信息的icmp包就是最常见的icmp包。
  
  (1) icmp_destunreach_rate:设置内容为"Destination Unreachable"icmp包的响应速率。设置值应为整数。
  
  应用实例: 假设有A、B两部主机,首先我们在主机A上执行以下ipchains语句:
  
  ipchains -A input -p icmp -j REJECT
  
  这里的REJECT和DENY不同,DENY会丢掉符合条件的包如同没有接收到该包一样,而REJECT会在丢掉该包的同时给请求主机发回一个"Destination Unreachable"的icmp。
  
  然后在主机B上ping主机A,这时候我们会发现"Destination Unreachable"icmp包的响应速度是很及时的。接着我们在主机A上执行:
  
  echo "1000" > /proc/sys/net/ipv4/icmp_destunreach_rate
  
  也即每10秒钟响应一个"Destination Unreachable"的icmp包。
  
  这时候再从主机B上ping主机A就会发现"Destination Unreachable"icmp包的响应速度已经明显变慢,我很好奇的测试了一下,发现刚好是每10秒响应一次。
  
  (2)icmp_echo_ignore_broadcasts:设置是否响应icmp echo请求广播,设置值应为布尔值,0表示响应icmp echo请求广播,1表示忽略。
  
  注意:windows系统是不响应icmp echo请求广播的。
  
  应用实例:
  
  在我的RedHat6.x和RedHat7上该值缺省为0,这样当有个用户ping我的服务器所在的网段的网络地址时,所有的linux服务器就会响应,从而也能让让该用户得到我的服务器的ip地址,可以执行
  
  echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
  
  来关闭该功能。从而防止icmp风暴,防止网络阻塞。
  
  (3)icmp_echoreply_rate:设置系统响应icmp echo请求的icmp包的响应速度,设置值为整数。
  
  应用实例:
  
  假设有A、B两部主机,首先我们在主机B上ping主机A,可以看到响应很正常,然后在主机A上执行
  
  echo "1000" > /proc/sys/net/ipv4/icmp_echoreply_rate
  
  也即每10秒钟响应一个icmp echo请求包。然后再ping主机A就可以看到响应速度已经变成10秒一次。
  
  最好合理的调整该参数的值来防止icmp风暴。
  
  (4)icmp_echo_ignore_all:设置系统是否忽略所有的icmp echo请求,如果设置了一个非0值,系统将忽略所有的icmp echo请求。其实这是icmp_echoreply_rate的一种极端情况。参数值为布尔值,1:表示忽略,0:表示响应。
  
  (5)icmp_paramprob_rate:当系统接收到数据报的损坏的ip或tcp头时,就会向源发出一个包含有该错误信息的icmp包。这个参数就是用来设置向源发送这种icmp包的速度。当然,在通常情况下ip或tcp头出错是很少见的。参数值为整数。
  
  (6)icmp_timeexceed_rate:数据报在网络上传输时,其生存时间(time to live)字段会不断减少,当生存时间为0时,正在处理该数据报的路由器就会丢弃该数据报,同时给源主机发送一个"time to live exceeded"的icmp包。该参数就是用来设置这种icmp包的发送的速度。当然,这通常用于充当路由器的linux主机。
  
  IP相关内核配置参数
  
  linux内核网络参数中关于ip的配置参数通常是用来定义或调整ip包的一些特定的参数,除此之外还定义了系统的一些网络特性。
  
  (1)ip_default_ttl:设置从本机发出的ip包的生存时间,参数值为整数,范围为0~128,缺省值为64。在windows系统中, ip包的生存时间通常为128。如果你的系统经常得到"Time to live exceeded"的icmp回应,可以适当增大该参数的值,但是也不能过大,因为如果你的路由坏路的话,就会增加系统报错的时间。
  
  (2)ip_dynaddr:该参数通常用于使用拨号连接的情况,可以使系统能够立即改变ip包的源地址为该ip地址,同时中断原有的tcp对话而用新地址重新发出一个syn请求包,开始新的tcp对话。在使用ip欺骗时,该参数可以立即改变伪装地址为新的ip地址。该参数的参数值可以是:
  
  1:启用该功能
  2:使用冗余模式启用该功能
  0:禁止该功能
  
  应用实例:在使用ipchains配置ip欺骗带动局域网共享一个ppp连接上网时,有时会出现刚开时连接一个站点连不通,再次刷新又可以连接的情况,这时候就可以设置该参数的值为1,从而立即改变伪装地址为新的ip地址,就可以解决这类问题。命令为:
  
  echo "1" > /proc/sys/net/ipv4/ip_dynaddr
  
  (3)ip_forward:可以通过该参数来启用包转发功能,从而使系统充当路由器。参数值为1时启用ip转发,为0时禁止ip转发。注意,我们可以在单网卡或双网卡的主机上实现ip转发。
  
  应用实例:
  
  假设我们使用一部装有双网卡的linux主机充当防火墙,这时候我们就必须执行以下命令来打开ip转发功能:
  
  echo "1" > /proc/sys/net/ipv4/ip_forward
  
  (4) ip_local_port_range:设置当本地系统向外发起tcp或udp连接请求时使用的端口范围。设置值为两个整数,缺省为"1024 4999"。
  
  应用实例:
  
  echo "1450 6000" > /proc/sys/net/ipv4/ip_local_port_range
  
  tcp相关内核配置参数
  
  通过tcp配置参数可以控制tcp会话过程中的各个方面。
  
  (1) tcp_fin_timeout:在一个tcp会话过程中,在会话结束时,A首先向B发送一个fin包,在获得B的ack确认包后,A就进入FIN WAIT2状态等待B的fin包然后给B发ack确认包。这个参数就是用来设置A进入FIN WAIT2状态等待对方fin包的超时时间。如果时间到了仍未收到对方的fin包就主动释放该会话。参数值为整数,单位为秒,缺省为180秒。
  
  (2) tcp_syn_retires:设置开始建立一个tcp会话时,重试发送syn连接请求包的次数。 参数值为小于255的整数,缺省值为10。假如你的连接速度很快,可以考虑降低该值来提高系统响应时间,即便对连接速度很慢的用户,缺省

“Linux下怎么调整网卡的工作模式”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Linux下怎么调整网卡的工作模式

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Linux下怎么调整网卡的工作模式

本篇内容介绍了“Linux下怎么调整网卡的工作模式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!现在的网卡一般都是10/100M自适应工作模
2023-06-10

linux如何查看无线网卡工作模式

这篇文章给大家分享的是有关linux如何查看无线网卡工作模式的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。查看无线网卡工作模式查看无线网卡工作模式,一般情况下,无线网卡有四种工作模式,分别是Managed模式、M
2023-06-05

Fedora Linux系统怎么调整网卡速率

本篇内容介绍了“Fedora Linux系统怎么调整网卡速率”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!有时我们需要调整一下网卡的速率,在
2023-06-16

linux网卡混合模式怎么设置

要在Linux操作系统中设置网卡混合模式,可以按照以下步骤进行操作:打开终端,并以root用户身份登录系统。使用文本编辑器(如vi或nano)打开网络配置文件(通常位于/etc/network/interfaces或/etc/sysconf
linux网卡混合模式怎么设置
2024-02-29

linux怎么查看网卡绑定模式

在Linux系统中,可以使用以下命令来查看网卡的绑定模式:使用ifconfig命令查看网络接口的信息。绑定模式可以在Interface字段中找到。例如,如果网卡名称是eth0,可以使用以下命令来查看网卡的绑定模式:ifconfig eth
2023-10-23

Redis哨兵模式是怎么工作的

Redis哨兵模式是一种用于监控和管理Redis主从复制集群的机制。当一个Redis主节点出现故障时,哨兵节点会自动将一个从节点提升为新的主节点,并通知其他从节点更新复制集群的配置,以保证集群的高可用性和稳定性。哨兵节点会定期向所有Red
Redis哨兵模式是怎么工作的
2024-05-07

win10的网络双工模式怎么开启

本篇内容主要讲解“win10的网络双工模式怎么开启”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“win10的网络双工模式怎么开启”吧!什么是网络双工模式呢?该模式分别有全双工和半双工模式,2个模
2023-06-28

Linux下怎么更改网卡的MAC物理地址

这篇文章主要讲解了“Linux下怎么更改网卡的MAC物理地址”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux下怎么更改网卡的MAC物理地址”吧!有些地方是把网络地址和网卡物理地址绑定
2023-06-10

Redis发布/订阅模式是怎么工作的

Redis发布/订阅模式是一种消息传递模式,其中发布者向频道发布消息,而订阅者则订阅感兴趣的频道以接收消息。以下是Redis发布/订阅模式的工作原理:发布者(Publisher)使用PUBLISH命令向指定频道(Channel)发布消息。
Redis发布/订阅模式是怎么工作的
2024-05-07

Linux下的网络IO模型怎么理解

本篇内容介绍了“ Linux下的网络IO模型怎么理解”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Redis,Nginx,Netty,Nod
2023-06-16

怎么在Linux中启用Shell脚本的调试模式

本篇内容主要讲解“怎么在Linux中启用Shell脚本的调试模式”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么在Linux中启用Shell脚本的调试模式”吧!脚本是存储在一个文件的一系列命令
2023-06-16

Linux下怎么确定网卡所使用的驱动程序

这篇文章主要讲解了“Linux下怎么确定网卡所使用的驱动程序”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux下怎么确定网卡所使用的驱动程序”吧!1. 无论是集成网卡还是独立的网卡,都
2023-06-16

SAP Hybris和Netweaver的集群模式以及集群模式下工作需要解决的问题是什么

本篇文章给大家分享的是有关SAP Hybris和Netweaver的集群模式以及集群模式下工作需要解决的问题是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Hybris支持
2023-06-04

Linux下按进程实时统计网络带宽利用率的工具NetHogs怎么用

今天就跟大家聊聊有关Linux下按进程实时统计网络带宽利用率的工具NetHogs怎么用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。NetHogs是终端中一个网络流量监控工具,它可以
2023-06-28

KaliLinux鼠标怎么设置左撇子模式?Linux鼠标左手操作的选择方法

Kali Linux鼠标怎么设置左撇子模式?不太喜欢用右手操作,下面我们就来看看详细的教程。1、点whisker菜单按钮。2、点【设置】。3、点【鼠标和触摸板】。4、切换到【设备】选项卡。5、找到【左撇子】选项。6、勾选【左撇子】,点【关闭
2022-05-26

编程热搜

目录