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

如何使用DevSidecar配置直连Pixiv站点 #233

Closed
PYUDNG opened this issue Nov 4, 2022 · 31 comments
Closed

如何使用DevSidecar配置直连Pixiv站点 #233

PYUDNG opened this issue Nov 4, 2022 · 31 comments
Assignees
Labels
Config Issue 配置问题 站点:Pixiv 访问Pixiv相关域名的问题 v1.8.9 1.8.9版本
Milestone

Comments

@PYUDNG
Copy link

PYUDNG commented Nov 4, 2022

Mac系统,使用 Pixiv-Nginx 可以直连pixiv,但是如下图所示配置DevSidecar却无法访问。已打开代理服务和系统代理开关,已正确安装和信任根证书,github已经加速成功,测试时已经关闭了nginx和其他可能干扰运行的代理。

DevSidecar相关拦截配置:
截屏2022-11-05 上午2 49 39
截屏2022-11-05 上午2 58 54

IP测速结果:
截屏2022-11-05 上午3 00 32

访问Pixiv时网页返回:
截屏2022-11-05 上午2 59 57

因为使用Nginx是可以直接访问的,所以应该是我的DevSidecar配置方式不对,有没有大佬懂得如何配置?
十分感谢。

@greper
Copy link
Contributor

greper commented Nov 23, 2022

sni不能为空,你随便写点字母,比如baidu.com

@PYUDNG
Copy link
Author

PYUDNG commented Nov 23, 2022

按照您的提示填写了baidu.com,如图:
截屏2022-11-23 下午11 12 03
DNS及ip测速结果如下
截屏2022-11-23 下午11 13 34
截屏2022-11-23 下午11 13 53
访问pixiv返回这个
截屏2022-11-23 下午11 21 10

@PYUDNG
Copy link
Author

PYUDNG commented Nov 23, 2022

猜想,是不是pixiv如果收到了sni就会尝试按照sni匹配域名发放证书,如果没有收到sni才会发放"*.pixiv.net"泛域名证书。如果是这样,DevSidecar有在clienthello中不发送sni的方法吗?
PS:最后一张浏览器截图中右边的几个元素是浏览器插件,不影响网络请求的。

@Haerbin23456
Copy link

猜想,是不是pixiv如果收到了sni就会尝试按照sni匹配域名发放证书,如果没有收到sni才会发放"*.pixiv.net"泛域名证书。如果是这样,DevSidecar有在clienthello中不发送sni的方法吗? PS:最后一张浏览器截图中右边的几个元素是浏览器插件,不影响网络请求的。

可是这篇文章里面写的,sni变成?124也能上去啊

@wangliang181230 wangliang181230 added Config Issue 配置问题 站点:Pixiv 访问Pixiv相关域名的问题 OS: MacOS Mac操作系统 labels Mar 29, 2024
@cute-omega
Copy link

不知道,我现在用彩蛋也会报错
1714480258423

@wangliang181230
Copy link
Contributor

把拦截设置和DNS设置都去掉,走梯子就可以了。

@cute-omega
Copy link

把拦截设置和DNS设置都去掉,走梯子就可以了。

你说得对,但是
1714482526413
172D6A1A

@PYUDNG
Copy link
Author

PYUDNG commented Apr 30, 2024

也许有点离题了,但我现在用Accesser是可以直连pixiv的。不知道现在的dev-sidecar是否可以不发送sni,但是我这里Accesser配合mihomo访问pixiv是完全没有问题的。

另外个人想法,我现在认为要想实现pixiv直连(无彩蛋纯加速)只有完全去除SNI字段才可以实现,对于@Haerbin23456 提到的“sni变成?124也能上去”的情况我也不是很了解其原因。之前@greper提到的“SNI不能为空”似乎影响了dev-sidecar直连诸如pixiv这类需要去除SNI字段的网站的能力;但我也不专精于此,如有机会开发者能深入研究测试也许会对此问题有所帮助。

再次感谢开发者的开发维护。

@PYUDNG
Copy link
Author

PYUDNG commented Apr 30, 2024

把拦截设置和DNS设置都去掉,走梯子就可以了。

