如何让Ubuntu 22.04.3LTS在无显示器连接时保持网络在线并维持Samba文件共享?
如何让Ubuntu 22.04.3LTS在无显示器连接时保持网络在线并维持Samba文件共享?
嗨,我来帮你搞定这个问题!你遇到的情况其实挺普遍的——当Ubuntu检测不到显示器连接,或者闲置时间一长,系统的电源管理、显卡相关设置可能会触发休眠、断开网络,直接导致Samba共享用不了。下面是几个针对性的解决方法,你可以一步步来试:
调整系统电源管理,彻底禁用休眠/挂起
系统自动休眠是最常见的“凶手”,你可以通过两种方式设置:- 图形界面操作:点击右上角系统菜单进入「Settings」,找到「Power」选项,把「Suspend when inactive for」改成「Never」,同时确保「Automatic suspend」是关闭状态;「Blank screen」可以根据需求设置,但核心是自动休眠必须关。
- 命令行加固:终端里输入下面的命令,直接禁用所有休眠、挂起相关的系统目标,防止图形界面设置没生效:
之后如果需要恢复休眠功能,把命令里的systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.targetmask改成unmask即可。
关闭网卡的省电模式,避免网络断开
部分网卡会在闲置时自动进入省电模式导致断网,你可以这样处理:- 先在终端输入
nmcli device show,找到你的网卡名称(通常是enp0s3这类有线网卡,或者wlp2s0这类无线网卡); - 接着输入命令关闭省电功能:
nmcli connection modify <你的网卡名称> 802-3-ethernet.wake-on-lan magic 802-3-ethernet.wake-on-lan-password "" - 也可以通过图形界面操作:进入「Settings」的「Network」,点击网卡旁的齿轮图标,找到「Power」选项,关闭所有节能相关的开关。
- 先在终端输入
确保Samba服务始终稳定运行
有时候Samba服务会随系统状态异常退出,你可以设置它开机自启并自动重启:- 终端输入命令,立即启动Samba核心服务并设置开机自启:
(smbd负责文件共享的核心逻辑,nmbd负责网络名称解析,两个都得确保运行)sudo systemctl enable --now smbd nmbd - 设置服务自动重启策略:终端输入
sudo systemctl edit smbd,在弹出的编辑器里粘贴以下内容:
保存退出后,重新加载配置并重启服务:[Service] Restart=always RestartSec=5sudo systemctl daemon-reload sudo systemctl restart smbd nmbd
- 终端输入命令,立即启动Samba核心服务并设置开机自启:
模拟显示器连接,绕过无显示触发的限制
有些Ubuntu系统在检测不到显示器时,会触发显卡相关的节能逻辑,间接影响系统运行。你有两个选择:- 硬件方案:买一个HDMI dummy plug(虚拟显示器模拟器),插在电脑的HDMI口上,系统就会以为有显示器正常连接,不会触发特殊限制;
- 软件方案:通过命令行强制设置显示输出,终端依次输入以下命令(把
<HDMI-1>换成你的显示端口,比如DP-1,可以用xrandr命令查看所有端口):
要是想开机自动生效,可以把这些命令添加到xrandr --newmode "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync xrandr --addmode <HDMI-1> 1920x1080_60.00 xrandr --output <HDMI-1> --mode 1920x1080_60.00~/.bashrc文件末尾,或者创建一个开机启动脚本。
你可以先从电源管理和Samba服务设置开始试,这两个是最容易解决问题的点。如果还是不行,再试试虚拟显示器的方案,应该就能彻底解决你的问题了!
备注:内容来源于stack exchange,提问作者Fuzzy Wilson




