我想在CentOS5服务器上关闭tcp分段卸载.使用ethtool命令是ethtool -K eth0 tso off但是,此设置仅在此会话中保留.如何通过重新启动使其持续存在?
从这
webpage:
原文链接:https://www.f2er.com/centos/374007.html您可以在/etc/rc.local(或您的发行版等效)中输入ethtool命令,其中命令在当前运行级别完成后运行,但这并不理想.网络服务可能在运行级别期间启动,而ethtool命令往往会中断网络流量.最好是将作为接口应用的命令引出.
CentOS中的网络服务有能力执行此操作.脚本/ etc / sysconfig / network-scripts / ifup-post检查是否存在/ sbin / ifup-local,如果存在,则使用接口名称作为参数运行它(例如:/ sbin / ifup-local eth0 )
我们可以使用touch / sbin / ifup-local创建这个文件,使其可执行,使用chmod x / sbin / ifup-local将其SELinux上下文设置为chcon –reference / sbin / ifup / sbin / ifup-local,然后在编辑.
将相同设置应用于所有接口的简单脚本就是这样的
#!/bin/bash if [ -n "$1" ]; then /sbin/ethtool -G $1 rx 4096 tx 4096 /sbin/ethtool -K $1 tso on gso on fi
请记住,这将尝试将设置应用于所有接口,甚至是环回.
如果我们有不同的接口,我们想要应用不同的设置,或者想要跳过环回,我们可以做一个case语句
#!/bin/bash case "$1" in eth0) /sbin/ethtool -G $1 rx 16384 tx 16384 /sbin/ethtool -K $1 gso on gro on ;; eth1) /sbin/ethtool -G $1 rx 64 tx 64 /sbin/ethtool -K $1 tso on gso on /sbin/ip link set $1 txqueuelen 0 ;; esac exit 0
现在,ethtool设置在接口启动时应用于接口,所有可能的网络通信中断都会在接口启动时完成,您的服务器可以继续使用完整的网络功能启动.