目前,通過VPN來實(shí)現(xiàn)遠(yuǎn)程辦公是比較常見的方法。該方法的不足之處主要有兩點(diǎn):第一,若要保證VPN用戶隨時(shí)訪問內(nèi)網(wǎng),內(nèi)網(wǎng)的計(jì)算機(jī)必須長時(shí)間保持開機(jī)狀態(tài),造成大量資源的浪費(fèi);第二,用戶連入VPN之后,只能把遠(yuǎn)程計(jì)算機(jī)當(dāng)成網(wǎng)絡(luò)鄰居中的一員來互傳資料。 利用Linux實(shí)現(xiàn)遠(yuǎn)程辦公可以彌補(bǔ)VPN方式的以上兩點(diǎn)不足:可以實(shí)現(xiàn)按需開機(jī);可以直接控制和監(jiān)測遠(yuǎn)程計(jì)算機(jī),以及遠(yuǎn)程計(jì)算機(jī)的桌面。此方法中Linux服務(wù)器必須是連接在公網(wǎng)上的一臺(tái)機(jī)器,它“扮演”了網(wǎng)關(guān)和防火墻的角色,并且負(fù)責(zé)喚醒內(nèi)網(wǎng)的計(jì)算機(jī)。
環(huán)境配置
1.安裝wakelan軟件
wakelan是Linux下的一款遠(yuǎn)程喚醒程序,能喚醒與Linux服務(wù)器相連的計(jì)算機(jī),并且其網(wǎng)卡MAC地址為指定地址。命令格式是“wakelan MAC地址”。
wakelan的安裝方法如下:
#tar wakelan-1.1.tar.gz#cd wakelan-1.1#./configure#make#make install
|
2.添加廣播路由
在此實(shí)際工作環(huán)境中,局域網(wǎng)內(nèi)的機(jī)器都通過交換機(jī)連在Linux服務(wù)器的eth1網(wǎng)卡上。Linux服務(wù)器要對整個(gè)局域網(wǎng)進(jìn)行廣播,需要添加以下一條路由:
#route add -host 255.255.255.255 -dev eth1
|
把上面這條路由添加到/etc/rc.local中,即使Linux服務(wù)器重新啟動(dòng),也可以自動(dòng)添加該路由。
3.配置DHCP
在DHCP的配置文件/etc/dhcpd.conf中指定內(nèi)網(wǎng)Windows機(jī)器的IP地址、域服務(wù)器地址、域名、網(wǎng)關(guān)、DNS服務(wù)器等信息,使其啟動(dòng)后可以自動(dòng)獲取指定的IP。當(dāng)然,如果每臺(tái)計(jì)算機(jī)上都有固定的IP地址,則配置DHCP服務(wù)的過程可以忽略。
/etc/dhcpd.conf中配置的內(nèi)容如下:
ddns-update-style ad-hoc;max-lease-time -1;default-lease-time -1;option subnet-mask 255.255.255.0;option broadcast-address 255.255.255.255;option routers 192.168.0.1;option domain-name-servers 192.168.0.1;option domain-name "home.net.cn";subnet 192.168.0.0 netmask 255.255.255.0 {range 192.168.0.11 192.168.0.100;host platinum {hardware ethernet 00:0a:e6:a9:64:a2;fixed-address 192.168.0.2;}}
|
上面的配置中,對名為“platinum”的PC做了指定MAC的IP分配,固定platinum的IP地址為192.168.0.2,如有其它機(jī)器,也做類似設(shè)置即可。
用命令“/etc/rc.d/init.dhcpd start”啟動(dòng)DHCP服務(wù),使DHCP可以正常運(yùn)行。
4.配置iptables,設(shè)置DNAT功能
DNAT功能可以將訪問Linux網(wǎng)關(guān)特定端口的所有連接請求都轉(zhuǎn)到內(nèi)網(wǎng)指定機(jī)器的相應(yīng)端口上(內(nèi)網(wǎng)用戶的連接請求除外)。
舉例如下:
#iptables -A PREROUTING -t nat -p tcp -s ! 192.168.0.0/24 --dport 4899
-j DNAT --to 192.168.0.2:4899
|
上例這條命令中,把訪問Linux網(wǎng)關(guān)4899端口的所有連接請求都轉(zhuǎn)到IP為192.168.0.2的機(jī)器的4899端口上。4899是遠(yuǎn)程控制程序Radmin的默認(rèn)服務(wù)端口。可以把這條命令添加到文件/etc/rc.local里,使Linux啟動(dòng)就自帶這個(gè)功能。用戶也可以寫一個(gè)實(shí)現(xiàn)同樣功能的Firewall腳本,放在/etc/rc.local里執(zhí)行。
5.在內(nèi)網(wǎng)Windows上安裝遠(yuǎn)程控制軟件
常用的遠(yuǎn)程控制軟件有pcAnywhere、Radmin等,用戶可以根據(jù)自己的喜好安裝其中一個(gè),本人使用的是Radmin。用來遠(yuǎn)程辦公的計(jì)算機(jī)和受控制的計(jì)算機(jī)都必須安裝這個(gè)軟件,不同的是被控端除了安裝這個(gè)軟件以外,還需要啟動(dòng)服務(wù)端程序。
6.遠(yuǎn)程喚醒內(nèi)網(wǎng)機(jī)器
遠(yuǎn)程啟動(dòng)的前提是Windows機(jī)器支持網(wǎng)卡喚醒,并且BIOS的設(shè)置要符合網(wǎng)卡喚醒標(biāo)準(zhǔn)。在任何能上網(wǎng)的地方用SSH方式登錄到Linux機(jī)器,執(zhí)行遠(yuǎn)程喚醒命令:
#wakelan 00:0a:e6:a9:64:a2
|
如果電腦啟動(dòng)了,則證明前面的配置成功。要遠(yuǎn)程登錄,用戶還必須記住一堆難記的MAC地址,這是很麻煩的,而且不安全。我們可以通過Web服務(wù)來改進(jìn)這個(gè)功能。