这篇文章上次修改于 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 与 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,但是可以上网
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
op/