如何使用终端命令重置网络适配器?

如何使用终端命令重置网络适配器?

好吧,当我关闭路由器然后在运行 Ubuntu 时再次打开它时,它不会自动获取 IP 地址:

在此处输入图片描述

我单击“断开连接”,但它仍然像上面一样。

仅当我注销并切换到另一个会话,然后返回默认会话时,它才有效。

那么如何使用终端命令重置网络适配器,或者还有其他建议吗?

编辑:我尝试过使用sudo dhclient,但是没有效果。

答案1

如果您确实想要重置网络适配器,通常需要卸载并重新加载它使用的内核模块。

如果您只是想重新配置它,通常可以执行以下操作:

sudo /etc/init.d/network-manager restart

但是如果您只是想要一个新的 dhcp 租约(这是从路由器获取新 IP 的技术名称),您只需要使用:

sudo dhclient -v eth1

答案2

对我来说这听起来像是网络管理器的问题。

我会尝试以下操作:(在 gnome-terminal 中)

  1. 使用以下方式“软阻止”你的无线设备rfkill block wifi
  2. rfkill list将显示您是否成功。
  3. killall nm-applet您终止网络管理器进程(面板图标将消失)。
  4. rfkill unblock wifi再次启用 wifi。
  5. nm-applet加载新的网络管理器会话。

也许只需终止/加载 nm-applet 即可。另请注意,您无需为此使用“sudo”。

我确实知道有些路由器和 wifi 设备彼此之间不太“相像”。这通常是某种“测试版”wifi linux 驱动程序的问题...

答案3

nmcli radio wifi off
nmcli radio wifi on

对我有用:-)

答案4

我编写了一个脚本,当 Wi-Fi 断开连接或无响应时尝试各种方法来重置 Wi-Fi(它在 cron 中每 2 分钟调用一次):

  #!/bin/sh
  # program to check wifi and reset if not running
  IPTEST=192.168.1.1
  iwconfig=/sbin/iwconfig
  rfkill=/usr/sbin/rfkill
  DEVICE=`$iwconfig | egrep 802 | awk ' {print $1}'`

  if ping -c 1 $IPTEST >/dev/null 2>&1 ; then
    #echo $IPTEST ok
    exit 0
  else
    # Failed, try to reset wifi - sometimes works ok
    (
    date
    echo "Apagando wifi...."
    nmcli nm wifi off
    sleep 3
    echo Iniciando wifi....
    nmcli nm wifi on
    sleep 10
    if ping -c 1 $IPTEST >/dev/null 2>&1 ; then
        #echo $IPTEST ok
        exit 0
    else
        # try another way
        echo "Apagando wifi $iwconfig ...."
        $iwconfig
        $iwconfig $DEVICE txpower off
        sleep 3
        echo Iniciando wifi....
        $iwconfig $DEVICE txpower auto
    fi
    sleep 10
    if ping -c 1 $IPTEST >/dev/null 2>&1 ; then
        #echo $IPTEST ok
        exit 0
    else
        # try another way
        echo "Apagando wifi $rfkill ...."
        $rfkill list
        $rfkill block wifi
        sleep 3
        echo Iniciando wifi....
        $rfkill unblock wifi
    fi
    #echo Cerrar esta ventana cuando sale el estado
    #sleep 3
    #iftop -i $DEVICE
    )  >> $HOME/wificheck.log 2>&1
  fi
  exit 0

相关内容