分类: 网络与安全
2011-02-28 17:19:21
前些天,我把自己的台式电脑搬到实验室,与实验室里分配给我的电脑一起用。为了方便使用,我尝试了下用软件的方法实现两台电脑公用一套鼠标键盘,并且共享剪切板。本着分享的精神,写下心得,希望对需要的人有所帮助。
首先要说明的是我这两台都是装了Linux+windows xp的双系统的,目前,无论这两台机子各自开的是哪个系统,从出现登陆界面开始都能实现共享鼠键(比如,在鼠标当前在右边这台显示器上,将鼠标向左边移 动,碰到屏幕左边边界再过去一点就到左边屏幕了,鼠标在哪个屏幕,键盘的输入也就针对那个屏幕),并且在一台电脑copy的文字能直接黏贴到另外一台电 脑,但不能用这种Ctrl+C Ctrl+V的方式复制文件。
原理
synergy是个开源的软件,有Linux, Mac, windows三个版本,要想实现共享鼠标键盘,必须在所有机器上都安装这个软件,并进行相应的配置,有一台唯一的主机作为服务器端,其他主机作为客户 端,要共享的那套鼠标键盘链接到服务器端。所有主机都必须连入同一个局域网,synergy会通过局域网交换鼠标键盘的输入信息,以实现其他主机共享使用 这套鼠标键盘。
安装
1. 如果服务器端是Windows系统,下载安装:synergy windows版本。(华军的下载页面)
2. 如果服务器端是linux版本,请在这里下载: ... up_id=59275&release_id=406637 。Ubuntu可以直接通过源里面安装,或:sudo apt-get install synergy。
无论是服务器端还是客户端,要装的软件都是一样的,只是配置不同而已。
配置流程
一、服务器端
我们假设,右边这台主机作为服务器端
1.服务器端是windows系统
打开synergy,选上”share this computer’s keyboard and mouse(server)”,然后点击configure设置一些东西,来告诉synergy,你有几台电脑,各台电脑叫什么名字,各是什么ip地址, 各台电脑之间是什么位置关系,电脑A是在电脑B左边呢还是上面呢?这些都是要实现上面提到的功能所必须的信息。具体设置如下:
第一步:在Screens里面点击 “+”按钮,在弹出的对话框中的Screen Name后面填写左边这台电脑的名字(名字不知道?google下如何查看电脑的名字),然后点“OK”。类似再添加右边这台电脑。
第二步:点击下面的“new link”,在下面选择 the “left” of 你右边电脑的名字 goes to 你左边电脑的名字,然后点击下面的“+”以添加一个位置信息。以这个方法再添加一条: the ”right“ of 你左边电脑的名字 goes to 你右边电脑的名字。这样,人家synergy就知道了,电脑1在电脑2左边,电脑2在电脑1右边,他们是连在一起的,中间没有其他电脑了,如果少了一条位 置信息,会出现鼠标能从右边电脑进入左边电脑但不能从左边电脑进入右边电脑的情况。
第三步:点击“OK”离开配置界面。再点击AutoStart, 在弹出来的对话框中点击When Computer Start里面的按钮,按Close退出。
第四部:按Start开启服务器端的synergy服务,等待客户端来连接。
2. 服务器端是Linux系统Linux服务器端的配置有点复杂,要自己写一个配置文件synergy.conf,用于告诉synergy有哪些主机,各个主 机的位置关系等信息。并且如果要实现自动运行synergy,要修改三个文件,这三个文件在不同的发行版位置不同,名字大致差不多,比如:Ubuntu 中,这三个文件是:
/etc/gdm/Init/Default :登陆界面出现以前,系统加载的程序,我们要在这个文件里添加运行synergy的命令。
/etc/gdm/PostLogin/Default.sample : 定义了登录过程中要做的事情,这里我们要暂时关闭synergy服务。
/etc/gdm/PreSession/Default :定义了登录后加载的程序,这里我们要重新开启synergy服务。
Fedora一般是在/etc/X11/gdm
第一步,在当前用户目录下新建一个文件命名为:synergy.conf。打开,参考下面的例子,根据实际情况修改一下写入synergy.conf。
section: screens wisper-desktop: wisper2-desktop: end section: links wisper-desktop: left = wisper2-desktop wisper2-desktop: right = wisper-desktop end |
其中:wisper-desktop是右边电脑也即服务器端电脑的名字,wisper2-desktop是左边电脑的名字,如果你使用双系统,最好将两个系统的电脑名字都修改成一样。
第二步,修改/etc/gdm/Init/Default 和 /etc/gdm/PreSession/Default 在它们的最前面添加下面这三行:
/usr/bin/killall synergys sleep 1 /usr/bin/synergys –config synergy.conf |
第三步,在/etc/gdm/PostLogin/Default.sample 中添加下面2行
/usr/bin/killall synergys sleep 1 |
第四步,重启。
二、客户端
1. 客户端是windows
系统很简单,打开synergy,选上“Use another Computer‘keyboard and mouse (Client)”,接下来的操作同服务器端的第三步第四部。
1. 客户端是Linux系统
Linux下配置稍微复杂点,如果你已经配置好服务器端,你可以使用/usr/bin/synergyc –daemon 服务器端的IP 来使用,如果要实现出现登陆界面开始就自动启动这个功能,请参考服务器端的配置, 只需将
1. Init/default,以及PreSession/default里面的/usr/bin/synergys –config synergy.conf 修改为/usr/bin/synergyc –daemon 服务器端的IP ,/usr/bin/killall synergys修改为/usr/bin/killall synergyc
2./usr/bin/killall synergys 修改为/usr/bin/killall synergyc
synergyc --daemon serverip