两台以上的电脑共用一套键盘鼠标(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。
bash
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
中间可能提示缺少依赖,需要安装下面对应的依赖
bash
sudo add-apt-repository ppa:rock-core/qt4
sudo apt-get update
sudo apt-get install libcanberra-gtk-module
sudo dpkg -i synergy_1.8.8-stable+dfsg.1-1build1_amd64.deb
sudo apt-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 服务器配置
- 配置文件:在终端输入
bash
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:这个选项需要设置成false
screens\7\name=LAPTOP-SM4KU0JU这个选项改成你自己的名字
将上述配置文件修改并保存。有可能配置未生效,最简单的方法就是重启下自己的电脑。
- 启动 Synergy:
bash
# 命令行启动(无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 服务方式):
bash
# 创建服务文件
sudo nano /etc/systemd/system/synergyc.service
启用服务:
bash
sudo systemctl daemon-reload
sudo systemctl enable synergyc
sudo systemctl start synergyc
4. 配置文件位置
bash
# Ubuntu 配置文件
~/.synergy.conf
# 或
~/.config/Synergy/synergy.conf
# Windows 配置文件
C:\Users\<用户名>\AppData\Local\Synergy\synergy.conf
五、故障排除
问题1:无法连接
bash
# 1. 检查 Synergy 服务是否运行
sudo systemctl status synergyc # Ubuntu
# 或在 Windows 服务中查看 Synergy
# 2. 检查端口是否监听
# Ubuntu 上检查
sudo netstat -tlnp | grep 24800
# 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虚拟机可用)