docmirror / dev-sidecar

开发者边车,github打不开,github加速,git clone加速,git release下载加速,stackoverflow加速
Mozilla Public License 2.0
15.61k stars 1.83k forks source link

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

Closed PYUDNG closed 1 month ago

PYUDNG commented 2 years ago

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 commented 2 years ago

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

PYUDNG commented 2 years ago

按照您的提示填写了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 commented 2 years ago

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

Haerbin23456 commented 1 year ago

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

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

cute-omega commented 6 months ago

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

wangliang181230 commented 6 months ago

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

cute-omega commented 6 months ago

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

你说得对,但是 1714482526413 172D6A1A

PYUDNG commented 6 months ago

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

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

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

PYUDNG commented 6 months ago

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

你说得对,但是 …

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

cute-omega commented 6 months ago

steam++现在没法加速Pixiv了,新版本没有,旧版本加速跑不了

---原始邮件--- 发件人: @.> 发送时间: 2024年4月30日(周二) 晚上9:16 收件人: @.>; 抄送: "Shuo @.**@.>; 主题: Re: [docmirror/dev-sidecar] [讨论] 利用DevSidecar配置Pixiv域前置 (Issue #233)

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

你说得对,但是 …

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

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>

wangliang181230 commented 6 months ago

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

你说得对,但是 1714482526413 172D6A1A

😑,我没碰到过。

cute-omega commented 6 months ago

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

你说得对,但是 …

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

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

PYUDNG commented 6 months ago

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

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

Haerbin23456 commented 6 months ago

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

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

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

卧槽项目复活了?沃槽?

wangliang181230 commented 6 months ago

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

PYUDNG commented 2 months ago

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

wangliang181230 commented 2 months ago

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

PYUDNG commented 2 months ago

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

wangliang181230 commented 2 months ago

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

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

PYUDNG commented 1 month ago

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

wangliang181230 commented 1 month ago

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

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

wangliang181230 commented 1 month ago

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

wangliang181230 commented 1 month ago

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

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

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

peasoft commented 1 month ago

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

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

PYUDNG commented 1 month ago

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

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

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

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

wangliang181230 commented 1 month ago

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

PYUDNG commented 1 month ago

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

如果我没有理解错,DS目前处理SNI功能的原理是:在 https://github.com/docmirror/dev-sidecar/blob/09023f57f93d0da2819e1083c267560a0505b162/packages/mitmproxy/src/lib/interceptor/impl/req/sni.js#L9 这里设置用户填写的SNI到rOptions.servername,然后在 https://github.com/docmirror/dev-sidecar/blob/09023f57f93d0da2819e1083c267560a0505b162/packages/mitmproxy/src/lib/proxy/mitmproxy/createRequestHandler.js#L147 这里将包含了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 commented 1 month ago

@PYUDNG @wangliang181230

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

wangliang181230 commented 1 month ago

@PYUDNG @wangliang181230

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

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

wangliang181230 commented 1 month ago

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