MikroTik RouterOS DDNS Transmission 群晖 端口映射解决PT没有上传

本来认为设置群晖的DDNS后就是MikroTik RouterOS中的UPnP或者端口映射的事了,我的路由器RB750Gr3 没有改变过配置,所以根据 Mikrotik RB750Gr3 拨号上网 附PT站设置分享率和上传这篇文章的设置下,我没有设置DDNS的时候上传是没有问题的。

后来明白只要设置了UPnP,就不要动端口映射,而设置了端口映射就不要设置UPnP了,这种是有优先级会起冲突的,中间还有上不了网的经历,所以在我经过多次恢复默认配置,再快速配置后终于完成了操作了我想要的结果。

首先使用“winbox.exe”来连接我们的路由,这个就不说了,我们点击左上角的“Quick Set”也就是快速设置来设置ADSL拨号上网,你如果也使用的是ROS那么你最好跟我一样设置,这样只是能保证你肯定没有问题。

我的IP段之所以是192.168.110开头,完全是因为我以前给HG8347刷原版华为系统的原因,后来也一直没改,没有特殊需要的话,你也不要改了,如果跟上图一样还是上不了网,此时你禁用以下你的本地连接再启用就没事了。

接下来设置端口映射,以群晖的“5000”端口为例,在ROS中的最左边找到“IP”→→“Firewall”→→“NAT”→→“➕”,其中“Chain”设为dstnat,“Protocol”设为6(tcp),“Dst.Port”设为5000,“Action”设为dst-nat,“To Address”上面的192.168.110.249是我群晖地址,你需要改成你自己的群晖地址,“To Ports”设为5000。按照上面填写,最后点OK。

我们还需要设置Transmission 的“9091”端口和Transmission 的分享上传端口“51413”,只不过“51413端口”还需要设置一个UDP协议,其实和上图的区别只有一个,只需在“Protocol”那里选择UDP就行了。

我们都是ADSL PPPoE 拨号动态获取IP地址,所以会有一条srcnat策略,Action设置为“masquerade”,修改这条srcnat策略,“Out.Interface”设为!LAN。

创建一条srcnat策略,其中“Chain”设为srcnat,“Src.Address”设为10.0.0.0/23(根据子网掩码设置),“Action”设为masquerade,这是为了内网访问域名也能访问群晖。

到此位置你的“IP”→→“Firewall”→→“NAT”中应该跟我一样。

我们还需要设置“IP”→→“Firewall”→→“Filter Rules”,这个跟上面的端口映射差不多,同样,除了5000端口和9091端口外,“51413端口”还需要设置一个UDP协议,一样在“Protocol”那里选择UDP就行了。不设置这个好像会访问不了群晖,忘记了,你的这个界面显示的跟我一样就行了。

接下来我们需要设置一个脚本,左侧找到“System”→→“Script”→→“➕”→→“Name”→→“ip”,复制如下代码后点击OK。

:global ipaddr [/ip address get [/ip address find interface=pppoe-out1] address]
:set ipaddr [:pick $ipaddr 0 ([len $ipaddr] -3)]
:global synology [/ip firewall nat get [/ip firewall nat find comment="5000"] dst-address]
:if ($ipaddr != $synology) do={
:log info [/ip firewall nat set [/ip firewall nat find comment="5000"] dst-address=$ipaddr]
}
:global transmission [/ip firewall nat get [/ip firewall nat find comment="9091"] dst-address]
:if ($ipaddr != $transmission) do={
:log info [/ip firewall nat set [/ip firewall nat find comment="9091"] dst-address=$ipaddr]
}

再添加一个计划任务,左侧找到“System”→→“Scheduler”→→“➕”→→“Name(名字默认就行)”→→“Start time:Startup”→→“Interval:00:01:00”,复制如下代码后点击OK。

:execute ip

因为之前的混乱操作后,我看到群晖中的Transmission三十多个种子几乎没有上传,便怀疑是Transmission的设置问题,设置了半天也是不起作用,缓存设置为512MB是一般设置缓存为实际内存的四分之一,我现在的配置是这样的。

这个时候你重启一下你的ROS和群晖,等待5分钟后就发现可以域名远程访问群晖了,并且上传也是正常的。

最后附赠一个大牛的ROS一键DDNS脚本,也是在脚本中添加,并且计划任务为立即执行且1分钟运行一次,我测试过是可用的,但目前对于我来讲没什么用,也分享给各位朋友吧。

#PPPoE 默认为pppoe-out1
:local pppoe "pppoe-out1"

#DNSPOD token
:local token "你的ID,你的token"

#域名
:local domain "你的一级域名"

#域名主机名 一级域名直接写“@”
:local subdomain "二级域名"

#以下不是专业人士请不要修改
#domain
:local dname ($subdomain.".".$domain)

#获取pppoe拨号ip
:local ipaddr [/ip address get [/ip address find interface=$pppoe] address]
:set ipaddr [:pick $ipaddr 0 ([len $ipaddr] -3)]

#获取域名列表
:local record [/tool fetch url="https://dnsapi.cn/Record.List" http-data="login_token=$token&format=json&domain=$domain&sub_domain=$subdomain&record_type=A" as-value output=user]

#获取id和ip
:set record ($record->"data")
:set record [:pick $record [:find $record "\"records\":"] [:len $record]]
:local recordid [:pick $record ([:find $record "\"id\":\""]+6) [:find $record "\",\"ttl"]]
:local recordip [:pick $record ([:find $record "\"value\":\""]+9) [:find $record "\",\"en"]]

#更新ip地址
:if ($recordip!=$ipaddr) do={
/tool fetch url="https://dnsapi.cn/Record.Ddns" http-data="login_token=$token&format=json&domain=$domain&sub_domain=$subdomain&record_id=$recordid&record_line_id=0&value=$ipaddr"
:log info ("[".$dname."] ip update")
} else={
:log info ("[".$dname."] ip not update")
}

 

赞(1) 打赏
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《MikroTik RouterOS DDNS Transmission 群晖 端口映射解决PT没有上传》
文章链接:https://www.kelephant.com/oam/4132.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

登录

找回密码

注册