之前整理的解决SNI阻断的方法,基本都需要下载额外的工具,甚至使用古老的浏览器,在实践时有些麻烦。
本文将提供一种简便的方式,帮助读者通过Chromium系列浏览器(如Chrome、Edge等)快速解决SNI阻断。

一. 笔者乱猜的实现原理

为了便于说明,先给出一段示例参数。

--host-rules="MAP e-hentai.org Megumin, MAP exhentai.org Eris" --host-resolver-rules="MAP Megumin 104.20.134.21, MAP Eris 178.175.129.252" --test-type --ignore-certificate-errors

在上述参数中,首先通过--host-rules参数将发送给e-hentai.orgexhentai.org的请求改为发送给MeguminEris,从而避开GFW对SNI的检查;然后通过--host-resolver-rules参数将MeguminEris解析到e-hentai.orgexhentai.org的IP地址上面,确保连接到目标服务器;最后通过--ignore-certificate-errors参数来忽略因域名错误而导致的证书错误(一些工具通过自签证书来实现这一点)(但这样做也引入了一定的风险性)(实际上在使用时,浏览器也会提示“不安全”)。
edge1.png

二. 启动参数的使用

通过启动参数来运行某个Chromium系列浏览器前,应确保已经关闭所有的这一Chromium系列浏览器,否则启动参数将不会生效。

1.直接编辑快捷方式

找到浏览器的快捷方式,右键 → 属性 → 快捷方式 → 目标,在路径后面空一格,然后贴入所需启动参数即可。
chrome1.png
之后每当通过此快捷方式运行浏览器时,都会添加相应的启动参数。

2.通过命令行添加启动参数

直接编辑快捷方式时会受到字符长度的限制,而且维护起来也比较麻烦。如果想要直连的网站很多,可以考虑通过命令行来添加启动参数。

新建一个文本文档,输入以下内容

@start .\"Google Chrome.lnk" --host-rules="MAP e-hentai.org Megumin, MAP exhentai.org Eris" --host-resolver-rules="MAP Megumin 104.20.134.21, MAP Eris 178.175.129.252" --test-type --ignore-certificate-errors

其中,可以把Google Chrome.lnk修改为你正在使用的Chromium系列浏览器的快捷方式的文件名,如Microsoft Edge.lnk等。
chrome2.png

完成后,保存文件,将这个文本文档的后缀修改为bat,把它与你的浏览器的快捷方式放在相同的目录下。此后只需要运行这个文件,即可打开添加了启动参数的浏览器。
chrome3.png

三. 笔者整理的启动参数

笔者整理了一些常用网站(其实只有Pixiv和E绅士)的直连参数以供分享。
如果读者有其它网站的直连参数或需求,也欢迎在评论区进行留言,笔者会随缘对下面的参数进行维护。

--host-rules="MAP app-api.pixiv.net NakanoAzusa, MAP oauth.secure.pixiv.net TainakaRitsu, MAP i.pximg.net IzumiKonata, MAP s.pximg.net HiiragiKagami, MAP s.pximg.net HiiragiKagami, MAP pixiv.net fanbox.cc, MAP www.pixiv.net fanbox.cc, MAP e-hentai.org Megumin, MAP forums.e-hentai.org Megumin, MAP ehgt.org Aqua, MAP xml.ehgt.org Senko, MAP exhentai.org Eris, MAP Megumin, MAP a.pixiv.org Noob, MAP *.ads-pixiv.net Noob, MAP t.co Noob, MAP *.twitter.com Noob,  MAP *.facebook.net Noob, MAP *. doubleclick.net Noob " --host-resolver-rules="MAP NakanoAzusa 210.140.131.199, MAP TainakaRitsu 210.140.131.219, MAP IzumiKonata 210.140.92.144, MAP HiiragiKagami 210.140.92.143, MAP fanbox.cc 210.140.131.199, MAP Megumin 104.20.134.21, MAP Aqua 178.162.140.212, MAP Senko 172.67.0.127, MAP Eris 178.175.129.252, MAP Noob 127.0.0.1" --test-type --ignore-certificate-errors --no-proxy-server

