当前位置: 首页>>技术教程>>正文


在Ubuntu和Debian中重启网络的首选方法是什么

, ,

问题描述

当我使用以下方法重新启动网络时:

/etc/init.d/networking restart

我收到此警告:

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

那么,现在进行更改后重新启动网络的最佳方法是什么?

该问题也适用于Debian,因为netbase软件包是从debian继承的。

最佳思路

只是说重新启动选项不见了

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

注意只有一行!通过网络运行网络重新启动时,这一点很重要。

次佳思路

运行不带参数的init.d命令,它将告诉您用法:

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

似乎不建议重新启动

至少由于以下原因,它在Debian中也不推荐使用:

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 <md@linux.it>  Sun, 06 Dec 2009 17:09:41 +0100

The related bug #550240 here

真讨厌要从远程重新启动netwokring,最好的和最安全的方法将在屏幕会话中运行以下命令:

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

从今天的networking初始化脚本开始,restartforce-reload在大多数情况下都可以使用。我认为忽略警告并仍然使用重新启动是相当安全的。但是,我将使用停止+开始方式:-)

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

第三种思路

我使用nohup sh -c "/etc/init.d/networking stop; sleep 2; /etc/init.d/networking start"。我添加sleep 2是因为我认为重新启动的问题可能与hardware-dependent延迟有关,但这尚未得到证实,semi-rule的经验使我有些羞愧以至于无法公开。因此,如果您感到理性,可以跳过该步骤!

第四种思路

下面的命令在服务器环境中运行良好,不会引发警告。它在网络服务上实现了停止和启动请求。

sudo service networking start

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/11222.html,未经允许,请勿转载。