你说得对,但是 …

我也遇到过这种情况,猜测应该是彩蛋ip不纯净导致的。我这里推荐用直连的方法而不是彩蛋,既可以节约流量访问又稳定。如果是手机端有pixez-flutter/Pixiv-Shaft等,电脑端可以用Pixeval/Steam++/Accesser/Pixiv-Nginx等工具。

@cute-omega
Copy link

cute-omega commented Apr 30, 2024 via email

@wangliang181230
Copy link
Contributor

把拦截设置和DNS设置都去掉,走梯子就可以了。

你说得对,但是 1714482526413 172D6A1A

😑,我没碰到过。

@cute-omega
Copy link

把拦截设置和DNS设置都去掉,走梯子就可以了。

你说得对,但是 …

我也遇到过这种情况,猜测应该是彩蛋ip不纯净导致的。我这里推荐用直连的方法而不是彩蛋,既可以节约流量访问又稳定。如果是手机端有pixez-flutter/Pixiv-Shaft等,电脑端可以用Pixeval/Steam++/Accesser/Pixiv-Nginx等工具。

不知道为什么彩蛋ip不纯净,我是用cf worker做二级代理的(顺便吐槽一下二级代理的仓库还没处理我的pr)

@PYUDNG
Copy link
Author

PYUDNG commented May 1, 2024

不知道为什么彩蛋ip不纯净,我是用cf worker做二级代理的(顺便吐槽一下二级代理的仓库还没处理我的pr)

我这边也是cf报错被阻止,应该就是p对cf有意见(
同样地,比起彩蛋我这边还是更推荐直连

@Haerbin23456
Copy link

也许有点离题了,但我现在用Accesser是可以直连pixiv的。不知道现在的dev-sidecar是否可以不发送sni,但是我这里Accesser配合mihomo访问pixiv是完全没有问题的。

另外个人想法,我现在认为要想实现pixiv直连(无彩蛋纯加速)只有完全去除SNI字段才可以实现,对于@Haerbin23456 提到的“sni变成?124也能上去”的情况我也不是很了解其原因。之前@greper提到的“SNI不能为空”似乎影响了dev-sidecar直连诸如pixiv这类需要去除SNI字段的网站的能力;但我也不专精于此,如有机会开发者能深入研究测试也许会对此问题有所帮助。

再次感谢开发者的开发维护。

卧槽项目复活了?沃槽?

@wangliang181230
Copy link
Contributor

也不算复活,只是我力所能及的范围内给DS充充能,哈哈。

@PYUDNG
Copy link
Author

PYUDNG commented Sep 21, 2024

看到最近这个项目又活跃起来了,恭喜:)
现在这个issue是什么状态,DS是否已经可以配置pixiv的域前置了呢?

@wangliang181230
Copy link
Contributor

wangliang181230 commented Sep 21, 2024

还是不行,我尝试了SNI,一直报错,哎。暂时只能开彩蛋。

@PYUDNG
Copy link
Author

PYUDNG commented Sep 22, 2024

那DS现在可以不发送SNI了吗?是没有实现这个功能,还是实现了pixiv依然无法直连呢?

@wangliang181230
Copy link
Contributor

wangliang181230 commented Sep 22, 2024

那DS现在可以不发送SNI了吗?是没有实现这个功能,还是实现了pixiv依然无法直连呢?

@PYUDNG 默认情况下就是没有SNI的啊,但不用SNI直接被GFW拦截了啊。用了SNI又报错。现在用DS只能通过梯子访问Pixiv。

@PYUDNG
Copy link
Author

PYUDNG commented Sep 28, 2024

