1
damichifan 18 天前
很强,非程序员看不太懂,回家不卡顿,是通过云服务器中转执行的吧
|
2
sampeng OP @damichifan 不,p2p 意味着点对点。我中转也在家里。没有云服务器什么事。上行 40-70M ,不可能卡顿。除非运营商限流,那我没办法…
|
![]() |
3
vhus 18 天前
建议:
1.PT 下载设备最好是双网口(虚机的话稍微麻烦点),在光猫上单独接一路(光猫改桥接是必须的),然后 pppoe 拨号连接外网(实测目前电信/联通都支持多次 pppoe ),PT 下载最好不要走主路由,因为梯子不好配置,这样 ipv6 的 PT 也容易搞,配好防火墙,第二网卡配置到内网 IP ,去访问 NAS. 2.家用的话路由没有必要搞两级,配置 Vlan 什么的意义也不太大,如果是带 wifi 的路由器就弄成桥接模式。 3.在主路由上指定 adguard home 作为主 DNS 上面多设几个上游 DNS ,可以使用并行请求去加速 dns 解析。 4.如果光猫已经桥接模式,那就配置好 ddns ,用 wireguard 回家,其它模式 vpn 速度都不可靠。 |
![]() |
4
vhus 18 天前
比较悲催的是 mikrotik 官方自带的 ddns 已经不能使用了,更新包也要手动刷了。
|
5
sampeng OP @vhus 巧了,我正准备这么做,我是群晖,有两个网口。就是因为梯子把整个群晖屏蔽了,还是非常难受。
同理,ddns 是在群晖上继续服役。 没办法,华为 q6 没办法改成桥接,网上有邪路,但漫游功能就没了…得不偿失。还好手机其实无所谓…按之前网络拓扑本来手机就都是两层。所以这次改造最主要是把 pc 、nas 、这些都直接挂路由下。 谢谢建议。wg 回家确实香,就是不知道这种 vpn 可以用多久,感觉特征也很明显,迟早被干扰 |
![]() |
6
vhus 18 天前
给你一个 dnspod 的 routeros ddns 脚本,在主路由上做 ddns 。弄个便宜的域名就行了。
###程序执行完需要较长时间,请耐心等待,不要反复执行,建议放在 PPP 模板里 ON-UP 使用### ###注意事项:子域名请尽量全部大于 3 位,如果子域名列表里同时存在 1.x.com 和 11.x.com 记录时会出现误判### ###注意事项:使用 V4V6 同时更新的域名,顶级域名必须一致,否则会因为缓存域名 ID 导致后续更新失败### ###定义必须变量##### ###定义 DNSPOD 的 TOKEN### :local mytoken "XXX,XXX" ###定义自己的需更新域名(不需要更新的 IP 类型留空即可)### :global mydomains4 "域名 t" :global mydomains6 "域名 t" ###定义自己的需更新的拨号接口### :global myint "pppoe-out1" ###以下内容无需修改### ###预判断域名是否为双栈### :global v4putex "" :global v6putex "" :if ($mydomains4 = $mydomains6) do={:log error "检测到当前更新域名使用双栈。";:global v4putex "&offset=0&length=1";:global v6putex "&offset=1&length=1";} :if ([:len $mydomains4] >0) do={ ###开始 IPV4 获取工作,可自行按需调整### :global mydomain41 [:pick $mydomains4 ([:find $mydomains4 "."] +1) [:len $mydomains4]] :global mydomain42 [:pick $mydomains4 0 [:find $mydomains4 "."]] :global myipv4 [/ip address get [find interface=$myint] address] :set myipv4 [:pick $myipv4 0 [:find $myipv4 "/"]] ###开始 DNSPOD 处理 IPV4 工作,以下请勿修改### :log error "DNSPOD 脚本执行 IPV4 更新开始" :do [/tool fetch url="https://dnsapi.cn/Record.List" http-data="login_token=$mytoken&format=json&domain=$mydomain41&sub_domain=$mydomain42&$v4putex"] :delay 5s :global reprec [/file get [find name="Record.List"] contents] :if ([:len [:find $reprec "u7a7a"]] >0) do={ /file remove [find name="Record.List"] :log error "DNSPOD 因为没有对应子域名,尝试自己 NEW 一个。" :global myipv4 :do [/tool fetch url="https://dnsapi.cn/Record.Create" http-data="login_token=$mytoken&format=json&domain=$mydomain41&sub_domain=$mydomain42&value=$myipv4&record_type=A&record_line=%e9%bb%98%e8%ae%a4" keep-result=no] :delay 5s :do [/tool fetch url="https://dnsapi.cn/Record.List" http-data="login_token=$mytoken&format=json&domain=$mydomain41&sub_domain=$mydomain42"] :delay 5s :global reprec [/file get [find name="Record.List"] contents] } :if ([:len [:find $reprec "u6210"]] >0) do={ :global dnspodf [/file get [find name="Record.List"] contents] :global fdend [:find $dnspodf ("\"".$mydomain42."\"")] :global fdinfo [:pick $dnspodf 0 $fdend] :while ([:len [:find $fdinfo "{"]] > 0) do={ :global fdinfo [:pick $fdinfo ([:find $fdinfo "{"] +1) [:len $fdinfo]]} :global fdinfo [:pick $fdinfo 6 [:len $fdinfo]] :global fdinfo [:pick $fdinfo 0 [:find $fdinfo "\","]] :global recordid $fdinfo /file remove [find name="Record.List"] :global myipv4 :if ([:len [:find $dnspodf $myipv4]] >0) do={ :log error ("DNSPOD 放弃更新,IPV4 没有变化。") } else={ :do [/tool fetch url="https://dnsapi.cn/Record.Modify" http-data="login_token=$mytoken&format=json&domain=$mydomain41&record_id=$recordid&sub_domain=$mydomain42&value=$myipv4&record_type=A&record_line=%e9%bb%98%e8%ae%a4"] :delay 5s :global reprec [/file get [find name="Record.Modify"] contents] /file remove [find name="Record.Modify"] :if ([:len [:find $reprec "u6210"]] >0) do={ :log error ("DNSPOD 更新 IPV4 成功。当前 IPV4 为:".myipv4) } else={ :log error "DNSPOD 更新 IPV4 失败" }}} :log error "DNSPOD 执行脚本 IPV4 更新完毕"} :if ([:len $mydomains6] >0) do={ ###开始 IPV6 获取工作,可自行按需调整### :global mydomain61 [:pick $mydomains6 ([:find $mydomains6 "."] +1) [:len $mydomains6]] :global mydomain62 [:pick $mydomains6 0 [:find $mydomains6 "."]] :global myipv6 [/ip address get [find interface=$myint] address] :set myipv6 [:pick $myipv6 0 [:find $myipv6 "/"]] ###有的朋友这里 V6 使用 release 会有问题,可更换为 renew 尝试,和运营商有关### /ipv6 dhcp-client renew [find interface=$myint] :delay 3s :global myipv6 [/ipv6 dhcp-client get [find interface=$myint status=bound] prefix] :set myipv6 [:pick $myipv6 0 [:find $myipv6 "/"]] ###开始 DNSPOD 处理 IPV6 工作,以下请勿修改### :log error "DNSPOD 脚本执行 IPV6 更新开始" :do [/tool fetch url="https://dnsapi.cn/Record.List" http-data="login_token=$mytoken&format=json&domain=$mydomain61&sub_domain=$mydomain62&$v6putex"] :delay 5s :global reprec [/file get [find name="Record.List"] contents] :if ([:len [:find $reprec "u7a7a"]] >0) do={ /file remove [find name="Record.List"] :log error "DNSPOD 因为没有对应子域名,尝试自己 NEW 一个。" :global myipv6 :do [/tool fetch url="https://dnsapi.cn/Record.Create" http-data="login_token=$mytoken&format=json&domain=$mydomain61&sub_domain=$mydomain62&value=$myipv6&record_type=AAAA&record_line=%e9%bb%98%e8%ae%a4" keep-result=no] :delay 5s :do [/tool fetch url="https://dnsapi.cn/Record.List" http-data="login_token=$mytoken&format=json&domain=$mydomain61&sub_domain=$mydomain62"] :delay 5s :global reprec [/file get [find name="Record.List"] contents]} :if ([:len [:find $reprec "u6210"]] >0) do={ :global dnspodf [/file get [find name="Record.List"] contents] :global fdend [:find $dnspodf ("\"".$mydomain62."\"")] :global fdinfo [:pick $dnspodf 0 $fdend] :while ([:len [:find $fdinfo "{"]] > 0) do={ :global fdinfo [:pick $fdinfo ([:find $fdinfo "{"] +1) [:len $fdinfo]]} :global fdinfo [:pick $fdinfo 6 [:len $fdinfo]] :global fdinfo [:pick $fdinfo 0 [:find $fdinfo "\","]] :global recordid $fdinfo /file remove [find name="Record.List"] :global myipv6 :if ([:len [:find $dnspodf $myipv6]] >0) do={ :log error ("DNSPOD 放弃更新,IPV6 没有变化。") } else={ :do [/tool fetch url="https://dnsapi.cn/Record.Modify" http-data="login_token=$mytoken&format=json&domain=$mydomain61&record_id=$recordid&sub_domain=$mydomain62&value=$myipv6&record_type=AAAA&record_line=%e9%bb%98%e8%ae%a4"] :delay 5s :global reprec [/file get [find name="Record.Modify"] contents] /file remove [find name="Record.Modify"] :if ([:len [:find $reprec "u6210"]] >0) do={ :log error ("DNSPOD 更新 IPV6 成功。当前 IPV6 为:".myipv6) } else={ :log error "DNSPOD 更新 IPV6 失败" }}} :log error "DNSPOD 执行脚本 IPV6 更新完毕"} |
![]() |
8
vhus 18 天前
@sampeng 华为 Q6 我没用过,既然是光猫配置应该都差不多,获取到超级密码应该能改桥接吧,我认为 app 的功能用处不太大。如果能改桥接用 routeros 接管 pppoe 和 dhcp 和主路由 就方便很多了。
|
![]() |
9
wangclack 17 天前
广告拦截什么方案,麻烦展开港一港啊,自己折腾的感觉没你的效果好。
|
10
sampeng OP @wangclack 广告都是差不多的方案,但其实还是有广告,app 里的现在都学聪明了。我试了几个过滤方案都没什么用。我测试了一下,明显网页看视频如果开了广告过滤,就让你用 app 。可能是先试的网页,觉得效果不错。但实际用 app 。该开机广告还是开机广告。。哎。。。
|
11
hackroad 17 天前
上海电信 wirguard 会限速 5Mbps ,北京居然没事。。。
|
12
maybeonly 17 天前
vlan 是有利弊,不过我自己实践的话还是有必要用,因为在一定情况下可以简化配置。
好处: * 结合 ap 的 ssid ,将不同策略的东西丢进不同的 vlan ,例如国产 iot 和 bt 不需要走梯子 * 可以指定个别 vlan 去个别特殊出口,如“北美直通车” * 个别 vlan 可以自定义 ipv6 ,例如针对 iot 的不给 v6 ,默认 vlan 的 fd 开头私有地址,针对 bt 的下发特定 wan 口的 pd 地址(以及对应的路由) 坏处: * 配置稍微有点麻烦,不过比起在同 vlan 配置不同策略那是简单多了 * 如果需要在交换机上做个别 vlan 的 access 口,需要交换机支持不说,时间长了有插错的风险 现状是除了默认还用了 3 个 vlan 。虽然除了自定义 v6 其他都已经在默认 vlan 实现。 |
13
sampeng OP @maybeonly 同意你的考虑,我也是这么考虑的,我一开始是用 address list 来逻辑建的。但是还是麻烦,还是 vlan 比较干净,逻辑比较清晰。反正只配一次,家里就那么几个设备。10 个口也插不错。
|
14
ToDyZHu 17 天前
R6s 感觉不还是旁路由吗,只不过在 routeOS 中提前分流了一下,然后是不是需要在 routeOS 中指定 DNS 为 OpenWrt 的地址呢?
|
15
sampeng OP @ToDyZHu 我理解他不是把网关指向过去。提前分流的好处是,其实内网 99%的流量都不需要经过 openwrt 。1%那是我晚上回家查东西工作之类的。dns 其实可指可不指。我是为了有个 dns 过滤。
|
16
zsneoks 17 天前
pt 绕过梯子的问题直接给 pt 容器一个单独的 ip ,然后过滤掉它不行吗? ddns 的话直接起个 ddns-go 容器就 ok 了吧。都是几分钟的问题?
|
17
zsneoks 17 天前
另外回家的问题,我是直接在家里随便 nas 或哪里挂个 ss server ,直接直连了。
|
18
sampeng OP @zsneoks pt 没用容器,直接套件,容器有点问题,懒得查了,就直接部署的。
至于回家用 ss ,就是仁者见仁 智者见智了。 其实主要目的是为了折腾,其次是两层 nat 玩游戏,转发 port 都不方便。就是为了这点醋包的饺子 |
19
piero66 16 天前
arm64 官方卖的 routeros 可以安装 zerotier ,用 zerotier 一键回家就行了
|
![]() |
20
MYDB 16 天前 via iPhone
同意楼上的,给下载器起个 macvlan 容器
|
21
sampeng OP 我现在还有个问题没解决,策略路由是排除在 fasttrack 之外的。肉眼可见的影响主路由 cpu…没想到有什么好的办法
|
23
Richared 13 天前
之前折腾过,发现,什么 vpn ,什么零信任,都不如自己在家搭一个 ss 。客户端分组加上家里设备的域名/ip 规则,无缝使用。还不用安装其他的代理工具。
|
![]() |
24
likeflower 12 天前
@vhus IP Cloud 可以用啊,只是没备案的不常见域名,运营商 dns 有时候解析不了
|