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