闲扯下背景和自己遇到的坑:
当前租住的房子和房东合住,屋子里面没有布网线,房东只提供一个WIFI密码给我,而且不幸的是Modem所在的位置离我所在的卧室最远。
日常使用的时候,信号很不稳定,一天断个两三次是很正常的,但我的工作是远程支持,必须要维持稳定的网络。
其次,现在的客厅很小,根本没地方直接摆放Gen8,所以只能放在卧室里面,难道需要买个无线网卡才能使用?
最开始用闲置的WRT310N放到客厅最靠近Modem的地方来扩展信号,这东西太老了,只支持2.4G的无线,而且时不时网络就会出现短暂的停顿。
京东搞活动的时候入了R8500,买的时候想着桥接模式下面一个5G信号扩展Modem信号,另一个5G提供DHCP给自己的设备使用,结果到手后发现启用桥接模式后别说DHCP,连无线客户端都不能用了,当时真是相当失望(后面发现可能DD-WRT固件可以实现我的要求,不过我一般很少使用DD-WRT固件),没办法WRT310N继续和Modem相连,R8500和WRT310N相连,然后R8500提供DHCP和无线给我其他的设备使用。
这时候我发现一个很奇怪的问题,就是笔记本虽然5G信号显示四五百兆的连接速度,但是不够稳定,偶尔降低到几十兆去了,这不影响工作,但是客厅的小米盒子看个1080P能卡的让人怀疑人生。
调整AC7260的设置参数,用处不大,感觉是不是需要再搞个路由器放到卧室,这样笔记本和Gen8直接用有线连接,然后副路由器桥接到主路由器。
等到京东又搞活动,领到了打折券,然后八百多又入了一个R8500,顺便拉低了第一个路由器的购买价格,到手后直接启用桥接模式,用5G2和客厅的主路由器5G2桥接,桥接后速度基本在1G左右,然后在客厅实测大文件传输,笔记本和Gen8都能达到70-80M左右,从此看片不再卡顿了。
由于WRT310N只支持2.4G的网络,虽然房东的网络是100/20M的,然而到了我这边只有50/20了,于是299买了个官翻EX6200。这玩意也是坑货,号称可以扩展2.4G和5G信号,但是这种情况下非常不稳定,我折腾了好几天最后发现启用FastLane功能后稳定了,可是FastLane相当于只扩展一个信号了,于是EX6200连接Modem的5G信号,主R8500连接EX6200,从EX6200可以观察到5G的连接速度稳定在450M以上,实测网速在100/20M了。
说回正题的UPnP问题解决。
Modem那里已经包含了一层NAT,经过我的主R8500路由器的时候,又加了一层NAT,所以是常见的双重NAT,这种情况下我发现虽然uTorrent右下角时不时变成绿色,但是Transmission的端口测试从来都是失败的,我用网页从外部测试端口,也都是失败的,可以肯定外部是访问不了UT和TR的端口的。
然后Modem的UPnP功能是启用了的,如果我直接连接到Modem,端口测试没有问题。
R8500的UPnP也是启用了的,我可以观察到自动产生的端口映射。
所以结论是UPnP只在一个子网(一个广播域?)内有效,R8500不会把自己映射的端口规则重新发送到上一层网络。
听说其他固件提供了类似把UPnP向上层网络转发的功能?
一开始遇到这个问题的时候,折腾了很久,无解。
前几天想到UPnP肯定也是遵守一定的规则来设定端口映射的,查了两三天,终于解决。
具体原理不提(细节我也还没弄得非常明白),这里使用程序MiniUPnPc解决。
修改的时候在Windows和Linux交叉进行了操作,实际上下载一个平台的文件就行。
具体的步骤可以说是很简单:
1. 直接连接到Modem,查看UPnP设备描述符
E:\Downloads\upnpc-exe-win32-20150918>upnpc-static.exe -l
upnpc : miniupnpc library test client, version 1.9.
(c) 2005-2014 Thomas Bernard.
Go to http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
for more information.
List of UPNP devices found on the network :
desc: http://192.168.1.254:37215/upnpdev.xml
st: urn:schemas-upnp-org:device:InternetGatewayDevice:1
desc: http://192.168.1.250:5000/Public_UPNP_gatedesc.xml
st: urn:schemas-upnp-org:device:InternetGatewayDevice:1
Found valid IGD : http://192.168.1.254:37215/ctrlu/WANPPPConnection_1
Local LAN ip address : 192.168.1.71
Connection Type : IP_Routed
Status : Connected, uptime=843929s, LastConnectionError : ERROR_NONE
这里主要注意两行:
Found valid IGD这一行,这里表明了Modem的IP地址
根据IP地址,找到上面的UPnP设备描述URL: http://192.168.1.254:37215/upnpdev.xml
这个URL是我们需要的,端口映射是通过访问这个网址实现的。
因为这个网址在第二层NAT之后,仍然可以访问,所以我们可以进行设定。
2. 正常连接网络,获取主R8500的外部IP地址
E:\Downloads\upnpc-exe-win32-20150918>upnpc-static.exe -l
upnpc : miniupnpc library test client, version 1.9.
(c) 2005-2014 Thomas Bernard.
Go to http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
for more information.
List of UPNP devices found on the network :
desc: http://192.168.13.250:5000/Public_UPNP_gatedesc.xml
st: urn:schemas-upnp-org:device:InternetGatewayDevice:1
Found valid IGD : http://192.168.13.250:5000/Public_UPNP_C3
Local LAN ip address : 192.168.13.21
Connection Type : IP_Routed
Status : Connected, uptime=1284666s, LastConnectionError : ERROR_NONE
Time started : Sat Feb 10 19:08:14 2018
MaxBitRateDown : 100000000 bps (100.0 Mbps) MaxBitRateUp 100000000 bps (100.0 Mbps)
ExternalIPAddress = 192.168.1.128
i protocol exPort->inAddr:inPort description remoteHost leaseTime
0 UDP 51331->192.168.13.21:51331 'Teredo 192.168.13.21:51331->51331 UDP' '' 0
1 TCP 52255->192.168.13.252:52255 'Transmission at 52255' '' 0
2 UDP 52255->192.168.13.252:52255 'Transmission at 52255' '' 0
GetGenericPortMappingEntry() returned 713 (SpecifiedArrayIndexInvalid)
这里只需要关注一行: ExternalIPAddress = 192.168.1.128
这个地址从路由器的状态界面也可以获取,但是通过命令的方式获取意味着后面可以自动化这些设置。
3. miniupnpc支持-u选项来指定UPnP设备的URL,从而直接操作指定的设备
[email protected]:/home/neilzh/miniupnpc-2.0# upnpc -u "http://192.168.1.254:37215/upnpdev.xml" -a 192.168.1.128 51155 51155 UDP
upnpc : miniupnpc library test client, version 2.0.
(c) 2005-2016 Thomas Bernard.
Go to http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
for more information.
Found valid IGD : http://192.168.1.254:37215/ctrlu/WANPPPConnection_1
Local LAN ip address : 192.168.13.40
ExternalIPAddress = 125.2XX.52.1XX
InternalIP:Port = 192.168.1.128:51155
external 125.2XX.52.1XX:51155 UDP is redirected to internal 192.168.1.128:51155 (duration=0)
4. 删除的时候需要指定端口和协议
E:\Downloads\upnpc-exe-win32-20150918>upnpc-static.exe -d 52255 TCP (这是当时连接Modem时进行的测试,如果正常网络连接下,需要指定-u选项)
upnpc : miniupnpc library test client, version 1.9.
(c) 2005-2014 Thomas Bernard.
Go to http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
for more information.
List of UPNP devices found on the network :
desc: http://192.168.1.250:5000/Public_UPNP_gatedesc.xml
st: urn:schemas-upnp-org:device:InternetGatewayDevice:1
desc: http://192.168.1.254:37215/upnpdev.xml
st: urn:schemas-upnp-org:device:InternetGatewayDevice:1
Found valid IGD : http://192.168.1.254:37215/ctrlu/WANPPPConnection_1
Local LAN ip address : 192.168.1.71
UPNP_DeletePortMapping() returned : 0
5. 再次测试端口
Transmission Remote GUI v5.14.png (31.68 KB, 下载次数: 0)
这个问题困扰很长时间,至此初步解决,通过上面的命令输出,可以写成脚本来检测当分配的IP变化时,自动删除和添加新的映射关系。
写出来给也许有类似困扰的朋友参考下。
评论
我觉得楼主可以把你牛逼路由借给房东做主路由
评论
虽然看不懂,收藏了
评论
为啥不用UBNT 或直接电力猫
评论
用电力猫稳定多了
评论
我就想问,折腾了这么久为什么不自己拉条网线? 直接不走房间,让电信的给你走窗户进也行呀。。。
评论
那么多廉价k2、k2p很好用。。。
评论
太复杂了没看懂
评论
多层NAT必须用静态映射,每一层都要手工配置
哪里有路由器还能代你子网里客户机去上层映射的
评论
多层NAT确实没很好的办法,除非固件有类似的功能
评论
回LS几位朋友:
有一次我问房东房间内能不能钉个钉子,答曰最好不要,所以不想改动房间的任何东西,而且我自己也不想走网线嫌走线麻烦。
Microserver Gen8有三个网口,其中两个还要实现负载均衡,电力猫好像做不到,而且我有朋友用过,感觉不是太满意。 电路 电子 维修 我现在把定影部分拆出来了。想换下滚,因为卡纸。但是我发现灯管挡住了。拆不了。不会拆。论坛里的高手拆解过吗? 评论 认真看,认真瞧。果然有收 电路 电子 维修 求创维42c08RD电路图 评论 电视的图纸很少见 评论 电视的图纸很少见 评论 创维的图纸你要说 版号,不然无能为力 评论 板号5800-p42ALM-0050 168P-P42CLM-01
·日本中文新闻 唐田绘里香为新剧《极恶女王》剃光头 展现演员决心
·日本中文新闻 真子小室夫妇新居引发隐私担忧
·日本中文新闻 前AKB48成员柏木由纪与搞笑艺人交往曝光
·日本学校 {日本国际学校}梅田インターナショナルスクール
·日本学校 LINE:sm287 陳雨菲、20歳、台湾からの留学生、東京に来たばかり
·日本留学生活 出售平成22年走行48000km 代步小车
·日本华人网络交流 円相場 一時1ドル=140円台まで上昇?
·日本华人网络交流 问日本华人一个问题
·日本旅游代购 富山接机
·生活百科 英国转澳大利亚转换插头
·汽车 【求助】修车遇到困难怎么办?