java-websocket 中 Websocket Server 关闭后端口不会及时释放的解决方法
使用java-websocket包创建WebSocket服务器时,若建立过连接后关闭服务器,立即重启会提示端口被占用,但实际并无进程占用该端口。这是因为TCP协议在连接关闭后会将端口置于TIME_WAIT状态,持续30-120秒,期间端口无法重用。解决方案是在创建WebSocketServer时设置SO_REUSEADDR套接字选项,即添加this.setReuseAddr(true)。该选项允许端口在TIME_WAIT状态下重用,不会影响TCP协议的可靠性,因为新旧连接通过四元组和随机序列号区分,内核仍会正确处理原有连接的关闭流程。
为无头服务器配置带 GUI 的 Clash 客户端:基于 Xvfb + VNC 的解决方案
作者使用香橙派作为服务器,通过`create_ap`共享网络,并尝试在无图形界面的Linux服务器上运行带GUI的Clash客户端。为解决配置不便的问题,采用`xvfb`提供虚拟X环境,配合`x11vnc`实现VNC远程桌面连接,最终通过TigerVNC客户端访问图形化Clash-Verge界面。该方法虽然资源占用较高,但实现了服务器端代理的可视化管理,同时提到轻量级替代方案如clash核心+yacd面板。
Manjaro/X11 环境下通过 bbswitch 关闭 NVIDIA 显卡以延长续航
本文介绍了在Manjaro/X11环境下通过禁用NVIDIA显卡模块和使用bbswitch关闭显卡电源来延长笔记本续航的方法。作者发现混合显卡笔记本在Linux系统中存在高功耗问题,经过排查确定NVIDIA显卡是主要耗电源。解决方案包括修改模块配置文件、创建切换脚本以及利用bbswitch动态监测显卡状态,同时配合CPU频率调整等优化措施。该方法可使续航提升至5小时左右,但仅适用于NVIDIA显卡和X11显示环境,且需要重启才能生效切换。