RedHat向管理员提供了非常好的方法,使我们可以在系统运行时更改内核参数,而不需要重新引导系统。这是通过/proc虚拟文件系统实现的。/proc/sys目录下存放着大多数的内核参数,并且设计成可以在系统运行的同时进行更改, 不过重新启动机器后会失效,可以通过更改/proc/sys中内核参数对应的文件 /etc/sysctl.conf 的内核参数来永久更改。下面我们以打开内核的 ip转发功能为例说明在系统运行时修改内核参数的两种方法。IP转发是指允许系统对来源和目的地都不是本机的数据包通过网络,RedHat默认屏蔽此功能,在 需要用本机作为路由器、NAT等情况下需要开启此功能。
方法一:修改/proc下内核参数文件内容
直接修改内核参数ip_forward对应在/proc下的文件/proc/sys/net/ipv4/ip_forward。用下面命令查看ip_forward文件内容:
# cat /proc/sys/net/ipv4/ip_forward
该文件默认值0是禁止ip转发,修改为1即开启ip转发功能。修改命令如下:
# echo 1 >/proc/sys/net/ipv4/ip_forward
修改过后就马上生效,即内核已经打开ip转发功能。但如果系统重启后则又恢复为默认值0,如果想永久打开需要通过修改/etc/sysctl.conf文件的内容来实现。
方法二.修改/etc/sysctl.conf文件
默认sysctl.conf文件中有一个变量是
net.ipv4.ip_forward = 0
将后面值改为1,然后保存文件。因为每次系统启动时初始化脚本/etc/rc.d/rc.sysinit会读取/etc/sysctl.conf文件的内容,所以修改后每次系统启动时都会开启ip转发功能。但只是修改sysctl文件不会马上生效,如果想使修改马上生效可以执行下面的命令:
# sysctl –p
在修改其他内核参数时可以向/etc/sysctl.conf文件中添加相应变量即可,下面介绍/proc/sys下内核文件与配置文件 sysctl.conf中变量的对应关系,由于可以修改的内核参数都在/proc/sys目录下,所以sysctl.conf的变量名省略了目录的前面部分(/proc/sys)。
将/proc/sys中的文件转换成sysctl中的变量依据下面两个简单的规则:
1.去掉前面部分/proc/sys
2.将文件名中的斜杠变为点
这两条规则可以将/proc/sys中的任一文件名转换成sysctl中的变量名。
例如:
/proc/sys/net/ipv4/ip_forward =》 net.ipv4.ip_forward
/proc/sys/kernel/hostname =》 kernel.hostname
可以使用下面命令查询所有可修改的变量名
# sysctl –a
下面例举几个简单的内核参数:
1./proc/sys/kernel/shmmax
该文件指定内核所允许的最大共享内存段的大小。
2./proc/sys/kernel/threads-max
该文件指定内核所能使用的线程的最大数目。
3./proc/sys/kernel/hostname
该文件允许您配置网络主机名。
4./proc/sys/kernel/domainname
该文件允许您配置网络域名
分享到:
相关推荐
本文介绍了通过Linux系统的内核观察/proc/pid/statm,文中解释了输出内容的参数,通过内核代码,我们可以更加清楚的了解proc的机制。
2 调整内核参数 2.1 /proc/sys/fs - 文件系统数据 2.2 /proc/sys/fs/binfmt_misc - 二进制可执行格式杂项 2.3 /proc/sys/kernel - 通用系统参数 2.4 /proc/sys/vm - 虚拟内存系统 2.5 /proc/sys/dev - 设备相关参数 ...
在 /proc 文件系统中,我们可以将对虚拟文件的读写作为与内核中实体进行通信的一种手段,但是与普通文件不同的是,这些虚拟文件的内容都是动态创建的。本文对 /proc 虚拟文件系统进行了介绍,并展示了它的用法。 ...
linux内核参数修改 linux 内核 参数 修改 /proc/sys/kernel/shmall 该文件是在任何给定时刻系统上可以使用的共享内存的总量(以字节为单位)。 缺省设置:2097152 /proc/sys/kernel/shmax 该文件指定内核所允许的...
使用 proc 文件系统来访问 Linux 内核的内容使用 proc 文件系统来访问 Linux 内核的内容使用 proc 文件系统来访问 Linux 内核的内容使用 proc 文件系统来访问 Linux 内核的内容使用 proc 文件系统来访问 Linux 内核...
linux下读取/proc获得系统信息 监控系统状态,显示系统中若干部件的使用情况。 用GTK库实现图形界面显示系统监控状态
基于Ubuntu下/proc虚拟文件系统实现的类似Windows的资源管理器,文章介绍:https://blog.csdn.net/z18223345669/article/details/122377005;内含项目文件和设计报告
访问 /sys & /proc Linux 虚拟文件系统 访问 /etc、/var、/run FS 层次结构中的各种文件 超级用户权限(访问 SMBIOS/DMI 表并检测 RAM 大小和属性) Sysinfo 不需要目标系统上的任何其他外部实用程序,这是它的主要...
通过读取/proc文件,获得系统信息 监控系统状态,显示系统中若干部件的使用情况。 用GTK库的图形界面显示系统监控状态。
/proc文件系统简单应用-内核空间和用户空间之间的数据交互 http://edsionte.com/techblog/archives/3030 /proc文件系统简单应用-内核空间和用户空间之间的数据交互 http://edsionte.com/techblog/archives/3030/proc...
读取/proc/cmdline 文件中的标志位信息。。
Linux 内核模块与_proc 文件系统.pdf Linux 内核模块是 Linux 操作系统中的一种关键机制,它允许用户动态地修改内核、加载自己编写的程序,而不需要每次都编译内核。这种机制极大地改善了 Linux 的灵活性。 Linux ...
虽然对大多数用户我们不建议更改和重新编译内核源代码,但是Linux内核提供了另一种方法来调整内核参数。Proc文件系统提供了一个运行的内核的接口,可以被用来检测和修改内核参数。
16. /proc/sys/kernel:系统内核功能。 17. /root:系统管理员的家目录。 18. /sbin:系统管理员才能执行的指令。 19. /srv:一些服務啟動之後,這些服務所需要取用的資料目錄。 20. /tmp:一般使用者或者是正在執行...
一个应用程序,可以通过读取/proc/net/xt_qtaguid/stats来分析应用程序的流量
3. Linux内核配置与裁剪 4. Linux内核模块开发 5. Linux内核启动流程 第二天 1. Linux内存管理 2. Linux进程地址空间 3. Linux内核地址空间 4. Linux内核链表 5. Linux内核定时器 第三天 1. Linux进程控制 2. Linux...
本文涉及grub、uboot、initrd、根文件系统、设备树、以及Linux内核编译等内容。 对那些好奇系统是如何启动的人本文非常适合,当然对于由于涉及操作系统的方方面面,bsp的开发人员也有点价值,但是这里没有对应用做...
sysctl命令被用于在内核运行时动态地修改内核的运行参数,可用的内核参数在目录“/proc/sys”中。 它包含一些TCP/ip堆栈和虚拟内存系统的高级选项, 这可以让有经验的管理员提高引人注目的系统性能。用sysctl可以...
3./PROC文件系统...............................................................................................十七 4.使用/PROC进行输入...................................................................
通过修改Linux系统内核参数ip_forward的方式实现路由功能,系统使用sysctl命令配置与显示在/proc/sys目录中的内核参数。首先在命令行输入:cat /proc/sys/net/ipv4/ip_forwad,检查Linux内核是不是开启IP转发功能。...