Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

luci-app-ssr-plus: Add apple domains data update settings and replace apple DNS support. #1615

Closed
wants to merge 1 commit into from

Conversation

zxlhhyccc
Copy link
Contributor

@zxlhhyccc zxlhhyccc commented Nov 24, 2024

已重开pr,本pr太凌乱。见:#1620
效果图:

image

image

image

image

@itfish92
Copy link

要是能自定义解析Apple域名的DNS就好了,我这边一直都是运营商的DNS比114的好用,最近新添加的这个Apple域名功能,我都是配置文件里替换掉114.114.114.114地址实现的,如果到时候大佬你的这个更新列表加了的话,每次更新后都得手动替换一下DNS

@zxlhhyccc
Copy link
Contributor Author

要是能自定义解析Apple域名的DNS就好了,我这边一直都是运营商的DNS比114的好用,最近新添加的这个Apple域名功能,我都是配置文件里替换掉114.114.114.114地址实现的,如果到时候大佬你的这个更新列表加了的话,每次更新后都得手动替换一下DNS

原版ssrp就是114的dns,你的意思是直接使用自定义的dns替换掉114吗?

@qwerttvv
Copy link
Contributor

#1554

我也有这个疑问

不过你可以劫持53端口到dnsmasq,就走你自己的dns了,不会用114了

@itfish92
Copy link

要是能自定义解析Apple域名的DNS就好了,我这边一直都是运营商的DNS比114的好用,最近新添加的这个Apple域名功能,我都是配置文件里替换掉114.114.114.114地址实现的,如果到时候大佬你的这个更新列表加了的话,每次更新后都得手动替换一下DNS

原版ssrp就是114的dns,你的意思是直接使用自定义的dns替换掉114吗?

是的,如果能在界面上替换,就不用每次更新列表后去手动替换luci-app-ssr-plus/root/etc/ssrplus/applechina.conf里面的DNS了。
还有就是和楼上一样的疑问:这个列表和直接加白名单有什么区别吗?

@zxlhhyccc
Copy link
Contributor Author

zxlhhyccc commented Nov 25, 2024

@qwerttvv 我有个想法,是否添加一个自定义dns输入框,然后更新脚本里在更新时自动替换自定义的dns。

@itfish92
Copy link

#1554

我也有这个疑问

不过你可以劫持53端口到dnsmasq,就走你自己的dns了,不会用114了

谢谢回复,具体如何操作的呢?能否指点一下

@zxlhhyccc
Copy link
Contributor Author

@itfish92 说实话,我也不明白起什么作用,只能要大屌大佬解释。

@zxlhhyccc
Copy link
Contributor Author

谢谢回复,具体如何操作的呢?能否指点一下

很简单,使用smartdns或者mosdns即可实现。

@itfish92
Copy link

itfish92 commented Nov 25, 2024

@qwerttvv 我有个想法,是否添加一个自定义dns输入框,然后更新脚本里在更新时自动进行替换自定义的dns。

对对对,我刚才想表达的就是这个意思,半天没法描述清楚

@zxlhhyccc
Copy link
Contributor Author

对对对,我刚才表达的就是这个意思,半天没法描述清楚

有空研究一下,哈哈哈。因为我这里114的dns貌似ping不通的,不知道怎么原因。

@itfish92
Copy link

对对对,我刚才表达的就是这个意思,半天没法描述清楚

有空研究一下,哈哈哈。因为我这里114的dns貌似ping不通的,不知道怎么原因。

114我也ping不通,本地运营商的也是ping不通但是贼流畅。阿里云和腾讯倒是能ping通

@qwerttvv
Copy link
Contributor

dnsmasq

option dns_redirect '1'

@zxlhhyccc
Copy link
Contributor Author

option dns_redirect '1'

这个是重定向到dnsmasq。

@zxlhhyccc
Copy link
Contributor Author

114我也ping不通,本地运营商的也是ping不通但是贼流畅。阿里云和腾讯倒是能ping通