咱们之间可能有些误解,我这里说的不发送SNI指的是在https client hello中彻底不发送SNI扩展字段,(相对于DS一直以来所做的更改SNI字段的内容

@wangliang181230
Copy link
Contributor

咱们之间可能有些误解,我这里说的不发送SNI指的是在https client hello中_彻底不发送SNI扩展字段,(相对于DS一直以来所做的_更改SNI字段的内容

我知道啊,DS的SNI就是在 SSL/TLS 在握手过程中传递给服务端的servername。但就像我说的,不发送SNI,直连会被GFW拦截。

@wangliang181230
Copy link
Contributor

拦截设置里,没有设置sni时,DS本来就是不发送SNI的,估计是你误解了。

@wangliang181230
Copy link
Contributor

wangliang181230 commented Sep 29, 2024

我看你的拦截配置截图,设置了

"*.pixiv.net": {
    ".*": {
      "sni": ""
    }
}

你这个设置了跟没设置一个样,DS判断配置为空,直接跳过了SNI拦截器了。

@peasoft
Copy link

peasoft commented Oct 11, 2024

但就像我说的,不发送SNI,直连会被GFW拦截。

事实上 GFW 在各地区的强度是不一样的,楼主所在地区使用可以用其它类似程序访问那就说明无 SNI 不会被拦截。

@PYUDNG
Copy link
Author

PYUDNG commented Oct 17, 2024

我刚刚使用dev-sidecar测试了对pixiv的访问。按照您说的,

拦截设置里,没有设置sni时,DS本来就是不发送SNI的

我进行了如下配置:
image
在点击应用后,依然无法访问pixiv:
image

但是我在使用Accesser时确实可以访问pixiv,因此目前认为是dev-sidecar未支持pixiv。

@wangliang181230
Copy link
Contributor

wangliang181230 commented Oct 17, 2024

@PYUDNG
DS 一直没有支持直连 pixiv,暂时也不知道 Accesser 直连 pixiv 的原理。
反正在 DS 里用了 SNI,也无法直连pixiv。
现在用 DS 访问 pixiv 只能通过彩蛋来访问。

@PYUDNG
Copy link
Author

PYUDNG commented Oct 17, 2024

我自己clone了git repo调试了代码,或许发现了问题所在。

如果我没有理解错,DS目前处理SNI功能的原理是:在

rOptions.servername = interceptOpt.sni

这里设置用户填写的SNI到rOptions.servername,然后在
proxyReq = (rOptions.protocol === 'https:' ? https : http).request(rOptions, (proxyRes) => {

这里将包含了servername属性的rOptions传入https.request

经查阅Node.js文档对https.request第一参数options的说明知,options.servername属性来自tls.connect,传入options.servername可以设置SNI字段的内容,而不能删除(不发送)SNI字段。如果我没有理解错,当在拦截设置里,没有设置sni时,传入https.requestrOptions内servername为空,nodejs发送默认的SNI(即www.pixiv.net),因此被GFW拦截。

如需不发送SNI字段,经谷歌可得可以通过创建一个自定义的.createConnection方法实现

@lanyue2024
Copy link

@PYUDNG @wangliang181230

是可以随便用sni的,只是IP要改成 cdn-origin.pixiv.net 指向的IP。

@wangliang181230
Copy link
Contributor

@PYUDNG @wangliang181230

是可以随便用sni的,只是IP要改成 cdn-origin.pixiv.net 指向的IP。

我试了,真的可以直连了,哈哈。谢谢大佬。

@wangliang181230 wangliang181230 changed the title [讨论] 利用DevSidecar配置Pixiv域前置 如何使用DevSidecar配置直连Pixiv站点 Oct 22, 2024
@wangliang181230 wangliang181230 removed the OS: MacOS Mac操作系统 label Oct 22, 2024
@wangliang181230 wangliang181230 added this to the 1.8.9 milestone Oct 22, 2024
@wangliang181230 wangliang181230 self-assigned this Oct 22, 2024
@wangliang181230
Copy link
Contributor

wangliang181230 commented Oct 22, 2024

共享远程配置文件已调整,大家可以使用默认模式直连Pixiv站点了。
Closed this as completed in Gitee f7ba424...a0bccbb

@wangliang181230 wangliang181230 added the v1.8.9 1.8.9版本 label Nov 15, 2024
@PYUDNG
Copy link
Author

PYUDNG commented Nov 26, 2024

我这里也测试通过,十分感谢!恭喜实现直连!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Config Issue 配置问题 站点:Pixiv 访问Pixiv相关域名的问题 v1.8.9 1.8.9版本
Projects
None yet
Development

No branches or pull requests

7 participants