sysctl

摘要:
Sysctl配置和内核参数显示在/proc/sys目录中。您可以使用sysctl设置或重置网络功能,例如IP转发、IP片段删除和源路由检查。用户只需编辑/etc/sysctl Conf文件,即可手动或自动执行sysctl控制的功能。此外,sysctl可以在不重新启动系统的情况下生效。使用sysctl可以读取和设置500多个系统变量。基于此,sysctl提供了两个功能:读取和修改系统设置。以下是具体步骤:步骤1.备份/etc/sysctl。conf文件步骤2.修改/etc/sysctl。conf文件步骤3.执行sysctl-p以使修改的参数生效。设置参数sysctlnet.ipv4.tcp _ tw_ Reuse=1可以在一定程度上缓解这种情况。

sysctl配置与显示在/proc/sys目录中的内核参数.可以用sysctl来设置或重新设置联网功能,如IP转发、IP碎片去除以及源路由检查等。用户只需要编辑/etc/sysctl.conf文件,即可手工或自动执行由sysctl控制的功能。

    命令格式:

    sysctl [-n] [-e] -w variable=value

    sysctl [-n] [-e] -p <filename> (default /etc/sysctl.conf)

    sysctl [-n] [-e] -a

    常用参数的意义:

    -w   临时改变某个指定参数的值,如

         sysctl -w net.ipv4.ip_forward=1

    -a   显示所有的系统参数

    -p   从指定的文件加载系统参数,如不指定即从/etc/sysctl.conf中加载

    如果仅仅是想临时改变某个系统参数的值,可以用两种方法来实现,例如想启用IP路由转发功能:

1) #echo 1 > /proc/sys/net/ipv4/ip_forward

    2) #sysctl -w net.ipv4.ip_forward=1

以上两种方法都可能立即开启路由功能,但如果系统重启,或执行了

    # service network restart

 命令,所设置的值即会丢失,如果想永久保留配置,可以修改/etc/sysctl.conf文件

 将 net.ipv4.ip_forward=0改为net.ipv4.ip_forward=1

sysctl是一个允许您改变正在运行中的Linux系统的接口。它包含一些 TCP/IP 堆栈和虚拟内存系统的高级选项, 这可以让有经验的管理员提高引人注目的系统性能。并且,sysctl可以在不用重启系统的情况下是设置生效。用sysctl可以读取设置超过五百个系统变量。基于这点,sysctl(8) 提供两个功能:读取和修改系统设置。
查看所有可读变量:sysctl -a
选取其中部分可读变量查看:sysctl -a | grep port

经过使用该工具分析,在装有ubuntu系统的PC上,XBMC运行期间(只有dms和dmr,没有dmc),选项的改变不能影响到广播的接收或者发送,即系统该怎么运行还是怎么运行,在这个层次上不能截取广播包。

下面是具体步骤:
step 1.备份/etc/sysctl.conf文件
step 2.修改/etc/sysctl.conf文件
step 3.执行sysctl -p使你修改的参数生效。

===================
下面是一些设置:
1.
Enable ignoring broadcasts request:
net.ipv4.icmp_echo_ignore_broadcasts=1

2.
临时启用某个设置,使用命令sysctl -w ~
例如:sysctl -w net.ipv4.ip_forward=1
在系统重启,或者执行了service network restart后,所设置的值就会丢失。

3.
用于向外连接的端口范围:
net.ipv4.ip_local_port_range =8000 65535
客户端测试并发连接超过一定数量时候,出现端口号耗尽情况,尤其被大量TIME_WAIT占用。

使用如下命令查看占用情况。其上限是net.ipv4.ip_local_port_range 所指定的区间内的端口总数。

netstat -an | awk '/^tcp/ {++state[$6]} END   {for (key in state) print key," ",state[key]}'

当发现到达了net.ipv4.ip_local_port_range 所指定的上限,除了使用虚ip增加端口使用数量外,

可以对这个参数进行调优。设置参数

sysctl net.ipv4.tcp_tw_reuse=1

可以一定程度上缓解这种状况。注意有些网上给出的选项还有net.ipv4.tcp_tw_recycle=1。但这个参数会产生额外的麻烦

在负载均衡的后端机中使用这个参数,会将负载均衡设备建立的多个连接请求当成同一个,从而使后建建立的连接断开。(未测试…)

- somaxconn参数.

定义了系统中每一个端口最大的监听队列的长度,这是个全局的参数,该内核参数默认值一般是128,对于负载很大的服务程序来说大大的不够。一般会将它修改为2048或者更大。

echo 2048 >   /proc/sys/net/core/somaxconn    但是这样系统重启后保存不了

在/etc/sysctl.conf中添加如下

net.core.somaxconn = 2048

然后在终端中执行

sysctl -p

免责声明:文章转载自《sysctl》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇redis关闭报没有权限No authjava编程规范之java命名规范下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

cocos2dx解决苹果正版ipv6的问题

苹果官方出了新的规定,要求新上架的app都必须单独支持ipv6-only的网络。 具体的要求链接:https://developer.apple.com/library/mac/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/UnderstandingandPreparin...

Android O : DNS列表获取及IPv4/IPv6优先级修改

一、Android应用获取有线网络DNS列表 /** * 获取DNS列表 */ private List<String> getDnsList() { List<String> dnsList = new ArrayList(); if (this.mIEthern...

CentOS 大量的TIME_WAIT解决方法

CentOS 大量的TIME_WAIT解决方法 最近个人博客总是出现无法打开的现象,具体表现为,打开页面需要等待n长时间,登陆系统后发现系统存在大量TIME_WAIT状态的连接,google了一下解决方法,分享如下: 系统存在大量TIME_WAIT状态的连接,通过调整内核参数解决, vi /etc/sysctl.conf 编辑文件,加入以下内容: net...

临时解决linux下time wait问题

 通过 netstat  -anp | grepTIME_WAIT | wc -l 命令查看数量,发现TIME_WAIT的连接数量超过了阈值   1、初步怀疑是程序没有关闭连接,codereview了两遍,发现,已经正常关闭。 2、网上看TIME_WAIT产生的原因,可能是因为服务器主动关闭连接导致TIME_WAIT产生。 3、查找TIME_WAIT解决...

(转)linux 内存管理——内核的shmall 和shmmax 参数

内核的 shmall 和 shmmax 参数 SHMMAX= 配置了最大的内存segment的大小 ------>这个设置的比SGA_MAX_SIZE大比较好。SHMMIN= 最小的内存segment的大小 SHMMNI= 整个系统的内存segment的总个数 SHMSEG= 每个进程可以使用的内存segment的最大个数配置信号灯( semphor...

为什么 netstat 对某些服务只显示了 tcp6 监听端口

最近偶尔发现一个比较奇怪的现象,netstat 查看监听的服务端口时,却只显示了 tcp6 的监控, 但是服务明明是可以通过 tcp4 的 ipv4 地址访问的,那为什么没有显示 tcp4 的监听呢? 以 sshd 监听的 22 端口为例: # netstat -tlnp | grep :22 tcp 0 0 0.0.0.0:22...