两台以上的电脑共用一套键盘鼠标(windows+Ubuntu)
两台以上的电脑共用一套键盘鼠标(windows+Ubuntu)
让两台或多台 Windows 电脑共用一套键盘鼠标是一个非常实用且流行的需求。这不仅能节省桌面空间,还能极大提升在多设备间切换的工作效率。
以 Synergy 为例来详细讲解如何在 Windows 和 Ubuntu 之间共享一套键盘鼠标。另外还有:Barrier(开源免费,跨平台之王)Barrier 是 Synergy 核心的开源分支,完美支持 Windows、Linux(包括 Ubuntu)、macOS。但是我没用过,一直用的是Synergy。有兴趣的小伙伴可以自行了解Barrier。
Synergy 方案详解
一、Synergy 核心概念
- 服务器 (Server):连接着物理键盘鼠标的电脑。
- 客户端 (Client):接受服务器控制的电脑。
- 工作原理:通过局域网 TCP/IP 连接,在服务器端创建一个“虚拟桌面”,将客户端的屏幕作为扩展显示器。
二、软件获取与安装
A. Windows 安装
- 访问 Synergy 官网
- 下载 Windows 版本安装包
- 或者在夸克网盘下载,这里我分享出链接
链接:https://pan.quark.cn/s/ca366ffe00df
提取码:tT8p - 运行安装程序,按向导完成安装
- 重要:安装时确保勾选“安装系统服务”以便开机自启动
B. Ubuntu 安装
方法:使用官方仓库(推荐)
ubuntu20.04安装synergy。要下载1.8.8版本的synergy。
wget http://archive.ubuntu.com/ubuntu/pool/universe/s/synergy/synergy_1.8.8-stable+dfsg.1-1build1_amd64.deb sudo dpkg -i synergy_1.8.8-stable+dfsg.1-1build1_amd64.deb 中间可能提示缺少依赖,需要安装下面对应的依赖
sudo add-apt-repository ppa:rock-core/qt4 sudoapt-get update sudoapt-getinstall libcanberra-gtk-module sudo dpkg -i synergy_1.8.8-stable+dfsg.1-1build1_amd64.deb sudoapt-get -f install成功安装后,终端输入下面命令即可运行synergy
synergy 三、详细配置步骤
场景设定
- 客户端:Windows 电脑(键盘鼠标直接连接在此)
- 服务器端:Ubuntu 电脑
- 物理布局:Ubuntu 电脑在 Windows 电脑的右侧
步骤0:安装Bonjour
这里需要提前安装好Bonjour因为windows中要运行synergy的话需要Bonjour环境。不安装的话,会一直提示你安装。这里我给出分享链接,下载后安装即可
链接:https://pan.quark.cn/s/ecc7335f7b37
提取码:HQde
步骤1:Windows 客户端配置
1、勾选client
2、服务器ip填ubuntu的ip地址
3、使用ifconfig命令可查看ubuntu的ip地址

