提升中国移动宽带IPV4下PT软件的上传与下载

2024-06-07 10:40:10 16点赞 119收藏 11评论

原理铺垫

在正式教程开始前,我们先来了解几个小的概念,帮助大家更好的上手今天的教程。

1.公网IP的类型及判断

提升中国移动宽带IPV4下PT软件的上传与下载

卓越公网型>映射公网型>全锥型>IP限制型>端口限制型>对称型 pcdn和pt都是基于点对点(peer-to-peer)技术的内容分发模式,我这里引用pcdn中的公网类型进行简单说明,越优质的网络,越有利于peer的连接。在上一期的视频中我们通过在ros中添加防火墙指令,将IP限制型提升为全锥型,爱快的nat1模式与openwrt的fullcone模式都可以进行类似的操作。

2.upnp模式的打开与关闭

在家里有公网ip的情况下,upnp模式是非常建议大家开启的,这样,下载软件会自动建立端口映射关系。将你的公网ip与端口直接映射到内网。

但是在移动宽带下,除北京外的家宽,极少有公网ip。也就是大家通俗说的大内网。当你查看你光猫获取到的地址与你访问公网的地址完全不一致,这就是路由上的nat。简单来说,在我们家里的光猫之上,小区有一个得到公网ip的路由器,负责给大家分发内网IP,导致我们不能直接对这个IP进行操作,比如端口转发及DMZ建立。所以,面对这样的网络环境,我们需要关闭UPNP模式,手动搭建映射关系,让p2p更好的进行数据交换。

3.PT下载中的字母含义

D = 正在下载 (我方有意从对方下载且被接受) d = 对方拒绝 (我方有意从对方下载但被拒绝) U = 正在上传 (对方有意从我方下载且被同意) I = 已建立传入连接的用户

提升中国移动宽带IPV4下PT软件的上传与下载

主要关注的四个标识,本次,教程中重点关注I标识背后的参数。

  1. 接受传入连接:

    • 当 qBittorrent 设置为"接受传入连接"时,其他 peers 可以主动与该客户端建立连接,从而能够提供更快的下载速度。

    • 这种设置对于位于防火墙后的用户非常有用,因为可以绕过防火墙的限制,与其他 peers 建立连接。

    • 但是,这种设置也会增加被攻击的风险,因为开放的端口可能被恶意利用。

  2. 不可以接受传入连接:

    • 当 qBittorrent 设置为"不可以接受传入连接"时,该客户端只能主动与其他 peers 建立连接,无法被其他 peers 主动连接。

    • 这种设置更加安全,因为不会开放任何端口供外部访问,降低了被攻击的风险。

    • 但是,这种设置可能会降低下载速度,因为该客户端无法接受来自其他 peers 的连接,从而无法获得更多的上传资源。 按照教程进行操作后,在下载标识处,看到有接受传入连接标志,peer数量提升,下载速度可能更快。接近公网ip端口转发的效果。对于上传的提升更加明显,意味着,更多的peer可以主动发现本地的文件。

提升中国移动宽带IPV4下PT软件的上传与下载

开启nat1

/ip firewall nat add action=endpoint-independent-nat chain=srcnat out-interface=pppoe-out1 protocol=udp /ip firewall nat add action=endpoint-independent-nat chain=dstnat in-interface=pppoe-out1 protocol=udp

提升中国移动宽带IPV4下PT软件的上传与下载

端口映射

# ipv4规则添加 /ip firewall nat add chain=dstnat protocol=tcp to-addresses=192.168.6.31 action=dst-nat to-ports=11369 dst-port=23168 /ip firewall nat add chain=dstnat protocol=udp to-addresses=192.168.6.31 action=dst-nat to-ports=11369 dst-port=11369 # ipv6规则添加 /ipv6 firewall filter add chain=forward protocol=tcp dst-port=23168 action=accept /ipv6 firewall filter add chain=forward protocol=udp dst-port=23168 action=accept

上传文件核心

将资源包natmap核心放至home文件夹中,运行一下命名,安装完成

cd /home && chmod u+x natmap && mv natmap /usr/local/bin/

然后输入

natmap -4 -s stunserver.stunprotocol.org -h qq.com -b 23168

提升中国移动宽带IPV4下PT软件的上传与下载

确认生成对应公网ip与端口号c

  • 有 则程序运行成功,网络支持公网端口映射

修改端口号

进入ros,ipv4防火墙

  • 修改对应端口号ipv4中tcp目标端口修改为c

  • udp中的转发端口与目标端口修改为c ipv6防火墙

  • ipv6中的tcp与udp修改为c

qb设置汇总

  • 监听端口修改为c 手动模式下,修改一次,端口维持3-7天,如果端口变化,微信机器人会接到相关信息,需要再次修改端口

制作通知脚本

在home文件夹下创建名称为natmap1-wx.sh的文件

#!/bin/bash address=${1} PORT=${2} # 微信机器人Webhook URL webhook_url="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=YOUR_WEBHOOK_KEY" # 要发送的消息内容 message="最新的下载端口已修改为${2}" # 发送通知消息 curl -H "Content-Type: application/json" -X POST -d "{"msgtype": "text", "text": {"content": "$message"}}" $webhook_url

赋予可执行权限

chmod +x /home/natmap1-wx.sh

制作启动脚本

创建开机自启

touch /etc/systemd/system/natmap1.service

