一、先描述下我的环境:
1.我的pc机是通过局域网入网的;
2.我在开发板上移植了小型web服务器boa;
二、我想要实现的功能:
1.我想申请一个网络域名;
2.实现只要在能上网的地方都能登录我的开发板上web页面;
三、解决问题的原理
1.首先要来了解不同局域网能pc机通信的流程,即pc机发出的数据包是怎么找到对方的?
这里要分两种情况来讨论:
第一种情况:我们向web服务器发送数据包,然后服务器给我们回数据包。
这种情况下,当我们发送的数据包经过路由器,路由已经在一张hash表中记录下了src地址,src端口,dest地址,dest端口,当服务器给我们回数据包时,路由器通过这张hash表就可以找到我们pc机在这个局域网中的地址,和端口;这样广域网的服务器就可以我们这个局域网中的pc机通信了;
第二种情况:当我们在外网中输入域名(或者局域网对外ip),它是怎么找到我们局域网中的web服务器了?
当我们在外网中的某台pc机上输入域名时,首先通过域名解析找到我们所在局域网的ip地址,此时,我们要设置好路由的端口映射.)什么时端口映射了? 比如大家都知道web服务的端口号是80,如果我们设置路由的80端口映射到局网中的某个ip,当路由接收到web请求时,路由就不会处理这个数据包,直接把它转发到我们映射的ip机上去处理;)设置好路由端口映射后,外网就可以访问我们的web网站了;
四、整体实现步骤:
1.移植boa服务器到我的开发板上,然后制作网站,并使在局域网内能正常访问服务器网站;
2.申请动态域名,可以去3322和花生壳网站去申请
3.设置路由的端口映射,使路由的80端口映射到我的开发板ip地址上;
4.在局域网中的随便一台上运行花生壳客户端程序,实现地址的域名解析;
5.最好能把域名解析移植到开发板上,这个比较难实现;