@itfish92 自定义dns应该放在哪里为好?还是高级设置里吗?

@itfish92
Copy link

114我也ping不通,本地运营商的也是ping不通但是贼流畅。阿里云和腾讯倒是能ping通

@itfish92 自定义dns应该放在哪里为好?还是高级设置里吗?

嗯嗯,高级设置里,毕竟“Apple 域名解析优化”也在高级设置里,放一起吧,大佬辛苦了

@zxlhhyccc
Copy link
Contributor Author

嗯嗯,高级设置里,毕竟“Apple 域名解析优化”也在高级设置里,放一起吧,大佬辛苦了

要抽空搞,今天肯定搞不了咯

@itfish92
Copy link

嗯嗯,高级设置里,毕竟“Apple 域名解析优化”也在高级设置里,放一起吧,大佬辛苦了

要抽空搞,今天肯定搞不了咯

好的好的,期待大佬的新作,我第一时间更新

@zxlhhyccc
Copy link
Contributor Author

zxlhhyccc commented Nov 26, 2024

@itfish92
先搞好了页面替换,见图:
image

image

@itfish92
Copy link

@itfish92 先搞好了页面替换,见图: image

image

大佬威武!什么时候把这个提交到你的库里呢?我想一次性把你这几天提交了pr的这些都更新了,这边一直没合并,已经等不及了

@zxlhhyccc
Copy link
Contributor Author

zxlhhyccc commented Nov 26, 2024

@itfish92 等明天我把那个自动更新的搞搞再提pr,大屌可能忙没看是不是可以合并。

@itfish92
Copy link

@itfish92 等明天我把那个自动更新的搞搞再提pr,大屌可能忙没看是不是可以合并。

好的好的,我还说你提交到你的库里我先试试水呢😁

@zxlhhyccc zxlhhyccc changed the title luci-app-ssr-plus: Add apple domains data update settings. luci-app-ssr-plus: Add apple domains data update settings and replace 'apple DNS' support. Nov 28, 2024
@zxlhhyccc zxlhhyccc changed the title luci-app-ssr-plus: Add apple domains data update settings and replace 'apple DNS' support. luci-app-ssr-plus: Add apple domains data update settings and replace apple DNS support. Nov 28, 2024
@itfish92
Copy link

坐等大神杰作。。。🤗

@zxlhhyccc
Copy link
Contributor Author

好的好的,我还说你提交到你的库里我先试试水呢

@itfish92 搞定了,请使用吧。

@itfish92
Copy link

好的好的,我还说你提交到你的库里我先试试水呢

@itfish92 搞定了,请使用吧。

辛苦了!

@itfish92
Copy link

@zxlhhyccc
Copy link
Contributor Author

zxlhhyccc commented Nov 28, 2024

大佬,https://github.com/fw876/helloworld/pull/1618和https://github.com/fw876/helloworld/pull/1614这两个提交。我在编译的时候如何能一并加进来呢?有没有必要?

有必要添加进来,这些都是修复。
你是本地编译还是Actions编译?如果是本地编译,直接打补丁,如果是Actions编译,将补丁加入yml中即可,补丁下载格式如下(两种方式):
1、直接打补丁:
curl -fsSL https://patch-diff.githubusercontent.com/raw/fw876/helloworld/pull/1614.patch | patch -p1
curl -fsSL https://patch-diff.githubusercontent.com/raw/fw876/helloworld/pull/1615.patch | patch -p1
curl -fsSL https://patch-diff.githubusercontent.com/raw/fw876/helloworld/pull/1618.patch | patch -p1
2、下载下来再打补丁:
wget https://patch-diff.githubusercontent.com/raw/fw876/helloworld/pull/1614.patch && patch -p1 < 1614.patch
wget https://patch-diff.githubusercontent.com/raw/fw876/helloworld/pull/1615.patch && patch -p1 < 1615.patch
wget https://patch-diff.githubusercontent.com/raw/fw876/helloworld/pull/1618.patch && patch -p1 < 1618.patch

