V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
worldqiuzhi
V2EX  ›  宽带症候群

如何优雅的让 BT, PT 不走代理

  •  
  •   worldqiuzhi · 213 天前 · 7763 次点击
    这是一个创建于 213 天前的主题,其中的信息可能已经有所发展或是发生改变。

    用的 openclash ,威联通 NAS

    已知方式: 1.给 NAS IP 配置黑名单 -- 但我上面还有其他服务要使用代理

    2.openclash 只开 80 443 等常用端口 --担心各种设备出现各种网络问题

    3.使用 Bridge 或 Macvlan 给下载容器另开一个 IP 配置黑名单 --Container Station 容器工作站不支持图形化配置 Macvlan

    4.添加 tracker 域名 收藏的站多 而且担心某天某站更改了 tracker 域名 ban 号

    44 条回复    2023-08-04 23:35:02 +08:00
    yunyuyuan
        1
    yunyuyuan  
       213 天前
    同问,我的下载机是 linux ,不知道 vlan 咋配置
    z7356995
        2
    z7356995  
       213 天前 via Android
    我是搞了两台 nas ,蜗牛的那时便宜只要 300 不到,用来挂 pt,另外一台群晖
    z7356995
        3
    z7356995  
       213 天前 via Android
    所以给 nas ip 配了黑名单
    Puteulanus
        4
    Puteulanus  
       213 天前
    3.使用 Bridge 或 Macvlan 给下载容器另开一个 IP 配置黑名单 --Container Station 容器工作站不支持图形化配置 Macvlan

    用虚拟机跑(
    Jirajine
        5
    Jirajine  
       213 天前   ❤️ 1
    这太简单了,你给服务器额外配置一个 IP 地址,然后从 bt 软件里选择绑定这个 IP 地址,再为这个 IP 地址配置规则就行了。
    kylelau
        6
    kylelau  
       213 天前
    1. https://github.com/blackmatrix7/ios_rule_script/blob/master/rule/Clash/PrivateTracker/PrivateTracker.yaml
    有规则,但不完善,很多新站没有

    2. 通常 clash 规则最后兜底走代理,但只要你前面的规则足够完善,兜底可以只配置 DST-PORT 22 、80 、443 等个别端口走代理,其他端口直连,这样不光 bt ,其他软件也可以防止误走代理

    3. 使用 - SRC-PORT,54321,DIRECT 指定 bt 软件的端口出栈全部直连,这似乎是最优雅的方式?
    xd880616
        7
    xd880616  
       213 天前
    我的默认就不走代理,IP 白名单,也设置了 NAS IP 除外
    worldqiuzhi
        8
    worldqiuzhi  
    OP
       213 天前
    @kylelau
    第 1 条 我在考虑要不要配置 怕覆盖不全或者换了不能及时更新
    第 2 条 我不怕其他软件误走,而是怕其他软件被误拦截 很多软件和设备不是只走 80 443 出了问题都不好排查
    第 3 条倒是足够优雅 不过我现在端口都是随机的 有时候大流量好像容易封端口 倒是可以尝试放开端口段和随机端口断匹配
    lin559671
        9
    lin559671  
       213 天前 via iPhone
    我解决这种问题就是搞个无限流量的代理,直接治好了各种焦虑症
    worldqiuzhi
        10
    worldqiuzhi  
    OP
       213 天前
    @lin559671 不担心流量 主要担心 ban 机场号或者 pt 号
    honeyjuice
        11
    honeyjuice  
       213 天前
    末尾改成
    - PROCESS-NAME,aria2c,DIRECT
    - PROCESS-NAME,BitComet,DIRECT
    - PROCESS-NAME,fdm,DIRECT
    - PROCESS-NAME,NetTransport,DIRECT
    - PROCESS-NAME,qbittorrent,DIRECT
    - PROCESS-NAME,Thunder,DIRECT
    - PROCESS-NAME,transmission-daemon,DIRECT
    - PROCESS-NAME,transmission-qt,DIRECT
    - PROCESS-NAME,uTorrent,DIRECT
    - PROCESS-NAME,WebTorrent,DIRECT
    - PROCESS-NAME,aria2c,DIRECT
    - PROCESS-NAME,fdm,DIRECT
    - PROCESS-NAME,Folx,DIRECT
    - PROCESS-NAME,NetTransport,DIRECT
    - PROCESS-NAME,qbittorrent,DIRECT
    - PROCESS-NAME,Thunder,DIRECT
    - PROCESS-NAME,Transmission,DIRECT
    - PROCESS-NAME,transmission,DIRECT
    - PROCESS-NAME,uTorrent,DIRECT
    - PROCESS-NAME,WebTorrent,DIRECT
    - PROCESS-NAME,WebTorrent Helper,DIRECT
    - PROCESS-NAME,v2ray,DIRECT
    - PROCESS-NAME,ss-local,DIRECT
    - PROCESS-NAME,ssr-local,DIRECT
    - PROCESS-NAME,ss-redir,DIRECT
    - PROCESS-NAME,ssr-redir,DIRECT
    - PROCESS-NAME,ss-server,DIRECT
    - PROCESS-NAME,trojan-go,DIRECT
    - PROCESS-NAME,xray,DIRECT
    - PROCESS-NAME,hysteria,DIRECT
    - PROCESS-NAME,UUBooster,DIRECT
    - PROCESS-NAME,uugamebooster,DIRECT
    - "DST-PORT,80,\U0001F41F 漏网之鱼"
    - "DST-PORT,443,\U0001F41F 漏网之鱼"
    - "DST-PORT,22,\U0001F41F 漏网之鱼"
    - MATCH,DIRECT

    即可
    fortynine
        12
    fortynine  
       213 天前   ❤️ 1
    @honeyjuice 路由器上的 openclash 无法获取到下面设备的程序名称
    ymmud
        13
    ymmud  
       213 天前
    bt 单独地址
    wwbfred
        14
    wwbfred  
       213 天前
    开两张网卡,BT 软件单独绑定一张,然后在网关单独给它写策略。
    alne
        15
    alne  
       213 天前 via Android
    改成白名单代理呗
    wolonggl
        16
    wolonggl  
       213 天前
    个人经验, 用的是 v2raya 透明代理模式,修改 v2raya 启动脚本,配置只代理 80/443 常见端口的,
    bt/pt 通常都是高端口应用
    worldqiuzhi
        17
    worldqiuzhi  
    OP
       213 天前
    @wolonggl 关键不止 bt pt 用高端口啊 别的应用也有用高端口的 如果出了问题 排查都不好排查
    worldqiuzhi
        18
    worldqiuzhi  
    OP
       213 天前
    @wwbfred 是开容器的网卡 还是系统的网卡
    ettwz
        19
    ettwz  
       213 天前
    之前弄规则总是会漏 最后还是物理隔离... OpenClash 做旁路 单独开个虚拟机挂 BT/PT 直接指向主路由
    huihuilang
        20
    huihuilang  
       213 天前
    我用了旁路由,需要代理的手动设置网关,NAS 之类的不走旁路由,保证不会有侧漏
    worldqiuzhi
        21
    worldqiuzhi  
    OP
       213 天前
    @huihuilang 关键我不是旁路由的事 我 nas 也需要走代理 只是个别应用( BT PT )不想走代理
    montoyaf
        22
    montoyaf  
       213 天前 via iPhone
    不要用 clash 了,hello world 同样也可分流,设置仅代理常用端口即可
    skies457
        23
    skies457  
       213 天前 via Android
    有些 bt 软件可以设置 dscp ,理论上可以在路由器上靠这个来分流
    skies457
        24
    skies457  
       213 天前 via Android
    当然为了省事我选择 nas 直接做旁路由 hhhh 直接用 systemd 的 cgroup 筛选流量
    mhqschen
        25
    mhqschen  
       213 天前
    @Jirajine #5 想问下怎么额外配置一个 IP 地址?
    goodryb
        26
    goodryb  
       213 天前
    搞个虚拟机跑 pt 、bt ,IP 过滤
    dingwen07
        27
    dingwen07  
       213 天前 via iPhone
    搭一个 Hyper-V 虚拟机,只分配外部网卡进去
    farah9
        28
    farah9  
       213 天前 via iPhone
    不是可以不代理本地流量么
    MYDB
        29
    MYDB  
       213 天前 via iPhone
    macvlan 不就是最优解吗,没有图形化页面也不是什么大事吧
    abwong
        30
    abwong  
       213 天前
    @honeyjuice - MATCH,DIRECT 正解,不走 BT
    basncy
        31
    basncy  
       212 天前
    新建一个用户, id 设为 1010, 用此用户运行 bt 软件 iptables 按用户 id 过滤 -m owner --uid-owner 1010 -j RETURN
    参考 android 的按应用代理.
    Tink
        32
    Tink  
       212 天前
    openclash 可以根据端口代理呀
    Liku
        33
    Liku  
       212 天前 via iPhone
    搞个 routeros 想实现挺容易的
    artee
        34
    artee  
       212 天前
    ```
    script:
    shortcuts:
    nas: (src_ip == '192.168.1.20' or 'ds716' in host) and dst_port > 5000

    rules:
    - SCRIPT,nas,DIRECT
    ```

    最简单的办法不是用脚本实现么,我设置 nas 上 `5000` 以上的端口都直连,基本上就没下载流量走代理了
    piku
        35
    piku  
       212 天前 via Android
    上面说用 routeros 挺容易实现,我有不同意见。
    首先可以肯定,国内的上传下载流量是不可能过代理的。到服务器的流量一般是 cf 的,过不过代理其实无所谓。入站(上传)由于标记问题回包不会过代理。
    所以要解决的其实是从国外的 ip 下载的流量。要不就一刀切,高位端口全部直连。要不就只能做包过滤应用识别,要不就从 bt 软件禁了国外 ip ,只从国内下载
    worldqiuzhi
        36
    worldqiuzhi  
    OP
       212 天前
    @artee 这个配置了不行 自定义规则里配置 有时候提醒我 unsupported type SCRIPT 有时候可以成功 但还是不能直连 我看 issue 说 端口控制无法控制你连接别人的端口
    honeyjuice
        37
    honeyjuice  
       212 天前 via Android
    @fortynine 那就只需要最下面几行 特定端口走代理即可
    artee
        38
    artee  
       212 天前
    @worldqiuzhi 我不确定你怎么用的,我的 clash 配置是手写的,不是用 openclash 合成出来的,模式选 fake-ip 增强,完全没有问题,如果你需要控制连接对方的端口,增加 `src_port` 的条件就好了。官方的[wiki]( https://github.com/Dreamacro/clash/wiki/Clash-Premium-Features#script-shortcut) 里面写得非常清楚
    TerranceL
        39
    TerranceL  
       212 天前
    passwall 有个 BT 分流规则,里面判断标准是是 bittorrent 协议
    opengg
        40
    opengg  
       212 天前 via Android
    docker 不是可以建 network 吗,让容器独占一个 ip ,然后 ip 策略呗?
    http://shareinto.github.io/2017/07/10/docker-ip/
    Jirajine
        41
    Jirajine  
       211 天前
    @mhqschen 手动随便选个同网段的 ip 地址配置上去就行。
    bbsingao
        42
    bbsingao  
       209 天前
    刚好我有 qnap nas ,container station 是支持 macvlan 的。
    我专门起了一个 ip 来运行 gitlab ( container )。
    worldqiuzhi
        43
    worldqiuzhi  
    OP
       209 天前
    @bbsingao 我用了 macvlan 但配置的 ipv6 pt 网站上没显示 速度也不太行 换回规则了
    Karmylr
        44
    Karmylr  
       47 天前
    换 v2raya ,创建一个直连的端口,然后 bt 客户端设置使用代理下载,填创建的端口
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3285 人在线   最高记录 5930   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 11:11 · PVG 19:11 · LAX 04:11 · JFK 07:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.