在前一个帖子中有写了了在同一个网域里使用手机通过WiFi启动电脑的方法,但是却发现当我出去外面使用手机3G网络却启动失败的情况,回去仔细研究后才发现是NAT的问题。随后设了Port Forwarding 和 Static ARP才搞定。
问题来了,什么是NAT, Port Forwarding 和 Static ARP ?
Network address translation (NAT)
参考:
参考:
简单来说就是因为当初设计IPv4不够用,然后IPv6又迟迟无法普及的过度方案,为了满足互联网用户的成长而提供Public IP address与Private IP Address互相通讯的技术,有了这个技后大家都不用担心IP用光,从此抱着用不完的Private IP Address过着幸福快乐的日子…………
额……其实NAT不是万能的,是有很多缺陷的。其中一个问题是你要从其他网络直接使用Public IP address链接你家电脑时是无法链接的,别忘了你家还有其他手机,平板等等都是使用Private IP Address透过router NAT链接上网,而router默认只会允许从内部向外发起的通讯,而要是有其他设备从外面链接回来只会被挡着,而且router也不知道这个连线是要到哪一个设备。
有些人已经想到,只要事先告诉router凡是向router请求的某应用程序的要求直接转过来给我就行了呀。没错!这个就是Port Forwarding的功能。其实UPNP也能有类似的效果,只是要求电脑是最少要开着所以WOL就不适用了。
Port Forwarding 设定
目前家里正服役的是Dlink所以以Dlink为说明,其他牌子或型号可以参考一下网络上的资料或者产品说明书。
- 在你的browser上输入192.168.1.1(这是大多数 router预设地址,如果不懂的话请看看产品说明书)
- 输入Username , Password登入
- 到Advanced >> Port Forwarding >> 点击ADD
- 选择Custom Server 然后输入一个容易辨认的名字,输入你的电脑IP到Server IP Address 里,之后输入WOL预设Port号: 9 到External Port Start ,External Port End 和选择Protocal 为UDP
- 保存搞定。
可是设定好后还是不能用啊,原因好像是ARP的问题,之后花了很多时间去逛Dlink论坛用了把Server IP Address设为Broadcast或者是192.168.1.0都是不行,继续逛论坛直到找到了一位用户“bugs21”的做法
hi i found from another d-link forum another solution :
that works fine for my static ip address
1.connect to your modem with telnetwindows cmd console telnet 192.168.1.1 (IP of your modem)
2.Add a static ARP cache entryarp add <IP address> <MAC address> (static IP of your computer, MAC address of your network adapter)example: arp add 192.168.1.25 00:13:8F:DD:CF:63
(so when you login to dlink admin panel, Device info > ARP you will see address that you add)
port forwardingadvanced setup>wan>virtual serversserver ip address: 192.168.1.25UDP start/end = 9
That's all!
试了这个方法后果然能用了,之后试着使用Telnet去router检查arp table结果发现如果当电脑关机后由于不会有IP通讯,结果会在一段时间后被router从ARP Table 删除,如果使用这个方法就保存ARP直到重新restart router,而且这个功能能视乎不是每个dlink router支持而且就是同型号不同芯片都未必是相同的指令,所以还是买个支持WOL功能或者有Static ARP功能的router比较好。