chrome4.png

四. 小结

通过修改启动参数的方式,可以便捷地在现代浏览器上解决GFW的SNI阻断而无需其它工具。
然而,--ignore-certificate-errors参数也引入了一定的风险性。如果有读者知道更加安全可靠的实现方式,欢迎在评论区进行指正与补充!

再一次感谢评论区@kit 网友的建议。

此方法的另一种实现:
Sheas-Cealer(https://github.com/SpaceTimee/Sheas-Cealer),一只基于 WPF(.Net5) 的 SNI 伪造工具,适用平台 Windows 10+。

已有 21 条评论

  1. Mwie

    那么...ip应该怎么获取? 想添加其他网站但不知道ip怎么搞到

    1. https://www.diggui.com/

      1. lyy1423

        牛批,打开新世界的大门。

  2. art

    artstation.com上cloudflare了,要怎么获取ip

    1. 如果没被sni阻断,则写cloudflare的ip即可。

  3. HRK

    我把 tokyotosho.info加了进去,但是还是上不去,报错 ERR_SSL_VERSION_OR_CIPHER_MISMATCH,请问如何解决?

  4. wuki

    求一份discord的直连参数

    1. keke

      --host-rules="MAP discord.com dis" --host-resolver-rules="MAP dis 162.159.128.233" --test-type --ignore-certificate-errors
      楼主非常棒哦,,虽然跟其他方法一样,都是显示不安全连接,这个方法更加简单实用

  5. ry

    都放在桌面了,但是bat提示找不到Google Chrome.lnk

    1. 自己复制粘贴一个快捷方式。

  6. function

    感谢!! 最近两周,打不开Pixiv了,无论如何调节Nginx反代和hosts,就是打不开,全空白。
    直到搜到了这个网页,谷歌浏览器用了第三的启动参数,又能打开了,看来就是SNI头被监控了,纳闷Nginx反代也躲不开SNI监控吗?

  7. cyq

    我用这个方法上的p站,前两天打开p站发现不知为突然变成为登录账号,然后用老方法浏览器F12把cookies里PHPSESSID项填上自己的账号代码,但目前问题是只要页面刷新,PHPSESSID项也会被刷回未登录账号的随机代码,导致无法登录自己的账号。。。想问问是P站的原因让这个方法失效了吗?

    1. 工作繁忙,爱莫能助。

  8. YKF

    求一份pixiv的直连参数

  9. DL

    请问一下,我通过这种方式进入ex绅士后缩略图和火狐一样无法显示,请问有解决方法吗?

    1. 大概率是有ip没写对,自己用https://www.diggui.com/查一下吧。

      1. DL

        _(:3」∠)__ 翻了大佬之前火狐那楼的评论,加入了s.之后就好了,感谢(火狐这边这两天都连接超时进不去了悲)

  10. PoorTiger

    至福,感谢博主。

    与易恒泰诀别已至少四五年,今早在获得一个关键词后,进行了像达芬奇密码那样的挖掘线索和跳转后,刚刚终于重新进入了易恒泰,那感觉简直就像走失多年的孩子终于回家了一样。

    再次感谢博主,文章内容和排版又清楚又有条理,甚至还有引用链接,读起来就像在读学术论文一样,这种质量的文章在现在这个充斥内容转载的时代真是难得。尤其是这篇的开头,贴心的直接写出了怎样设置参数,本来我还在担心我该从哪去找具体可用的跳转地址,然后回头发现博主已经把答案贴心的放在了开头。

    感谢博主。

  11. cheng

    按博主的设置后可以访问discord,但是配合http代理使用时无法访问,启动参数类似下面设置。

    @start .\"Google Chrome.lnk" --host-rules="MAP discord.com dis" --host-resolver-rules="MAP dis 162.159.128.233" --test-type --ignore-certificate-errors --proxy-server=http://:

    这个有办法解决吗?

    感谢博主的分享。

添加新评论