ER系列路由器配置uPnP提高迅雷和NAS的效率

很多童鞋在坛子里和群里多次提及迅雷下载速度低、NAS里Transmission显示PT不可连接或LowID.

这里我总结了一下以往童鞋们踩过的坑:

  1. 使用uPnP1协议,很多设备并不支持或支持得不咋样,比如迅雷、渣渣晖,所以必须要开uPnP2协议;
  2. 前期用了uPnP1后发现不咋地,又去开了uPnP2,但是未关闭uPnP1,造成冲突;
  3. uPnP是有严格端口配置的,需要配置到正确的端口上才会起作用;

那么上述问题都有了,解决之道也就出来了:

configure
delete service upnp
set service upnp2 listen-on switch0
set service upnp2 wan eth0
set service upnp2 nat-pmp enable
set service upnp2 secure-mode enable
commit;save;exit

上述的命令行集再敷述一下缘由:

  • configure :进入配置模式「很多小朋友搬抄配置的时候漏了这个,导致没在配置模式下输入命令当然得到的都是些无此命令……」

  • delete service upnp :关闭uPnP1协议,因为uPnP1和uPnP2同时开启是有冲突的,因此需要关闭uPnP1;

  • set service upnp2 listen-on switch0:在switch0端口上侦听uPnP2的请求,如果是ER3L需要调整到对应的LAN端口上「类似eth1或eht2」;

  • set service upnp2 wan eth0 :指定uPnP2的出口路由在eth0上,如果童鞋们是PPPoE拨号的,那么请把最后的eht0换成你配置里拨号的那个端口,一般是pppoe0或pppoe1;

  • set service upnp2 nat-pmp enable :开启NAT-PMP协议功能;

  • set service upnp2 secure-mode enable :开启安全模式;「好像听说内网多人玩星际战甲会有提示端口被占用的问题,家里没这个问题吧 :stuck_out_tongue:

  • commit;save;exit :这个还要解释嚒?不过还是有很多童鞋设置完成后抱怨说重启就要重新配置啥的,所以“提交、保存、退出”这素质三连还是必要的 :bangbang:

7赞

这个教程USG可用吗?

要做脚本……看你动手能力了……
编辑config.gateway.json文件:

{
	"service": {
		"upnp2": {
			"listen-on": [
				"eth1"
			],
			"nat-pmp": "enable",
			"secure-mode": "enable",
			"wan": "eth0"
		}

	}
}

这样就算是成功开启了吗? json文件放到UCK里面

在确认uPnP1关闭的情况下,可以用命令行show upnp2 rules 查询当前uPnP2注册的条目状态
*此命令并不适用于UPnP1
ECHO eg.

Firewall pin holes
pkts bytes target     prot opt in     out     source               destination    
0     0    ACCEPT     udp  --  *      *       0.0.0.0/0            192.168.1.X          udp dpt:xxxxx
NAT port forwards 
pkts bytes target     prot opt in     out     source               destination    
0     0    DNAT       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:xxxxx to:192.168.1.X:xxxxx 
pkts bytes target     prot opt in     out     source               destination

如果觉得不对需要刷新,可以用clear connection-tracking来清空当前有效条目,以期后端设备再注册出新条目;

注: uPnP的条目不会自动更新「协议规定使然」,因此你的后端设备和前端公网IP的更替都会影响条目的实际有效性,也不允许抢占已有的条目。「eg.Transmission终端换了一个同LAN段的其他IP上线,仍旧申请原来的端口号,此时因Transmission终端用前次的IP申请的条目还存在,因此新申请被拒绝

用脚本开启跟在控制器开启有什么区别?控制器里的uPnP是1还是2?

暂时在AC的UI界面上并没有明确uPnP1和uPnP2的差异,因此应该配置出来的是uPnP1……

具体没有测试和验证过,无法给你明确化的答案,也希望你测试后给大家一个参考 :grinning:

半年后10月18日补充说明:

基于USG3「Ver.4.4.51」和AC控制器「Ver.6.0.28」版本下做了uPnP功能配置检验:


这样配置后,在内部的实际配置中可以看到生成的是uPnP2,应该可以对应你的问题解释了:

 "service": {
         "upnp2": {
                        "listen-on": [
                                "eth1"
                        ],
                        "nat-pmp": "enable",
                        "secure-mode": "enable",
                        "wan": "pppoe0"
                }
        }, 

可见在这个版本环境下,利用UI界面配置出来的已经缺省是uPnP2的了,而且未搜索到有uPnP1的配置。加粗示例

必须支持下,近期准备入放弱电箱,主要是玩PS4关心NAT能力吧,转发这东西太重要了

也就是说要提高迅雷NAS的效率,还得关闭upnp1才行了?

主要是迅雷客户端对uPnP1的支持不佳,为了防止迅雷的客户端傻乎乎的去注册uPnP1……因此需要先禁止uPnP1后,再开启uPnP2。

原来是这样~~~了解了,谢谢。

这个操作er-4可以一样输进去设置吗,还是要输不一样的命令?

@blakejoke
7楼已经有正面答复和验证了…… :sweat_smile:

如果配置了load-balance,这里wan怎么设置呢