@itfish92
Copy link

@zxlhhyccc 学艺不精,都是照猫画虎本地编译的,专门一个移动硬盘用来编译LEDE,比如目前这个提交,我就直接在源码的feeds.conf.default里替换大佬你的库地址直接更新,剩下两个刚才我提问的,我看了下改动的不多,我就会手动编辑相关文件,不会逐个更新

@itfish92
Copy link

@zxlhhyccc 你这会改了的每次代码我都试了。只不过是改的太快,我想尽快编译出来反馈,一直没来得及截图回复

@zxlhhyccc
Copy link
Contributor Author

zxlhhyccc commented Nov 28, 2024

@itfish92 最后那个我提交的也不行?最后那个你重新复制粘贴一下,我修改了的,去除了代码残余。怀疑你说最后一个不行是那时没删除残余的代码。

@itfish92
Copy link

@zxlhhyccc 最后这次代码,为了避免有改动,我这会1点28分又试了一次还是不行。。是不是我这边有问题?不保留配置直接升级,ssrplus就是空的,我如果上传一次之前保存的全局配置,ssrplus就能正常了,高级设置里恢复出厂设置也是正常的,但是到系统里面执行重置就又不行了

@zxlhhyccc
Copy link
Contributor Author

zxlhhyccc commented Nov 28, 2024

@itfish92 明天我来测试。旧配置就是没有分片,我把配置里面分片去掉,然后不保留升级试试。我是怀疑你这里出了问题。

@zxlhhyccc
Copy link
Contributor Author

zxlhhyccc commented Nov 29, 2024

@itfish92 有个地方我搞错了,因为上面所发出来代码的配置文件在还没创建时会导致无法添加配置节而可能使得配置丢失。请你用下面代码再测试一下:

#!/bin/sh

uci -q batch <<-EOF >/dev/null
    [ -e "/etc/config/ucitrack" ] && {
        delete ucitrack.@shadowsocksr[-1]
        add ucitrack shadowsocksr
        set ucitrack.@shadowsocksr[-1].init=shadowsocksr
        commit ucitrack
    }

    delete firewall.shadowsocksr
    set firewall.shadowsocksr=include
    set firewall.shadowsocksr.type=script
    set firewall.shadowsocksr.path=/var/etc/shadowsocksr.include
    set firewall.shadowsocksr.reload=1
    commit firewall
EOF