填充以下内容

[Unit] Description=NAT Mapping Service After=network.target [Service] ExecStart=/usr/local/bin/natmap -4 -s stunserver.stunprotocol.org -h qq.com -b 23168 -e /home/natmap1-wx.sh Restart=always SyslogIdentifier=natmap [Install] WantedBy=multi-user.target

输入以下命令,使程序完成开机自启

sudo systemctl daemon-reload && sudo systemctl enable natmap1.service && sudo systemctl start natmap1.service

重启机器验证是否生效 此时则配置完成。打开未完成任务确认,可以看到大量带i标志的peer连接

自动化搭建

安装所需软件

apt update && apt install curl sshpass -y

首次需手动ssh连接ros

连接前确认该服务允许内网ip连接

ssh admin@192.168.6.5 yes #输入密码连接 #连接完成后,进入ros控制台 #按ctrl+d退出

制作自动化脚本

在home文件夹下创建natmap_qb.sh 注意修改脚本内对应内容

#!/bin/bash #穿透后获取到的ip地址 address=${1} #获取到穿透后的端口号,赋予变量PORT PORT=${2} # 微信机器人Webhook URL webhook_url="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=YOUR_WEBHOOK_KEY" # 要发送的消息内容,这部分引号内内容可自定义 message="下载端口已更换完成" # 发送通知消息 curl -H "Content-Type: application/json" -X POST -d "{"msgtype": "text", "text": {"content": "$message"}}" $webhook_url #这部分定义完成后,是后台完成运行的,大家初次使用的时候记得将参数输入进去 # ros的ip 用户名 密码 routeros_ip="" routeros_username="" routeros_password="" qb_web_address="192.168.6.31" # SSH连接并修改IPv6防火墙规则 sshpass -p "$routeros_password" ssh "$routeros_username@$routeros_ip" << EOF # 显示IPv4防火墙规则 /ip firewall nat print # 修改IPv4防火墙第8条规则 /ip firewall nat set 8 protocol=tcp to-addresses=$qb_web_address to-ports=$PORT dst-port=6100 # 显示IPv4防火墙规则 /ip firewall nat print # 修改IPv4防火墙第9条规则 /ip firewall nat set 9 protocol=udp to-addresses=$qb_web_address to-ports=$PORT dst-port=$PORT # 显示ipv6防护墙条目 /ipv6 firewall filter print # 修改IPv6防火墙中的第一条规则 /ipv6 firewall filter set 1 dst-port=$PORT protocol=tcp # 显示ipv6防护墙条目 /ipv6 firewall filter print # 修改IPv6防火墙第二条规则 /ipv6 firewall filter set 2 dst-port=$PORT protocol=udp EOF # qBittorrent. qb_web_port="8080" qb_username="admin" qb_password="adminadmin" echo "Update qBittorrent listen port to $public_port..." # Update qBittorrent listen port. qb_cookie=$(curl -s -i --header "Referer: http://$qb_web_address:$qb_web_port" --data "username=$qb_username&password=$qb_password" http://$qb_web_address:$qb_web_port/api/v2/auth/login | grep -i set-cookie | cut -c13-48) curl -X POST -b "$qb_cookie" -d 'json={"listen_port":"'$public_port'"}' "http://$qb_web_address:$qb_web_port/api/v2/app/setPreferences" echo "Done."

配置完成后

chmod +x /home/natmap_qb.sh #将脚本中端口号修改为1111,进行测试 PORT=11113 #进入home文件夹 cd /home #手动运行脚本,查看ros与qb监听端口是否变化 ./natmap_qb.sh #测试完成后,修改为正确值,保存脚本 PORT=${2}

修改启动脚本 将自动化脚本名称替换进去

[Unit] Description=NAT Mapping Service After=network.target [Service] ExecStart=/usr/local/bin/natmap -4 -s stunserver.stunprotocol.org -h qq.com -b 23168 -e /home/natmap_qb.sh Restart=always SyslogIdentifier=natmap [Install] WantedBy=multi-user.target

重新读取开机自启服务,使刚才配置生效

sudo systemctl daemon-reload

配置完成后,即可完成对应的端口映射

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
11评论

  • 精彩
  • 最新
  • 这里不适合发这样的教程,看的不完整,还是专业论坛好,这里适合恰饭推广。

    校验提示文案

    提交
    有道理

    校验提示文案

    提交
    收起所有回复
  • 本来就没公网,你本地ros映射得到的也就少了一层,问题还是移动的大内网,文章的映射到公网的端口那是不可能的

    校验提示文案

    提交
  • 没用,移动nat4

    校验提示文案

    提交
  • 内网穿透+DMZ+UPnP:
    不需要,IPv6+DDNS轻松搞定。

    校验提示文案

    提交
    移动的v6是残疾,而且为了堵pcdn也给禁了

    校验提示文案

    提交
    还好吧 我这边v6还能用

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 看不懂 [皱眉] 不明觉厉 先点赞

    校验提示文案

    提交
  • 写了一个小工具,可以通过rss订阅链接筛选免费种子推送到qbittorrent自动下载

    链接 去看看
    可以下载二进制文件运行,也可以运行docker容器(待适配)

    校验提示文案

    提交
  • [皱眉] 拿黑心云的分类来做网络类型分类? [不好意思] 过于不专业了

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
119
扫一下,分享更方便,购买更轻松