我想始终为我的网卡启用局域网唤醒功能。社区指南建议将相关命令添加到/etc/network/interfaces
。在过去编辑 Ubuntu conf 文件的经验中,网络接口文件极有可能在每次启动时(如果不是每次 apt 升级)都重新写入。确保每次启动都启用网络唤醒的最佳方法是什么?
答案1
配置网卡后运行启动脚本应该可以解决问题。Ubuntu 使用 upstart。在阅读了 upstart 作业、ethtool、编写 upstart 脚本以及在互联网上搜索更好的解决方案后,我想出了这从耶文斯基(您需要将其放入文件中/etc/init
):
start on started network
script
for interface in $(cut -d: -f1 /proc/net/dev | tail -n +3); do
logger -t 'wakeonlan init script' enabling wake on lan for $interface
ethtool -s $interface wol g
done
end script
- 在网卡初始化时启动
- 从 /proc/net/dev 获取网卡名称
- 将操作记录到系统日志
- 对所有找到的网卡起作用
需要 ethtool,因此请确保先安装它:
sudo apt-get install ethtool
如果你只想让一个尼古丁具有唤醒的力量,那么这样做更合适:
start on started network
script
interface=eth0
logger -t 'wakeonlan init script' enabling wake on lan for $interface
ethtool -s $interface wol g
end script
答案2
创建新文件,并将wakeonlanconfig
以下几行内容写入其中:
#!/bin/bash
ethtool -s eth0 wol g
exit
接下来设置文件的权限,使其可执行:
chmod a+x wakeonlanconfig
最后让脚本在启动时运行:
update-rc.d -f wakeonlanconfig defaults
欲了解更多详情,请访问:http://lukasz-lademann.blogspot.com/2013/01/how-set-up-wol-wake-on-lan-on-thin.html
答案3
对我来说,使用网络计划由于我使用的是 Ubuntu,因此配置有效(用于启用和禁用 WOL)。
查看这个类似的问题关于如何启用它。Canonical 还提供了一些关于如何使用 Netplan 的很好的文档:
我遵循的步骤
对于我的具体情况,我想禁用局域网唤醒,但这归结为仅将布尔值设置为true
/ false
。
- 我创建了这个 Netplan 配置 YAML(您需要 sudo 访问权限才能在该目录中创建文件):
# /etc/netplan/02-disable-wol.yaml
network:
version: 2
renderer: NetworkManager
ethernets:
eth-no-wakeonlan:
match:
macaddress: "11:22:33:44:55:66" # The eth interface's MAC address
wakeonlan: false # To enable, set to true
dhcp4: false # To enable, set to true
为了测试此配置,我运行了
sudo netplan try
,它会在恢复之前应用配置几分钟。注意:显然,这是一个netplan try
无法恢复配置的已知错误。本教程说重新启动就足够了(并且我认为删除了 yaml 文件)然后,我必须打开 Ubuntu 网络设置 UI 来切换到新创建的以太网接口
netplan-eth-no-wakeonlan
。完毕!
在启动时,Ubuntu 应该读取所有文件/etc/netplan/*.yaml
并应用其配置。
答案4
在 Ubuntu 16.04 中另外进行了设置WOL_DISABLE=N
以/etc/default/tlp
避免被 TLP 电源管理禁用 WOL。
http://linrunner.de/en/tlp/docs/tlp-configuration.html
添加NETDOWN=no
关机/etc/default/halt
时防止关闭网卡