本帖最后由 lanrone 于 2024-2-21 20:10 编辑
以下新内容2024年2月21日更新
#98楼的内容丢失
我把shell代码更新到主贴,方便大家查看
- ###使用镜像加速安装entware环境
- until ping -c 1 223.5.5.5 >/dev/null 2>&1; do sleep 1; done
- logger "internet已接通"
- if [ ! -f /opt/bin/opkg ]; then
- mount -t tmpfs tmpfs /opt -o size=30M
- for folder in bin etc lib/opkg tmp var/lock var/run; do
- [ ! -d "/opt/$folder" ] && mkdir -p /opt/$folder
- done
- wget http://mirrors.bfsu.edu.cn/entware/mipselsf-k3.4/installer/opkg -O /opt/bin/opkg
- chmod 755 /opt/bin/opkg
- wget http://mirrors.bfsu.edu.cn/entware/mipselsf-k3.4/installer/opkg.conf -O /opt/etc/opkg.conf
- sed -i 's|bin.entware.net|mirrors.bfsu.edu.cn/entware|g' /opt/etc/opkg.conf
- /opt/bin/opkg update
- ###Fix for multiuser environment
- chmod 777 /opt/tmp
- for file in passwd group shells shadow; do
- cp /etc/$file /opt/etc/$file
- done
- cp /etc/TZ /opt/etc/TZ
- logger "entware环境创建完成"
- fi
- ###安装smartdns
- /opt/bin/opkg install smartdns
- cat >/opt/etc/smartdns/smartdns.conf <<"EOF"
- user nobody
- server-name smartdns-padavan
- #log-level info
- #log-size 128K
- #log-num 0
- bind [::]:60053
- #audit-enable yes
- #audit-size 128K
- #audit-num 0
- force-qtype-SOA 65
- #@@@@@@@@@@@
- #@@@@@@@@@@@
- server-https https://223.5.5.5/dns-query
- server-https https://223.6.6.6/dns-query
- server-https https://1.12.12.12/dns-query
- server-https https://120.53.53.53/dns-query
- server-https https://doh.360.cn/dns-query
- server-https https://1.0.0.1/dns-query
- server-https https://dns.adguard.com/dns-query
- server-tls 223.6.6.6
- server-tls 120.53.53.53
- #@@@@@@@@@@@
- #@@@@@@@@@@@
- conf-file /opt/etc/smartdns/anti-ad-smartdns.conf
- EOF
- ###安装wget-ssl,下载anti-ad规则
- /opt/bin/opkg install wget-ssl ca-certificates
- /opt/libexec/wget-ssl https://raw.githubusercontents.com/privacy-protection-tools/anti-AD/master/anti-ad-smartdns.conf -O /opt/etc/smartdns/anti-ad-smartdns.conf --no-check-certificate
- killall smartdns
- /opt/sbin/smartdns &
- logger "smartdns pid is $(pidof smartdns)"
- logger "smartdns过滤广告规则已加载"
- ###如果smartdns启动失败,dnsmasq继续以默认配置运行
- if test -n "$(pidof smartdns)"; then
- ###禁用dnsmasq缓存
- cp /etc/dnsmasq.conf /opt/etc/dnsmasq.conf
- sed -i '/cache-size=/d' /opt/etc/dnsmasq.conf
- cat >>/opt/etc/dnsmasq.conf <<"EOF"
- no-resolv
- no-hosts
- cache-size=0
- query-port=65353
- server=127.0.0.1#60053
- EOF
- killall dnsmasq
- dnsmasq -C /opt/etc/dnsmasq.conf
- logger "dnsmasq pid is $(pidof dnsmasq)"
- logger "dnsmasq已重启并禁用缓存"
- logger "smartdns已启用,开始转发dnsmasq的dns解析请求"
- else
- logger "smartdns启动异常,dnsmasq以默认配置继续运行"
- fi
复制代码
考虑到还有坛友不会操作的,我再更新一下本贴,再降低一点难度,说实话难度已经降到最低了。
https://www.right.com.cn/forum/forum.php?mod=redirect&goto=findpost&ptid=8310114&pid=19497413
直接点击上面链接看#98楼(2024年2月21日更新,不明原因98楼的内容丢失)
脚本进行了更新:降低了设置的难度,优化了脚本的稳定性,主要是检测到entware软件安装异常时确保不影响路由器正常工作(因为用到了软件源的镜像链接,虽然我没遇到镜像源出现故障,但是但是万一呢,所以我在脚本逻辑上做了安全防范,就算出现下载链接失效,路由器也不会受到任何影响,任何情况下脚本所做的操作都是在内存中进行的不会涉及闪存,不会影响路由器任何设置,敬请放心。)
为什么要这样做呢?
我的k2p,为了尽可能降低运行内存占用,几年前刷了精简版的padavan,虽然这些年运行一直挺稳定的,但是抵不住折腾带来的快乐呀。继续折腾吧,由之前稳定变得又不稳定了,再排错修复脚本bug,又变得稳定好用了。所以要分享一下,既可以分享一下喜悦,又可以分享些有用的知识点。
这台k2p到时啥情况呀?
编译固件时去掉了一些功能,例如,dropbear,你不会不知道这是啥吧,这是ssh呀(原固件保留了telnet),还去掉了各种增强插件,wget也不能下载https链接。有时精简也会带来很多不便。
后来,我发现了entware,但是我没有硬改啊,没有usb接口,怎么办呀,那后面再慢慢说吧。
如果安装了entware环境,这里面好多软件包可以适当的拿来用哦,如果你不会写配置文件或简单脚本,这些软件也是很难驾驭的。
我的想法是:我在k2p豪华的128mb内存中 划出来50mb空间(空间是共享的,不会一下子少50mb空间的,放心吧),挂载到 /opt 然后使用wget 下载opkg和它的配置文件(这玩意应该是静态编译的,要不为啥opkg可以免库直接运行呢),然后你发现entware(opkg)的官方网站下载速度好慢啊(接近断流),好吧我只能在配置文件中把官方软件源替换为镜像源进行加速了。差不多entware环境就好了。
剩下就是脚本的事情了。
下面是更新后的脚本内容,(你要做的就是,复制下面脚本,填到自定义脚本》在路由器启动后执行》下面框框里,然后点击应用设置,然后点击padavan首页右上方重启按钮,不要拔电重启路由器,路由器开机时一定要能联网,不然不起作用) - ###使用镜像加速安装entware环境
- until ping -c 1 223.5.5.5 >/dev/null;do sleep 10;done
- if [ ! -f /opt/bin/opkg ];then
- mount -t tmpfs tmpfs /opt -o size=50M
- for folder in bin etc lib/opkg tmp var/lock var/run
- do
- [ ! -d "/opt/$folder" ] && mkdir -p /opt/$folder
- done
- wget http://mirrors.bfsu.edu.cn/entware/mipselsf-k3.4/installer/opkg -O /opt/bin/opkg
- chmod 755 /opt/bin/opkg
- wget http://mirrors.bfsu.edu.cn/entware/mipselsf-k3.4/installer/opkg.conf -O /opt/etc/opkg.conf
- sed -i 's|bin.entware.net|mirrors.bfsu.edu.cn/entware|g' /opt/etc/opkg.conf
- /opt/bin/opkg update
- ###Fix for multiuser environment
- chmod 777 /opt/tmp
- for file in passwd group shells shadow
- do
- cp /etc/$file /opt/etc/$file
- done
- fi
- logger "entware环境创建完成"
复制代码- ###安装smartdns
- /opt/bin/opkg install smartdns
- cat > /opt/etc/smartdns/smartdns.conf <<EOF
- server-name smartdns-k2p
- log-level off
- log-num 1
- bind [::]:60053
- #audit-enable yes
- #audit-num 1
- force-qtype-SOA 65
- server 223.5.5.5
- server 119.29.29.29
- server 180.76.76.76
- server 180.184.1.1
- server 114.114.114.114
- server 101.226.4.6
- server 1.2.4.8
- server 1.0.0.1
- server 1.1.8.8
- server 202.96.128.166 -bootstrap-dns
- server 202.96.134.133 -bootstrap-dns
- conf-file /opt/etc/smartdns/anti-ad-smartdns.conf
- EOF
- ###安装wget-ssl,下载anti-ad规则
- /opt/bin/opkg install wget-ssl
- /opt/libexec/wget-ssl https://raw.githubusercontents.com/privacy-protection-tools/anti-AD/master/anti-ad-smartdns.conf -O /opt/etc/smartdns/anti-ad-smartdns.conf --no-check-certificate
- /opt/sbin/smartdns &
- logger "smartdns已启动,过滤广告规则已加载,等待dnsmasq重新配置"
复制代码- ###如果smartdns启动失败,dnsmasq重启并禁用smartdns
- if test -n "`pidof smartdns`";then
- ###禁用dnsmasq缓存
- cp /etc/dnsmasq.conf /opt/etc/dnsmasq.conf
- sed -i '/cache-size=/d' /opt/etc/dnsmasq.conf
- cat >> /opt/etc/dnsmasq.conf <<EOF
- no-resolv
- no-hosts
- cache-size=0
- server=127.0.0.1#60053
- EOF
- killall dnsmasq
- dnsmasq -C /opt/etc/dnsmasq.conf
- logger "dnsmasq已重新配置并禁用缓存,smartdns已启用"
- else
- logger "smartdns启动异常,dnsmasq以默认配置继续运行"
- fi
复制代码
下面隐藏神秘脚本
顺手再用脚本添加几个可能有用的软件
- ###安装dropbear
- /opt/bin/opkg install dropbear
- /opt/sbin/dropbear -p 22 &
- logger "dropbear已启动"
- ###安装vsftpd
- /opt/bin/opkg install vsftpd
- cat > /opt/etc/vsftpd/vsftpd.conf <<EOF
- anonymous_enable=NO
- local_enable=YES
- write_enable=YES
- local_umask=022
- use_localtime=YES
- connect_from_port_20=YES
- listen=YES
- pam_service_name=vsftpd
- EOF
- /opt/sbin/vsftpd &
- logger "vsftpd已启动"
复制代码- ###安装ttyd
- /opt/bin/opkg install ttyd
- /opt/bin/ttyd -p 8080 login &
- logger "ttyd已启动,地址ip:8080"
复制代码
搞完这些后,重启一下路由器,你的k2p可以高性能的过滤广告喽
下面说重点,其实这篇帖子,是手动为padavan添加smartdns的教程。当然有些padavan固件集成了smartdns,如果你不想刷机,你可以像我一样手动安装。
特别说明一下,dnsmasq.conf中如果定义port=0,表示禁用dnsmasq dns转发功能,并保留dhcp功能,这时在smartdns.conf中定义bind [::]:53,就相当于用smartdns代替了dnsmasq的dns功能。为啥我没这样搞,因为我遇到bug了(padavan首页已连接设备都是星号,显不出设备名称,我也不知道为啥),我才搞了smartdns做上游dns(我还配置了阿里、腾讯、字节跳动、百度、cnnic、cloudflare,还有运营商dns等做上游查询),使用dnsmasq转发路由器请求。
smartdns是啥,是国内宽带,特别是移动宽带用户的福音,但是你竟然还不知道,哦no,github上有库,可以查看一下。
|