好吧,当我关闭路由器然后在运行 Ubuntu 时再次打开它时,它不会自动获取 IP 地址:
我单击“断开连接”,但它仍然像上面一样。
仅当我注销并切换到另一个会话,然后返回默认会话时,它才有效。
那么如何使用终端命令重置网络适配器,或者还有其他建议吗?
编辑:我尝试过使用sudo dhclient
,但是没有效果。
答案1
如果您确实想要重置网络适配器,通常需要卸载并重新加载它使用的内核模块。
如果您只是想重新配置它,通常可以执行以下操作:
sudo /etc/init.d/network-manager restart
但是如果您只是想要一个新的 dhcp 租约(这是从路由器获取新 IP 的技术名称),您只需要使用:
sudo dhclient -v eth1
答案2
对我来说这听起来像是网络管理器的问题。
我会尝试以下操作:(在 gnome-terminal 中)
- 使用以下方式“软阻止”你的无线设备
rfkill block wifi
rfkill list
将显示您是否成功。killall nm-applet
您终止网络管理器进程(面板图标将消失)。rfkill unblock wifi
再次启用 wifi。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