Não há diferença. O comando sysctl no Linux grava diretamente em arquivos em /proc/sys . Este snippet do código fonte de sysctl comprova:
/*
* 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);
/* ... */
}
Se você quiser algo permanente, precisa editar /etc/sysctl.conf ou adicionar um arquivo em /etc/sysctl.d (por exemplo, /etc/sysctl.d/99-disable-ip-forwarding.conf ) contendo:
# Disable IP packet forwarding
net.ipv4.ip_forward = 0
A propósito, algumas distribuições já desabilitam isso explicitamente por padrão. Por exemplo, RHEL < = 6 ou Fedora < = 15 têm isso em /etc/sysctl.conf :
# Controls IP packet forwarding
net.ipv4.ip_forward = 0
O Fedora 20 não o desativa explicitamente mais. Não há configuração de encaminhamento em /etc/sysctl.conf , /etc/sysctl.d/ ou /usr/lib/sysctl.d/ .