在某些幸运的工作或学习环境中,你的电脑会直接获得外网IP,即cmd里输入ipconfig看到的IP和测IP网站显示的IP是一样的。这种情况下,如果你在异地,知道你知道自己电脑的IP,就可以远程访问你的电脑。本文介绍如何访问外网电脑及相关的配置,操作系统为Windows。
场景
假设我家在北京,我要去广州出差一个星期。我家的电脑保存了大多数数据,我想要在我出差的时候依旧可以访问这些数据。我也不知道我到底会需要哪些数据,所以我不想预先用U盘把需要的数据拷走。
解决方案
报告IP
首先下载报告IP项目。这个项目可以编译为应用程序,一运行它,它就会把本机IP发送到你指定的电子邮箱。请注意,这不是应用程序,而是C#代码。我没有精力将它修改成通用的格式,所以读者需要自行修改和编辑。要修改的部分我用红笔圈出来了。
然后,我们需要让报告IP.exe在开机、休眠唤醒、睡眠唤醒的时候运行。这时候用到计划任务程序。
新建一个任务,安全选项:不管用户是否登录都要运行。触发器有两个:
我这里延迟任务3分钟,因为刚开机就报告IP的话,可能IP还没有获取到。操作就是启动报告IP.exe。这个报告IP任务的导出文件可以在此下载。注意,直接导入任务必然出错!因为你没有我所用的帐户,而且报告IP.exe路径也不一样。
实验显示你的账户可以受密码保护,可以不自动登录。报告IP任务照样可以运行。
远程连接
我们使用Windows远程桌面。登录你的邮箱查看电脑的IP地址,然后远程桌面登录这个IP。远程连接中,开始菜单里没有关机、休眠等按钮。打开cmd,要关机,输入shutdown/s;要休眠,输入shutdown/h。
在休眠启用时,似乎无法进行远程睡眠。
自动开关机
在我的出差场景中,我白天去上班,晚上去东莞,所以在晚上把我家的电脑关闭既省电又保护电脑。
自动开机大约有两种方法,一是通过网络唤醒,二是主板定时唤醒。网络唤醒要求网卡持续供电,一般的做法是外网IP给路由器,主机再接路由器。但是,由于外网IP给路由器了,主机变成在局域网里了,前面的报告IP程序无效。所以,如果你是跟着我走的,应该用定时唤醒法。定时唤醒要求主板或BIOS支持。
自动关机或休眠好办得多。在Windows的电源选项里,设置空闲多少分钟就关机或休眠。
在我的出差场景中,可以设置白天10点开机,2小时不活动就休眠。所以如果要存取文件,就要趁这个时间段存取。当然,远程登录之后,空闲计时就重置了,我可以11点连接过去,然后一直连接到下午5点。
睡眠及唤醒
由于远程登录时下睡眠指令不方便,睡眠问题在这里分另一节介绍。比如我在北京公司上班时也想访问家里的电脑,这该怎么办呢?从家开车到公司半个小时,我想让电脑睡眠休息一下,等我到了公司它再自己醒过来。当然也可以用主板定时开机法,不过这就要重启电脑了,对于临时的休息和唤醒不方便。
睡眠很简单,只要开始菜单里按睡眠按钮就行了。我们需要一个“唤醒任务”来唤醒计算机。
在控制面板里打开计划任务程序,随便建一个任务,设置运行时间为你要计算机醒来的时间,在条件选项夹里勾选“唤醒计算机运行此任务”。这样,每次你要计算机从睡眠中定时醒来,只要修改这个任务的运行时间就行了。相对方便一点。
注意,自Windows Vista开始,由任务触发的唤醒(称为无人唤醒)会有空闲计时,默认为两分钟,就是说任务唤醒计算机后,如果用户没有在两分钟内操作计算机(比如远程登录),计算机又会“睡回去”。
在Vista里,可以在电源选项里修改这个时间。(我手头没Vista,所以给不出更多的说明。另可见最后的参考资料,有英文图和说明)在7,在注册表里定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\7bc4a2f9-d8fc-4469-b07b-33eb785aaca0\DefaultPowerSchemeValues
,将ACSettingIndex
设置成你想要的无人唤醒最长的空闲时长,单位为分钟。
爱让一切都对了
2014年3月4日
本文依照知识共享-署名-相同方式共享3.0协议发布