CentOS下安裝synergy

synergy是一款不用任何硬件就可以使多臺計算機共享一套鍵盤和鼠標,這個工具用起來非常方便,對於要使用多臺計算機工作的程序緣來說,可謂是個福利。

對於許多Linux新手而言,安裝成功一個軟件併成功運行,是非常耗費時間和精力的,我今天安裝synergy並實在CentOS和Win7之間現鍵盤和鼠標的共享,花費了一個下午的時間,因此在這裏寫下這篇總結,以供其他CentOS新手參考和自己以後的溫習使用。

在具體說明如何安裝synergy之前,先說一下這款軟件的幾個專用詞語:服務器端(鍵盤和鼠標的宿主機器),客戶端(要共享服務器端鍵盤和鼠標的機器),Screen Name (屏幕名稱,每一個名稱代表一個主機)。

安裝步驟:

(1)在官網http://synergy-foss.org/download/下載synergy rpm軟件包,進行CentOS安裝,我下載了一個1.4版本的,但是使用命令rpm -ivh synergy.rpm的時候提示libcurl.so.4依賴錯誤,沒有找到libcurl.so,但是我find了一下,在目錄/usr/lib中確實有libcurl.so.4,於是我把/usr/lib下的libcurl.so.4 copy到rpm安裝包所在的目錄,繼續安裝,但是仍然不行,提示錯誤:

error: Failed dependencies:
    libcurl.so.4(CURL_OPENSSL_3) is needed by synergy-1.4.16-1.i386

我認爲是軟件包找不到libcurl.so.4,於是我又把libcurl.so.4複製到/lib下,繼續安裝,仍然提示上面的錯誤,Google了很久依然沒有找到答案,我真不知道該怎麼辦了,於是想還是算了,跑到CentOS自帶的添加/刪除軟件功能上安裝了一個synergy 1.3.6版本的,安裝的synergy的可執行文件在/usr/bin裏面,使用命令ll | grep synergy就可以看到有兩個文件,一個是synergyc客戶端運行程序,另一個是synergys服務器端運行程序,如果想要讓CentOS作爲客戶端,就運行/usr/bin/synergyc server-ip,如果CentOS作爲服務器端,就與行/usr/bin/synergys -f --config configfile,其中-f是指在前臺運行,也就是一直在命令行中顯示運行,這裏也可以使用--daemon選項使得該程序作爲服務運行,服務就是在後臺運行。關於更多命令的選項可以使用--help來查看。

(2)修改配置文件,使用/usr/bin/synergys --help命令可以看到,此軟件的配置文件一般在用戶的主文件夾下的.synergy.conf,即~/.synergy.conf,或者是在/etc文件夾下的synergy.conf,注意在用戶主文件夾下的帶有".",而在/etc文件夾下的沒有".",這個估計是尊重了Linux的習慣吧,我看一般的在用戶主文件夾中的配置文件都加上了".",例如.bashrc之類的,而/etc本來就是放置配置文件的地方,因此也不用加什麼"."用戶也知道里面都是配置文件,以上這些屬於個人猜測,對不對也不知道。

訪問/usr/share/doc/synergy1.3.6下示例配置文件synergy-basic.conf可以看到,在配置文件中有三部分。

第一個部分是screens,也就是前面說的screen name,隨便起名,例如我起了centos:和win7:這兩個名字,注意冒號。兩個名字之間用換行隔開,第一個是服務端的名字,第二個是客戶端的名字。內容如下:

section: screens
    centos:
    win7:
end

第二個部分是links,其實就是兩臺機器的位置關係,有上下左右四個位置。首先對於centos來說,左邊是win7。而對於win7來說,右邊是centos,因此,此部分內容如下:

section: links
    centos:
        left  = win7
    win7:
        right = centos
end

第三部分是aliases(別名),這個別名就和第一部分的screens對上號了,我們在screen中隨便起了個名字,以方便我們的記憶,但是要讓synergy識別服務器端和客戶端的主機名hostname,這裏的別名就是要將centos對應centos的hostname,win7對應計算機名,我的配置文件的內容如下,其中centos的hostname爲linux.zl,而win7的計算機名爲zl-PC。在這裏我想說,win7的別名也可以命名爲主機的ip地址,但是centos必須是主機名,要不然會報類似這樣的錯誤unknown screen name `linux.zl',對於這一點我也不知到爲什麼。

section:aliases
    centos:
        linux.zl
    win7:
        zl-PC
end

(3)啓動服務器端,運行/usr/bin/synergys -f(--daemon) --config ~/.synergy.conf,然後使用ps -aux | grep synergy查看是否有此進程。若有,則啓動成功,否則,失敗。

(4)在官網下載win7版本的安裝文件.exe文件,然後安裝。選擇client選項,配置服務器端的主機host name,一般都是用ip地址,然後點擊option下的advanced按鈕,配置此計算機的Screen Name,這裏的Screen Name要與服務器端的配置文件中客戶端的Screens中的一樣,我的是win7,要不然,無法訪問。然後點擊test按鈕測試一下,若成功,會出現NOTE:connected to server. 否則配置失敗。

PS1: 以上過程都正確的情況下,有可能win7中的程序總是出現Failed to connect ip的字樣,這是由於centos的防火牆處於打開狀態,並且synergy這個軟件默認使用的端口24800並未在防火牆的規則之中,這種情況可以使用以下兩種方法解決(就是這個問題困擾了我一個下午):

(1)推薦方法--->可以配置/etc/sysconfig/iptables文件,加上一行-A INPUT -m state --state NEW -m tcp -p tcp --dport 24800 -j ACCEPT,表示外部可以訪問此端口。然後重啓防火牆

/etc/init.d/iptables restart

(2)運行/etc/init.d/iptables stop(off)關閉防火牆,其中off爲永久關閉,不推薦。

PS2:參考資料

防火牆操作實例:http://blog.csdn.net/jemlee2002/article/details/7042991

win7作爲服務器端,centos作爲客戶端。http://hi.baidu.com/iielwknvcgblmne/item/5ea2114eee688d0ec01613db

http://www.blogbus.com/harmony-logs/16919739.html

http://www.whypc.info/2010/04/a_keyboard_and_mouse-synergy/


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章