Qual é o método preferido para reiniciar a rede no Ubuntu e Debian

37

Quando eu reinicio a rede usando:

/etc/init.d/networking restart

Eu recebo este aviso:

 Running /etc/init.d/networking restart is deprecated because it may not enable again some interfaces

Então, qual é a melhor maneira de reiniciar a rede depois de fazer alterações agora?

Este problema também se aplica ao Debian, pois o pacote netbase é herdado do debian.

Antonius Bloch
fonte

Respostas:

27

Está apenas dizendo que a opção de reinicialização está desaparecendo

/etc/init.d/networking stop; /etc/init.d/networking start

Observe que há apenas uma linha! Isso é importante ao executar a reinicialização da rede pela rede.

Mike
fonte
28
dois comandos: - / má ideia se você estiver no controle remoto. Melhor usar um forro:/etc/init.d/networking stop; /etc/init.d/networking start
hmontoliu 15/05
@hmontoliu: em seguida, novamente parece aconselhável usar o reinício preterido desde que você não pode esquecer o comando iniciar
mbx
11
Se você está no controle remoto, você deve sempre usarscreen
Avio
5
A tela não ajudará muito se você desligar a rede em um servidor remoto. Nesse caso, você teria que procurar algum tipo de acesso direto, o que nem sempre é conveniente.
Metakermit 14/05
11
stope startobviamente não são preteridos, mas usados ​​em conjunto, eles têm o mesmo problema potencial que restartcostumavam ter.
Håkan Lindqvist
19

Execute o comando init.d sem parâmetros, ele informará qual é o uso:

~# /etc/init.d/networking 
Usage: /etc/init.d/networking {start|stop}

Parece que a reinicialização está obsoleta

Também está obsoleto no Debian pelo menos desde:

netbase (4.38) unstable; urgency=low

  * Create /etc/sysctl.d/bindv6only.conf on upgrades and new installs
    to set net.ipv6.bindv6only=1.
  * Made the init script check for swap over the network. (Closes: #540697)
  * Temporarily depend on initscripts to work around a bug in multistrap.
    (Closes: #556399)
  * etc-services: added sieve (4190/tcp).
  * etc-services: removed sieve (2000/tcp). (Closes: #555664)
  * Made the init script warn that using the force-reload and restart
    parameters is not a good idea. (Closes: #550240)

 -- Marco d'Itri <[email protected]>  Sun, 06 Dec 2009 17:09:41 +0100

O bug relacionado # 550240 aqui

O que é bastante desagradável. Para reiniciar o netwokring a partir do controle remoto, provavelmente a melhor e mais segura abordagem será executada da seguinte maneira em uma sessão de tela :

~# /etc/init.d/networking stop; /etc/init.d/networking start

A partir de hoje networkingscript de inicialização, restarte force-reloadirá funcionar na maioria das circunstâncias. Eu acho que é razoavelmente seguro ignorar o aviso e ainda usar o reinício . No entanto, eu vou com o stop + start way :-)

case "$1" in
start)
    process_options

    log_action_begin_msg "Configuring network interfaces"
    if ifup -a; then
        log_action_end_msg $?
    else
        log_action_end_msg $?
    fi
    ;;

stop)
    check_network_file_systems
    check_network_swap

    log_action_begin_msg "Deconfiguring network interfaces"
    if ifdown -a --exclude=lo; then
        log_action_end_msg $?
    else
        log_action_end_msg $?
    fi
    ;;

force-reload|restart)
    process_options

    log_warning_msg "Running $0 $1 is deprecated because it may not enable again some interfaces"
    log_action_begin_msg "Reconfiguring network interfaces"
    ifdown -a --exclude=lo || true
    if ifup -a --exclude=lo; then
        log_action_end_msg $?
    else
        log_action_end_msg $?
    fi
    ;;

*)
    echo "Usage: /etc/init.d/networking {start|stop}"
    exit 1
    ;;
esac
hmontoliu
fonte
Sério? Reiniciar é útil quando você está trabalhando remotamente!
Antonius Bloch
2
Veja minha edição. Concordo que um reinício à prova de bala seria melhor do que parar + começar
hmontoliu
Eu acho que vale a pena notar que stop+ startparece fazer exatamente a mesma coisa que restartfaria. Parece não ser mais seguro, além de não usar uma opção obsoleta (obsoleta especificamente para desencorajar esta operação).
precisa saber é o seguinte
5

Eu uso nohup sh -c "/etc/init.d/networking stop; sleep 2; /etc/init.d/networking start". Acrescento sleep 2porque acho que talvez os problemas com a reinicialização tenham algo a ver com latências dependentes de hardware, mas isso não está confirmado e é uma semi-regra prática que tenho um pouco de vergonha de tornar pública. Então você pode pular isso se estiver se sentindo racional!

Eduardo Ivanec
fonte
então basicamente você está dizendo que eu tenho que usar o comando restart = "nohup sh -c /etc/init.d/networking stop; sleep 2; /etc/init.d/networking start" porque alguém usando o Debian, pensa em seu trabalho estará em jogo se evoluirmos o Linux além de um sistema operacional mais hobbiest?
11
De modo nenhum. Como você é doido!
Eduardo Ivanec 29/05
3

O comando abaixo funciona bem em um ambiente de servidor, sem emitir avisos. Ele implementa a solicitação de parada e início no serviço de rede.

sudo service networking start
Erick
fonte
Isso não parece parar e começar. Enfim, isso não aconteceu comigo no Debian Wheezy. Talvez faça em alguma outra distribuição.
mivk
Funciona bem no Ubuntu
Erick
2

e quanto a nohup sh -c "ifdown -a && ifup -a"

Dazz
fonte
1

No Debian Wheezy,

service networking restart

parece fazer o que é esperado e não reclama.

Eu acho que em Jessie com systemd pode ser diferente novamente.

mivk
fonte
Com systemdo systemctl restart networkingiirc, mas a maneira "antiga" serviceainda está funcionando.
Wb9688
0

Se você não conseguir encontrar o motivo pelo qual a rede falha ao reiniciar, faça-o no modo detalhado dentro de uma screensessão:

ifdown -v --force eth0; ifup -v eth0
sanmai
fonte