这篇文章上次修改于 392 天前,可能其部分内容已经发生变化,如有疑问可询问作者。

路由器直接走代理,听着就很酷

前言

基地的网络可以直接用魔法,刚入队的时候就感觉很神奇,现在终于有机会自己试试了。现在快退役了,丰富一下教程内容。

基地目前(2024.3.4)拥有一个红米 AC2100、两个友善 Nanopi R2S 软路由、一个 J1800 x86 2核4G 小主机

红米 AC2100刷openwrt

像这种路由器也叫硬路由,cpu 算力不高,但是无线性能好。要刷成openwrt系统会经历下面的过程:

红米自带系统->BREED->OpenWrt

这个教程很详细。热门路由器在网上搜索都可以找到相应的教程,不过值得注意的是,硬路由因为本身性能不高,低价位的路由器刷成 openwrt 系统后可能会出现卡顿、断流等情况,所以这个路由器基本闲置了。

友善 Nanopi R2S 软路由刷入OpenWrt系统

接口:

一个 type-C 供电口

一个 WAN 口(连接学校的网口)

一个 LAN 口(连接局域网设备,如路由器、电脑)

一张 SD 卡

  • 我习惯使用大佬的固件定制网站,搜索 R2S,自定义固件里面把 OpenClash(clash的openwrt插件版)安装上,后台地址和后台密码按需修改,在校园内建议修改为192.168.x.1

  • 将 R2S 上的 sd 卡拿下来放入 sd 卡中插入电脑

  • 我这里使用烧录软件balenaEtcher将镜像烧录到 sd 卡中,一步一步按提示操作即可

  • 插入 sd 卡并开机,LAN 口与自己的电脑连接,你将被分配一个 192.168.x.x 的 ip,访问 192.168.x.1 或者 /op 即可访问 openwrt后台

就普通使用而言,编译固件、ssh、命令行 opkg等等都用不到,如果愿意请自行折腾

J1800 x86刷openwrt

接口:

一个 12V DC 供电

一个 LAN1 口

一个 LAN2 口

一个 HDMI 口

一个 VGA 口

因为它的硬盘不方便/不能像 R2S 一样可以直接接入电脑进行烧录,所以我们选择借助 PE 系统,在 J1800 上运行 pe 系统然后将镜像烧录到原本的硬盘里

  • 我习惯使用大佬的固件定制网站,搜索 x86/64,自定义固件里面把 OpenClash(clash的openwrt插件版)安装上,后台地址和后台密码按需修改,在校园内建议修改为192.168.x.1

  • 烧录 PE 系统,我使用的是优启通 PE 系统

  • 烧录软件WinDiskFlash 和 openwrt 镜像放入 u 盘之中

  • 开机乱按进入 BIOS,选择以 u 盘启动

  • 试一试两个LAN 口与自己的电脑连接,接入其中一个时你将被分配一个 192.168.x.x 的 ip,那个就是真正的 LAN 口,另外一个是 WAN 口,访问 192.168.x.1 或者 /op 即可访问 openwrt后台

重启解决百分之99的问题!!!!

今天总算是又领悟到这句话的真谛了,一开始上传新固件也是一直报错,一个重启再上传就好了

打开openclash结果主程序一直显示未运行,捯饬半天各种检查各种搜索,结果一个重启又好了

遇到 * opkg_download: 请检查网络设置, 确保本设备网络可用.也是多运行几次,重启然后再多运行几次就好了

神奇

命令行安装插件

可选

自行安装插件的时候麻烦还挺多,因为完全不了解,有些README读起来有困难,比如uname -a看到你是mips架构结果你找了半天发现newifid2.zip里面放的就是mipsel的.ipk东西

传输文件我看网上用sftp用的多,但是我之前习惯了scp,我感觉scp似乎更方便,指令像这样scp *.ipk root@192.168.7.1:/package

我试了老半天luci-app-unblockmusic这个解锁网易云音乐的插件,结果发现最近一次commit是三年前,估计是已经用不了了

OpenClash的使用

上网设置

  • 网络->接口,WAN 口设置为 PPPOE 拨号,输入学号密码,在学院楼的话账号是不用充钱的

    LAN 口的静态地址千万别改,不然就可以考虑重新刷机了(或许设置静态地址也能连上?没试过)

opencalsh设置

  • 服务->OpenClash,最下方 启动!然后查看运行日志,但必然会碰到这个问题,如果是 x86 或者其他架构在这里
  • 其余的就是上传订阅了,剩下的自行探索一下

OpenClash 与 IPV6 极不兼容,使用 IPV6 的情况下容易发生问题(官方自己说的)

代理发生问题时刻尝试关闭 IPV6 相关设置

附录

最近在研究规则代理的问题,因为有时候总会有代理走不上的情况,个人用的话开个全局或者用proxychains也还行,但是挂在路由器上的代理要是规则没写好,那就g

简单来着只要进入https://nexconvert.com/

1写你在机场买的节点链接(担心安全问题就不要用,用不怕,怕不用)

2远程配置写https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Full.ini

3然后把链接复制到clash,下载即可

这样只是优化你的规则,并且会抹掉最前面的dns字段,在openclash上使用时可能会造成一些问题

不过我现在已经不用订阅转换了,最开头自己写规则是因为当时作者还没有把 ChatGPT 相关网站加进去,现在已经有了。还有一方面是订阅转换的网站不开代理不一样连得上,有时候还挺难受的

自定义规则:https://yattazen.com/tutorial/clash-custom-config.html

图形化编辑教程:https://www.jamesdailylife.com/clash_2022