4、勾选上auto config
5、点击应用,此时点击可能不会成功,因为还没有配置好Ubuntu
步骤2:Ubuntu 服务器配置
- 配置文件:在终端输入
gedit ~/.config/Synergy/Synergy.conf 可以得到下面类似的配置文件
[General] screenName=ai port=24800 interface= logLevel=3 logToFile=false logFilename=/var/log/synergy.log wizardLastRun=7 language=zh-CN startedBefore=true autoConfig=true elevateMode=false elevateModeEnum=0 autoConfigPrompted=true edition=3 cryptoEnabled=false autoHide=true serialKey= lastVersion=1.8.8 lastExpiringWarningTime=0 activationHasRun=false groupServerChecked=true useExternalConfig=false configFile=/home/wxa/synergy.conf useInternalConfig=true groupClientChecked=false serverHostname= [internalConfig] numColumns=5 numRows=3 hasHeartbeat=false heartbeat=5000 relativeMouseMoves=false screenSaverSync=true win32KeepForeground=false hasSwitchDelay=false switchDelay=250 hasSwitchDoubleTap=false switchDoubleTap=250 switchCornerSize=0 ignoreAutoConfigClient=false enableDragAndDrop=true switchCornerArray\1\switchCorner=false switchCornerArray\2\switchCorner=false switchCornerArray\3\switchCorner=false switchCornerArray\4\switchCorner=false switchCornerArray\size=4 screens\1\name= screens\2\name= screens\3\name= screens\4\name= screens\5\name= screens\6\name= screens\7\name=LAPTOP-SM4KU0JU screens\8\name=ai screens\9\name= screens\10\name= screens\11\name= screens\12\name= screens\13\name= screens\14\name= screens\15\name= screens\size=15 hotkeys\size=0 screens\7\switchCornerSize=0 screens\7\aliasArray\size=0 screens\7\modifierArray\1\modifier=0 screens\7\modifierArray\2\modifier=1 screens\7\modifierArray\3\modifier=2 screens\7\modifierArray\4\modifier=3 screens\7\modifierArray\5\modifier=4 screens\7\modifierArray\6\modifier=5 screens\7\modifierArray\size=6 screens\7\switchCornerArray\1\switchCorner=false screens\7\switchCornerArray\2\switchCorner=false screens\7\switchCornerArray\3\switchCorner=false screens\7\switchCornerArray\4\switchCorner=false screens\7\switchCornerArray\size=4 screens\7\fixArray\1\fix=false screens\7\fixArray\2\fix=false screens\7\fixArray\3\fix=false screens\7\fixArray\4\fix=false screens\7\fixArray\size=4 screens\8\switchCornerSize=0 screens\8\aliasArray\size=0 screens\8\modifierArray\1\modifier=0 screens\8\modifierArray\2\modifier=1 screens\8\modifierArray\3\modifier=2 screens\8\modifierArray\4\modifier=3 screens\8\modifierArray\5\modifier=4 screens\8\modifierArray\6\modifier=5 screens\8\modifierArray\size=6 screens\8\switchCornerArray\1\switchCorner=false screens\8\switchCornerArray\2\switchCorner=false screens\8\switchCornerArray\3\switchCorner=false screens\8\switchCornerArray\4\switchCorner=false screens\8\switchCornerArray\size=4 screens\8\fixArray\1\fix=false screens\8\fixArray\2\fix=false screens\8\fixArray\3\fix=false screens\8\fixArray\4\fix=false screens\8\fixArray\size=4 注意screenName=ai:这里的ai是你自己电脑的名字cryptoEnabled=false:这个选项需要设置成falsescreens\7\name=LAPTOP-SM4KU0JU这个选项改成你自己的名字
将上述配置文件修改并保存。有可能配置未生效,最简单的方法就是重启下自己的电脑。
- 启动 Synergy:
# 命令行启动(无GUI) synergyc --name ubuntu-pc <Windows_IP地址># 或使用 GUI 启动 synergy .
四、高级功能与优化
1. 共享剪贴板
- 默认启用,但有时需要手动配置
- 文本同步:通常直接工作
- 文件同步:需要两端都启用文件传输功能
2. 快捷键配置
Synergy 提供丰富的快捷键控制:
| 快捷键 | 功能 |
|---|---|
Ctrl + Alt + Shift + ] | 切换屏幕(顺时针) |
Ctrl + Alt + Shift + [ | 切换屏幕(逆时针) |
Ctrl + Alt + Shift + L | 锁定到当前屏幕 |
Ctrl + Alt + Shift + P | 暂停/恢复 Synergy |
自定义快捷键:
- 在服务器配置中点击 “Hotkeys”
- 添加新的快捷键组合和对应动作
3. 自动启动配置
Windows 开机启动:
- 在 Synergy 中:Settings → Actions
- 勾选 “Start Synergy when the computer starts”
- 选择 “Log in and start”
Ubuntu 开机启动(systemd 服务方式):
# 创建服务文件sudonano /etc/systemd/system/synergyc.service 启用服务:
sudo systemctl daemon-reload sudo systemctl enable synergyc sudo systemctl start synergyc 4. 配置文件位置
# Ubuntu 配置文件 ~/.synergy.conf # 或 ~/.config/Synergy/synergy.conf # Windows 配置文件 C:\Users\<用户名>\AppData\Local\Synergy\synergy.conf 五、故障排除
问题1:无法连接
# 1. 检查 Synergy 服务是否运行sudo systemctl status synergyc # Ubuntu# 或在 Windows 服务中查看 Synergy# 2. 检查端口是否监听# Ubuntu 上检查sudonetstat -tlnp |grep24800# Windows 上检查netstat -an |find"24800"# 3. 查看日志# Ubuntu 日志tail -f /var/log/syslog |grep synergy # Windows 日志# 查看 Synergy 的日志窗口或系统事件查看器问题2:鼠标卡顿或延迟
- 检查网络延迟:
ping <对方IP> -t - 降低加密强度:暂时关闭 SSL 测试
- 调整刷新率:在高级设置中降低屏幕刷新间隔
- 使用有线网络:Wi-Fi 可能不稳定
问题3:剪贴板不同步
- 确保两端都启用了剪贴板共享
- 重启 Synergy 服务
- 检查防火墙是否阻止了额外端口
- 尝试同步纯文本(排除格式问题)
问题4:屏幕边缘切换不灵敏
- 重新校准屏幕位置(在服务器配置中微调)
- 增加“屏幕边缘切换延迟”
- 确保屏幕分辨率比例正确
总结建议
备选方案:
如果 Synergy 遇到问题,可以尝试:
- Barrier(免费开源替代品,配置类似)
- Input Director(仅Windows,但如果Ubuntu运行Windows虚拟机可用)