답변:
다른 점이 없다. sysctl
Linux 의 명령은의 파일에 직접 씁니다 /proc/sys
. 소스 코드의이 스 니펫은 다음을 sysctl
증명합니다.
/*
* Write a sysctl setting
*/
static int WriteSetting(const char *setting)
{
/* ... */
/* used to open the file */
tmpname = xmalloc(equals - name + 1 + strlen(PROC_PATH));
strcpy(tmpname, PROC_PATH);
strncat(tmpname, name, (int) (equals - name));
tmpname[equals - name + strlen(PROC_PATH)] = 0;
/* change . to / */
slashdot(tmpname + strlen(PROC_PATH), '.', '/');
/* ... */
fp = fopen(tmpname, "w");
/* some error checking ... */
rc = fprintf(fp, "%s\n", value);
/* ... */
}
영구적 인 것을 원하면 다음을 포함하는 (예 :) /etc/sysctl.conf
파일 을 편집 하거나 추가 해야합니다 ./etc/sysctl.d
/etc/sysctl.d/99-disable-ip-forwarding.conf
# Disable IP packet forwarding
net.ipv4.ip_forward = 0
그건 그렇고, 일부 배포판은 이미 기본적 으로 이것을 명시 적으로 비활성화합니다 . 예를 들어 RHEL <= 6 또는 Fedora <= 15에는 다음이 있습니다 /etc/sysctl.conf
.
# Controls IP packet forwarding
net.ipv4.ip_forward = 0
Fedora 20은 더 이상 명시 적으로 비활성화하지 않습니다. 이는 전달에 설정하지 않는 것 /etc/sysctl.conf
, /etc/sysctl.d/
또는 /usr/lib/sysctl.d/
.