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服务来改进这个功能。
安全、便捷的Web启动方式
如果Linux中已经安装了Apache和PHP,就可以通过配置Apache和编写PHP脚本来实现更安全地远程启动。
1.编写PHP脚本
在Apache的DocumentRoot下面建立一个wakeup目录,在这个目录下建立index.php文件,内容如下:
<?
passthru("/usr/local/bin/wakelan 00:0a:e6:a9:64:a2");
echo "计算机platinum正在启动 . . .";
?>
现在,只要在浏览器中输入一个网址(事先在Apache中设置好的),比如,http://platinum.3322.org/wakup,就可以实现远程启动了。这样虽然很方便,但是任何人都可以访问,还是不安全,需要添加Apache认证来解决这个问题。
