Total Pageviews

Thursday, 8 August 2013

PC上实现简单DDNS,然后远程控制父母的电脑


首先,注册提供API更新的某个DDNS服务账号,比如 DnsDynamic.org 的服务就蛮好的,免费且稳定,也有好多免费短的二级域名可以选择,提供的更新API也是https的,安全性也还OK。
其次,准备必备工具,DNSDynamic.org提供了简单的HTTP API,只需要发起一个GET请求就可以更新了,我首先想到的就是写一个脚本,然后通过wget发起请求,然后将这个脚本设置成计划任务,每次开机、定期执行就好了。
下载windows版本的wget程序,然后写一个批处理脚本(ddns.bat)如下:
@echo off
set myip=192.168.1.1
set username=xxxx@gmail.com
set passwd=myPASSword
set hostname=mydomain.dnsd.me
rem 如果作为普通用户计划任务执行的临时文件路径。(64位Windows7系统)
rem set getpath=%LOCALAPPDATA%\VirtualStore\Windows\SysWOW64
rem 如果作为超级管理员计划任务执行,临时文件路径。(64位Windows7系统)
set getpath=%windir%\SysWOW64
del /f %getpath%\index.html*
rem  通过访问特定网页得到当前外网IP。
wget http://myip.dnsdynamic.org/
rem 分析获取的页面,得到IP地址
for /f %%i in (%getpath%\index.html) do (set myip=%%i)
echo MYIP=%myip%
rem 发送请求,更新IP地址
wget –http-user=%username% –http-password=%passwd% –no-check-certificate “https://www.dnsdynamic.org/api/?hostname=%hostname%&myip=%myip%”
rem 备份日志到dropbox,通过云同步,可以随时查看。
copy %getpath%\index.html@* E:\Cloud\Dropbox\Phone\ddns_log\

接下来就设置计划任务了,这个比较简单,在Win7中找到:
“开始→控制面板→系统和安全→管理工具→任务计划” ,添加一个任务就OK了,设置触器是 “用户登录”,附加条件是 “网络已连接”,然后执行ddns.bat 程序就OK了。
这么一折腾,只要老爸一开机,我就知道我爸电脑的IP地址了,设置一个端口转发后再安装一个VNC服务器,我就可以主动控制老家里面的电脑了。
---------------------------------

他们可能会在遇到问题的时候打电话给我求助,可是我看不到他们的界面,这里我想到了QQ远程桌面,可惜的是QQ远程桌面需要对方发起连接,这对于我妈来说还行,可是我爸连QQ都没玩会的我想难度还是太大了,其次我想到了Windows的远程桌面,可惜的是Windows远程桌面连上了之后,对方电脑桌面会被注销,他们看不到我的操作,也不行。然后我想到了VNC,VNC似乎满足我的要求,在爸妈的电脑上安装一个VNC服务器随机启动,然后设置DDNS和端口转发就搞定了。
首先是设置DDNS,方法见上文:PC上实现简单DDNS
然后,安装VNC服务器,我用的是RealVNC,配置一下用户名、密码就好了
最后,设置路由器端口转发,添加外网5900到内网某个静态IP地址5900端口的转发
这么一折腾,我在外地,只要我爸一开机,我就可以通过电脑上的VNC Viewer给他们建立连接,然后他们什么都不用做,啥复杂操作都可以由我来完成,比如QQ视频啊,给老爸老妈手机里下载音乐啊等等