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

无法访问pixiv.net #2

Closed
LSP0123 opened this issue Jun 10, 2023 · 4 comments
Closed

无法访问pixiv.net #2

LSP0123 opened this issue Jun 10, 2023 · 4 comments

Comments

@LSP0123
Copy link

LSP0123 commented Jun 10, 2023

问题描述

# 监听端口
listen_addr: :443

# 可选:启用 Socks5 前置代理
#enable_socks5: true
# 可选:配置 Socks5 代理地址
#socks_addr: 127.0.0.1:40000

# 可选:允许所有域名(会忽略下面的 rules 列表)
allow_all_hosts: true

# 可选:仅允许指定域名
#rules:
#  - example.com
#  - b.example2.com

该设置下无法访问pixiv,显示www.pixiv.net 花了太长时间进行响应
dns使用的是阿里和腾讯的DOH

软件版本

v1.0.0

附加截图

No response

@XIU2
Copy link
Owner

XIU2 commented Jun 10, 2023

dns使用的是阿里和腾讯的DOH

啥意思?你是在你本地电脑上运行的?还是服务器上?

@XIU2
Copy link
Owner

XIU2 commented Jun 10, 2023

另外,就现在而言,SNI Proxy 对过墙的作用并不大。
如果你是想在服务器上搭建一个 SNI Proxy,然后本地电脑将 Pixiv 域名 hosts 指向服务器的 IP 来过墙访问的话,劝你放弃。

因为现在一般都是 DNS 污染 + SNI 阻断 这种标配套餐了(只有一些早期被封或不太敏感的域名才会仅 DNS 污染),DNS 污染好解决,SNI 阻断的话是会阻止你访问服务器上的 SNI Proxy 服务的,因为墙和 SNI Proxy 一样,都是通过明文传输的 SNI 中的域名来判断的(不过一个是阻断/重置连接,另一个是转发流量)。

因此,SNI Proxy 技术从好几年前开始,又回到了其最初的作用,即给网站做分流等等。
除此之外,这些年还比较流行用 SNI Proxy 来搞解锁流媒体,即在其 IP 支持解锁流媒体的服务器上搭建 SNI Proxy,然后其他服务器通过 Hosts 或自定义 DNS 来讲各个流媒体域名指向 SNI Proxy 服务器的 IP,来实现解锁流媒体。

访客 <=过墙=> 代理服务器 <=Hosts/DNS=> SNIProxy 服务器 <=支持解锁流媒体=> Netflix 等流媒体网站

DNS 指的是,搭建一个 DNS 服务器,DNS 中讲流媒体域名指向 SNIProxy 服务器 IP,然后提供给别人用的时候,直接让对方在服务器上改一下 DNS 即可,不用费劲在 hosts 文件中添加大量域名(毕竟 hosts 不支持通配符)

访客 <=过墙=> 代理服务器 <=> DNS 服务器 <=> SNIProxy 服务器 <=支持解锁流媒体=> Netflix 等流媒体网站

@LSP0123
Copy link
Author

LSP0123 commented Jun 10, 2023

是本地运行,我是想拿来过pixiv的sni阻断的。
单独跑sni proxy的话,GitHub还是可以正常访问

@XIU2
Copy link
Owner

XIU2 commented Jun 10, 2023

SNIProxy 本质也算是一种端口转发(中转),但不同于端口转发只能指定一个固定的目标 IP,SNIProxy 可以通过 DNS 解析传入的域名来获得灵活的目标 IP,然后剩下的流程和 端口转发 没啥区别了,单纯的 TCP 流量转发罢了。

你的要求无法实现,因为 SNI Proxy 会把你的所有流量转发至目标,包括握手消息中明文的 SNI 域名,所以依然会被阻断。


另外,Github 和 Pixiv 等网站不一样,Github 只是 SNI 干扰,并没有完全被墙(DNS 污染 + SNI 阻断),区别很大的,前者是随机阻断(时能用时不能,我两年前就发了研究复现文章),后者是完全阻断。

实现你的要求需要解包,然后通过域前置技术来隐藏、修改 SNI(即自签证书,本地自建一个同域名反代,反向代理时,指定 Host 头部为域名,反代目标为 https://IP,这样域名就需要握手后才会加密传输,别人看不到域名),但一些网站、CDN 是不支持 域前置 的,比如所有 Cloudflare CDN 网站。

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

No branches or pull requests

2 participants