clash官方说明:https://docs.cfw.lbyczf.com/contents/ui/profiles/rules.html

看来之前的风波真挺大,教程全没了

Q&A

  • 链接到wifi后图标如下显示无法连接到Internet,但是可以上网

    MA2V~V8_F1__KD7_OEF_MOD.png

    https://github.com/vernesong/OpenClash/issues/6

    https://github.com/vernesong/OpenClash/issues/2239

    解决方法

    DOMAIN-SUFFIX,msftconnecttest.com,🚀 节点选择
    DOMAIN-SUFFIX,msftncsi.com,🚀 节点选择
    

    需要让这两个网站走代理,修改规则即可

  • 重启 openclash 插件之后无法科学上网,打开谷歌或者有关提示 dns 解析错误或者 ip 找不到,有时候等待十几分钟或几个小时就好了

    最终的解决办法是在配置文件前面添加上dns字段。原因是订阅转换之后导致自带的dns字段被抹掉了,openclash日志显示会自动补全,但是可能自动补全的这个无法使用。但日志时不时输出一句更新内核失败,从 raw.github 什么什么的链接失败,可能也会有点影响,github 上有一个相关的 issue 可以解决那个问题

    下面是订阅转换之后的配置文件

    port: 7890
    socks-port: 7891
    allow-lan: true
    mode: Rule
    log-level: info
    external-controller: :9090
    proxies:
        ……………………
        ……………………
    

    只需要加上dns字段即可

    port: 7890
    socks-port: 7891
    allow-lan: true
    mode: Rule
    log-level: info
    external-controller: :9090
    dns:
      enable: true
      ipv6: false
      listen: 127.0.0.1:8853
      enhanced-mode: fake-ip
      nameserver:
        - https://223.5.5.5/dns-query
        - https://223.6.6.6/dns-query
        - https://doh.pub/dns-query
      fake-ip-filter:
        - "*.lan"
        - stun.*.*.*
        - stun.*.*
        - time.windows.com
        - time.nist.gov
        - time.apple.com
        - time.asia.apple.com
        - "*.ntp.org.cn"
        - "*.openwrt.pool.ntp.org"
        - time1.cloud.tencent.com
        - time.ustc.edu.cn
        - pool.ntp.org
        - ntp.ubuntu.com
        - ntp.aliyun.com
        - ntp1.aliyun.com
        - ntp2.aliyun.com
        - ntp3.aliyun.com
        - ntp4.aliyun.com
        - ntp5.aliyun.com
        - ntp6.aliyun.com
        - ntp7.aliyun.com
        - time1.aliyun.com
        - time2.aliyun.com
        - time3.aliyun.com
        - time4.aliyun.com
        - time5.aliyun.com
        - time6.aliyun.com
        - time7.aliyun.com
        - "*.time.edu.cn"
        - time1.apple.com
        - time2.apple.com
        - time3.apple.com
        - time4.apple.com
        - time5.apple.com
        - time6.apple.com
        - time7.apple.com
        - time1.google.com
        - time2.google.com
        - time3.google.com
        - time4.google.com
        - music.163.com
        - "*.music.163.com"
        - "*.126.net"
        - musicapi.taihe.com
        - music.taihe.com
        - songsearch.kugou.com
        - trackercdn.kugou.com
        - "*.kuwo.cn"
        - api-jooxtt.sanook.com
        - api.joox.com
        - joox.com
        - y.qq.com
        - "*.y.qq.com"
        - streamoc.music.tc.qq.com
        - mobileoc.music.tc.qq.com
        - isure.stream.qqmusic.qq.com
        - dl.stream.qqmusic.qq.com
        - aqqmusic.tc.qq.com
        - amobile.music.tc.qq.com
        - "*.xiami.com"
        - "*.music.migu.cn"
        - music.migu.cn
        - "*.msftconnecttest.com"
        - "*.msftncsi.com"
        - localhost.ptlogin2.qq.com
        - "*.*.*.srv.nintendo.net"
        - "*.*.stun.playstation.net"
        - xbox.*.*.microsoft.com
        - "*.ipv6.microsoft.com"
        - "*.*.xboxlive.com"
        - speedtest.cros.wr.pvp.net
    proxies:
    

    这里还有一份dns设置

    mixed-port: 7890
    allow-lan: true
    bind-address: '*'
    mode: rule
    log-level: info
    external-controller: '127.0.0.1:9090'
    dns:
        enable: true
        ipv6: false
        default-nameserver: [223.5.5.5, 119.29.29.29]
        enhanced-mode: fake-ip
        fake-ip-range: 198.18.0.1/16
        use-hosts: true
        nameserver: ['https://doh.pub/dns-query', 'https://dns.alidns.com/dns-query']
        fallback: ['https://doh.dns.sb/dns-query', 'https://dns.cloudflare.com/dns-query', 'https://dns.twnic.tw/dns-query', 'tls://8.8.4.4:853']
        fallback-filter: { geoip: true, ipcidr: [240.0.0.0/4, 0.0.0.0/32] }
    proxies:
    

    应该都是可以的,我只试了前者。切换之后用了一会儿之后,再使用没有dns字段的配置文件也可以正常使用代理了,可能是,他自己记住了?也或许不是这个 dns 的问题

一些相关链接

https://www.right.com.cn/forum/forum.php?mod=viewthread&tid=8276453&highlight=%B6%A8%D6%C6openwrt

https://github.com/kiddin9/OpenWrt_x86-r2s-r4s-r5s-N1

https://supes.top

op/