rm -rf /etc/config/shadowsocksr-opkg /etc/ssrplus/*opkg
touch /etc/ssrplus/china_ssr.txt
touch /etc/ssrplus/deny.list
touch /etc/ssrplus/white.list
touch /etc/ssrplus/black.list
touch /etc/ssrplus/netflix.list
touch /etc/ssrplus/netflixip.list
touch /etc/ssrplus/gfw_base.conf
touch /etc/ssrplus/gfw_list.conf
touch /etc/ssrplus/oversea_list.conf
touch /etc/ssrplus/ad.conf
touch /etc/config/shadowsocksr

if [ -s "/etc/config/shadowsocksr" ]; then
    if ! uci -q get shadowsocksr.@global_xray_fragment[0] > /dev/null; then
        uci -q add shadowsocksr global_xray_fragment
        uci -q set shadowsocksr.@global_xray_fragment[0].fragment='0'
        uci -q set shadowsocksr.@global_xray_fragment[0].noise='0'
        uci -q commit shadowsocksr
    fi

    sed -i "s/option type 'vmess'/option type 'v2ray'\n\toption v2ray_protocol 'vmess'/g" /etc/config/shadowsocksr
    sed -i "s/option type 'vless'/option type 'v2ray'\n\toption v2ray_protocol 'vless'/g" /etc/config/shadowsocksr
    sed -i "s/option encrypt_method_v2ray_ss/option encrypt_method_ss/g" /etc/config/shadowsocksr
    sed -i "s/option xtls/option tls/g" /etc/config/shadowsocksr
    sed -i "/option vless_flow/d" /etc/config/shadowsocksr
    sed -i "/option fingerprint 'disable'/d" /etc/config/shadowsocksr
    /etc/init.d/shadowsocksr restart
fi

[ -s "/etc/config/shadowsocksr" ] || /etc/init.d/shadowsocksr reset

if [ -s "/etc/uwsgi/vassals/luci-webui.ini" ];then
   limit=$(cat /etc/uwsgi/vassals/luci-webui.ini  | grep -Eo "limit-as.*"|grep -Eo "[0-9]+")
   [ $limit -lt 5000 ] && sed -i '/limit-as/c\limit-as = 5000' /etc/uwsgi/vassals/luci-webui.ini && \
   /etc/init.d/uwsgi restart
fi

rm -rf /tmp/luci-modulecache /tmp/luci-indexcache
exit 0

@itfish92
Copy link

@itfish92 有个地方我搞错了,因为上面所发出来代码的配置文件在还没创建时会导致无法添加配置节而可能使得配置丢失。请你用下面代码再测试一下:

#!/bin/sh

uci -q batch <<-EOF >/dev/null
    [ -e "/etc/config/ucitrack" ] && {
        delete ucitrack.@shadowsocksr[-1]
        add ucitrack shadowsocksr
        set ucitrack.@shadowsocksr[-1].init=shadowsocksr
        commit ucitrack
    }

    delete firewall.shadowsocksr
    set firewall.shadowsocksr=include
    set firewall.shadowsocksr.type=script
    set firewall.shadowsocksr.path=/var/etc/shadowsocksr.include
    set firewall.shadowsocksr.reload=1
    commit firewall
EOF

rm -rf /etc/config/shadowsocksr-opkg /etc/ssrplus/*opkg
touch /etc/ssrplus/china_ssr.txt
touch /etc/ssrplus/deny.list
touch /etc/ssrplus/white.list
touch /etc/ssrplus/black.list
touch /etc/ssrplus/netflix.list
touch /etc/ssrplus/netflixip.list
touch /etc/ssrplus/gfw_base.conf
touch /etc/ssrplus/gfw_list.conf
touch /etc/ssrplus/oversea_list.conf
touch /etc/ssrplus/ad.conf
touch /etc/config/shadowsocksr

if [ -s "/etc/config/shadowsocksr" ]; then
    if ! uci -q get shadowsocksr.@global_xray_fragment[0] > /dev/null; then
        uci -q add shadowsocksr global_xray_fragment
        uci -q set shadowsocksr.@global_xray_fragment[0].fragment='0'
        uci -q set shadowsocksr.@global_xray_fragment[0].noise='0'
        uci -q commit shadowsocksr
    fi

    sed -i "s/option type 'vmess'/option type 'v2ray'\n\toption v2ray_protocol 'vmess'/g" /etc/config/shadowsocksr
    sed -i "s/option type 'vless'/option type 'v2ray'\n\toption v2ray_protocol 'vless'/g" /etc/config/shadowsocksr
    sed -i "s/option encrypt_method_v2ray_ss/option encrypt_method_ss/g" /etc/config/shadowsocksr
    sed -i "s/option xtls/option tls/g" /etc/config/shadowsocksr
    sed -i "/option vless_flow/d" /etc/config/shadowsocksr
    sed -i "/option fingerprint 'disable'/d" /etc/config/shadowsocksr
    /etc/init.d/shadowsocksr restart
fi

[ -s "/etc/config/shadowsocksr" ] || /etc/init.d/shadowsocksr reset

if [ -s "/etc/uwsgi/vassals/luci-webui.ini" ];then
   limit=$(cat /etc/uwsgi/vassals/luci-webui.ini  | grep -Eo "limit-as.*"|grep -Eo "[0-9]+")
   [ $limit -lt 5000 ] && sed -i '/limit-as/c\limit-as = 5000' /etc/uwsgi/vassals/luci-webui.ini && \
   /etc/init.d/uwsgi restart
fi

rm -rf /tmp/luci-modulecache /tmp/luci-indexcache
exit 0

我要开始了,等我

@itfish92
Copy link

@zxlhhyccc 这次的OK了!
2024-11-29 22-52-15屏幕截图

@zxlhhyccc
Copy link
Contributor Author

zxlhhyccc commented Nov 29, 2024

@itfish92 这个PR要关闭重开一个PR了,另外兼容旧配置的代码已更新,与这里最后发的代码有点差异。见:#1614

@itfish92
Copy link

itfish92 commented Nov 29, 2024

@zxlhhyccc 大佬,有一个小问题咨询下,用了这个pr后,applechina.conf里面的格式从原先的server=xxxx变成了address=xxxx,是正常的吧?(刚才是用一个号回复你,被我删了)

@zxlhhyccc
Copy link
Contributor Author

zxlhhyccc commented Nov 29, 2024

@zxlhhyccc 大佬,有一个小问题咨询下,用了这个pr后,applechina.conf里面的格式从原先的server=xxxx变成了address=xxxx,是正常的吧?(刚才是用一个号回复你,被我删了)

我看一下原来的是啥,可能是我搞错了。
艹,真的是我搞错了,明天来修一下。

@zxlhhyccc
Copy link
Contributor Author

zxlhhyccc commented Nov 29, 2024

@itfish92
已修复,见:#1620

@itfish92
Copy link

@zxlhhyccc 大佬,有一个小问题咨询下,用了这个pr后,applechina.conf里面的格式从原先的server=xxxx变成了address=xxxx,是正常的吧?(刚才是用一个号回复你,被我删了)

我看一下原来的是啥,可能是我搞错了。 艹,真的是我搞错了,明天来修一下。

我邮箱里看到你回复的让我改下试试,我这会闲下来开电脑正准备试试呢。

@zxlhhyccc
Copy link
Contributor Author

zxlhhyccc commented Nov 30, 2024

我邮箱里看到你回复的让我改下试试,我这会闲下来开电脑正准备试试呢。

#1620 测试没问题了吧?

@itfish92
Copy link

我邮箱里看到你回复的让我改下试试,我这会闲下来开电脑正准备试试呢。

#1620 测试没问题了吧?

刚刷了一遍,没问题了。

@zxlhhyccc
Copy link
Contributor Author

zxlhhyccc commented Nov 30, 2024

刚刷了一遍,没问题了。

@itfish92 大屌大佬已经合并了。我准备再次添加更新时间可以选择。

@itfish92
Copy link

@zxlhhyccc 大佬,请教个问题可以吗,怎么用命令单独更新gfwlist或者Chinaip或者AppleIP呢?就像是在ssrplus页面上的“状态”那一栏那样可以用按钮单独更新。
目前我翻源码研究出来用“/usr/bin/lua /usr/share/shadowsocksr/ssrplusupdate.lua”可以更新所有的,包括节点订阅。
用“/usr/bin/lua /usr/share/shadowsocksr/update.lua”这个命令可以一同更新上面那三项。如何用命令单独更新呢?大佬赐教下,谢谢了

@zxlhhyccc
Copy link
Contributor Author

update.lua

update.lua是所有更新的合并脚本,你可以删除不需更新的代码。
另,我刚重新又提交了更新时间的选择功能了(前期提交了但大屌回退了,可能是因为没兼容旧版配置,这次兼容),除非特殊情况下,没必要日日更新订阅和数据库。

@itfish92
Copy link

update.lua

update.lua是所有更新的合并脚本,你可以删除不需更新的代码。 另,我刚重新又提交了更新时间的选择功能了(前期提交了但大屌回退了,可能是因为没兼容旧版配置,这次兼容),除非特殊情况下,没必要日日更新订阅和数据库。

确实是的,所以我都是计划任务里用“/usr/bin/lua /usr/share/shadowsocksr/update.lua”这个命令周更新的,你的这个新pr就更方便了

@zxlhhyccc
Copy link
Contributor Author

zxlhhyccc commented Nov 30, 2024

确实是的,所以我都是计划任务里用“/usr/bin/lua /usr/share/shadowsocksr/update.lua”这个命令周更新的,你的这个新pr就更方便了

你测试一下我新提交的pr: #1621 ,看是否兼容旧配置,我测试是兼容的。

@itfish92
Copy link

itfish92 commented Nov 30, 2024

确实是的,所以我都是计划任务里用“/usr/bin/lua /usr/share/shadowsocksr/update.lua”这个命令周更新的,你的这个新pr就更方便了

你测试一下我新提交的pr: #1621 ,看是否兼容旧配置,我测试是兼容的。

旧配置是指有分片设置之前还是之后?我试了有分片之后的旧配置能兼容。
但是图里我画红框那是不是有歧义?设置了周更,显示的还是【更新时间(每天)】,直接把括号里面的“每天”二字去掉是不是就不歧义了
截图20241130_212446 357

@zxlhhyccc
Copy link
Contributor Author

zxlhhyccc commented Nov 30, 2024

旧配置是指有分片设置之前还是之后?我试了有分片之后的旧配置能兼容。

这次说的旧配置是指更新时间的旧配置,分片旧配置已经解决了。

但是图里我画红框那是不是有歧义?设置了周更,显示的还是【更新时间(每天)】,直接把括号里面的“每天”二字去掉是不是就不歧义了

第一个更新时间涉及到周和天,实在是不好怎么定义,第二个是否可以设置为:更新时间(小时)?更新时间涉及到周和天暂时只能借鉴openclash的设置更新时间。你有什么好建议?

@itfish92
Copy link

@zxlhhyccc 第一个更新时间是周和天,没问题,就这样就行啊。
第二个为:更新时间(小时),我觉得可以。
第三个是结合上面的“小时”,具体到分钟?还是就如字面意思(更新间隔 ),如果是间隔的话,我理解的就是每隔?分钟更新一次,我觉得没必要吧😆。不管是哪种,我感觉直接可以去掉,两种需求都没那么太刚需(具体到分钟或者每隔?分钟)

直接就两个选项即可,定时每周几或者每天的几点整。剩下的如果有特殊要求用计划任务实现吧。

我自己对这个功能是可有可无,计划任务都能实现,大佬你也可以咨询下广大玩家的建议😁

@zxlhhyccc
Copy link
Contributor Author

我自己对这个功能是可有可无,计划任务都能实现,大佬你也可以咨询下广大玩家的建议

@itfish92 你测试了旧配置的更新时间是兼容的吧?

@itfish92
Copy link

我自己对这个功能是可有可无,计划任务都能实现,大佬你也可以咨询下广大玩家的建议

@itfish92 你测试了旧配置的更新时间是兼容的吧?

等我几分钟,我再测测

@itfish92
Copy link

@zxlhhyccc 测完了,兼容旧配置

@itfish92
Copy link

@zxlhhyccc 这会还发现个很小的小问题,如果是不带配置全新升级最新编译的固件的话,高级设置里apple域名优化这一项是默认勾选着的,但是config文件里没有apple_optimization这一项,状态里也没有更新apple域名数据库这一项,是不是意味着这样的情况下,虽然页面默认勾选着,但是实际没起作用?如果在高级设置里点一下保存配置,就正常了。这个问题可以忽略,我提出来只是看看对大佬你有没有用处

@zxlhhyccc
Copy link
Contributor Author

zxlhhyccc commented Nov 30, 2024

@itfish92 apple_optimization是大屌大佬新加上去的(我没动它),不保留配置升级默认config应该是有的,否则应该不可以看到这个勾选项。另外,不需要到高级配置里保存配置,只要软件运行会自动添加这个配置,然后就生效了。你不信那可以恢复出厂或者重新升级固件测试一下就明白了。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants