逗比云还是逃不过被墙的命运,既然如此那以后逗比云也就一直用被墙的旧域名 [softs.wtf] 算了。
投稿文章 | 广告合作 | Telegram 群组 / 公告频道 / 使用教程
广告

ShadowsocksR服务端伪装成 正常网站流量,以更好的欺骗流量匹配

Shadowsocks Toyo 206评论
本文最后更新于 2018年10月8日 10:57 可能会因为没有更新而失效。如已失效或需要修正,请留言!

前两天,ShadowsocksR作者做了一个 公益站,同时演示了 如何将ShadowsocksR服务端的流量伪装成正常网站的流量,有点意思,写一点简单的教程。


如果只是单纯的去伪装ShadowsocksR流量,那么不需要安装Nginx/Apache这些功能多但是配置相对也复杂一点的HTTP服务器,用Caddy就好了。

本文章主要是实现:

首先我们要知道 SSR 的混淆插件中的 HTTP HTTPS 混淆伪装均为 伪·伪装,仅仅是模拟为 HTTP HTTPS 访问流量,容易被主动探测识破,况且很多人连混淆参数都不填,更是进一步降低其伪装混淆安全性,而该教程就是为了加强混淆伪装,使 伪·伪装 变成 真·伪装!

访问 http://xxx.xx 域名(http 80端口),能正常看到网站内容,但如果你链接这个网站服务器上面的ShadowsocksR服务端账号(也是80端口),也能正常使用。实现了同端口网站和ShadowsocksR共存。

而对于墙或者运营商来说,当他们检测你传输的流量特征的时候,会看到你的流量是去访问海外服务器的 80 端口,就算跟踪过去,也会发现是一个正常的海外网站(随便搞一个静态的 HTML 英文页面),一个没有敏感词的海外英文网站,墙和运营商是不会去注意的。

所以就实现了伪装ShadowsocksR服务端流量的功能,每天国内访问海外网站(80/443端口)的流量非常庞大,在这个伪装中,可以很大程度的降低被发现(匹配流量特征)的几率,所以有兴趣的可以折腾玩玩。

文章里的原理:

你链接你的服务器 80端口(SSR服务端端口),然后就会链接到ShadowsocksR服务端,ShadowsocksR服务端会判断你是链接SSR,还是访问网站,如果是访问网站,就会把你的流量数据重定向到网站监听的端口(2333端口),然后你就显示网页了。

注意:如果要用这个同端口伪装功能,请不要开启 协议(origin)和混淆插件(obfs)的兼容原版模式(_compatible),不要使用原版SS链接!

同时,Shadowsocks-libev版服务端的simple-obfs功能,并不能实现本教程所说的同端口共存功能!

推荐一个伪装配置

这个伪装配置不需要你服务器上面搭建网站,而是把HTTPS访问的网页信息转发到微软的网站,实现伪装HTTPS访问微软!

目前已知这种设置方式可以有效降低 IP 被墙几率(非 100%)。

# 服务端端口设置为:
    "server_port": 443,
# 客户端服务器端口填写:443

# 服务端混淆插件设置为:
    "obfs": "tls1.2_ticket_auth",
# 客户端混淆插件选择:tls1.2_ticket_auth 或 tls1.2_ticket_fastauth

# 服务端 redirect 设置为:
    "redirect": ["*:443#HK2SCH130083c18593.wns.windows.com:443"],
# 客户端混淆参数填写:HK2SCH130083c18593.wns.windows.com

至于其他的加密方式、协议插件等都不影响什么都行。

SSR 客户端的混淆参数记得填写为:HK2SCH130083c18593.wns.windows.com

前提准备

其实也没什么要准备的,就是你需要有个域名,然后将域名解析为你的SSR服务器IP

例如:

toyoo.pw 域名,记录名为 @ ,解析类型为 A,解析IP为 服务器IP

abc.toyoo.pw 域名,记录名为 abc ,解析类型为 A,解析IP为 服务器IP

免费域名申请教程:教你申请.tk/.ml/.cf/.gq/.ga等免费域名

Caddy 配置步骤

安装 Caddy

Caddy 是 Go语言编译好的二进制程序,所以只有一个 Caddy 文件(还需要生成一个配置文件),但是为了管理方便,所以我做了个一键脚本。

wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh install http.filemanager

安装Caddy成功后,我们就继续下面的步骤。

配置 Caddy

Caddy的特点之一就是,配置文件非常的简单,继续下面看就知道了。

注意:以下示例域名皆为 toyoo.pw ,请注意更换为自己的域名,并做好域名解析。

HTTP(80端口)

假设你要伪装 80端口(ShadowsocksR服务端端口为 80),那么你可以在 Caddy中随便配置一个监听端口。

点击展开 查看更多

HTTPS(443端口)

如果你想要伪装 443端口(ShadowsocksR服务端端口为 443),那么你可以在 Caddy中随便配置一个监听端口。

点击展开 查看更多


然后我们新建一个 虚拟主机文件夹

mkdir /usr/local/caddy/www && mkdir /usr/local/caddy/www/ssr

然后去网上随便下载一个 HTML的网页模板(很好找的,这类模板非常多,随便找个英文模板就好了),解压后把网页文件通过SFTP 上传到刚才新建的虚拟主机文件夹中:/usr/local/caddy/www/ssr

然后我们重启 Caddy,当然这个时候我们还只能通过 http://toyoo.pw:2333 来访问我们的网站,我们还需要继续配置ShadowsocksR服务端。

/etc/init.d/caddy restart

使用说明

启动:/etc/init.d/caddy start

停止:/etc/init.d/caddy stop

重启:/etc/init.d/caddy restart

查看状态:/etc/init.d/caddy status

查看Caddy启动日志: tail -f /tmp/caddy.log

Caddy配置文件位置:/usr/local/caddy/Caddyfile

ShadowsocksR 配置步骤

打开你的配置文件(假设你的ShadowsocksR服务端安装在 /root 文件夹内):

nano /root/shadowsocksr/user-config.json

然后我们会看到配置文件,我们需要找到 server_port 和 redirect 参数 并修改就行了

修改完成后,按 Ctrl+X 退出,会提示你是否保存,输入 y 代表保存,然后会提示你要保存的文件名,直接回车覆盖。输入 n 代表不保存,直接退出。

HTTP(80端口)

按照上面Caddy的HTTP配置(监听2333端口),

# 把 server_port 参数改成这样:
    "server_port": 80,

# 把 redirect 参数改成这样:
    "redirect": ["*:80#127.0.0.1:2333"],

HTTPS(443端口)

按照上面Caddy的HTTPS配置(监听6666端口),

# 把 server_port 参数改成这样:
    "server_port": 443,

# 把 redirect 参数改成这样:
# 如果是配置的HTTP转HTTPS,那么也是使用下面这个配置(只需要设置一个 443的转发即可)
    "redirect": ["*:443#127.0.0.1:6666"],

多端口配置

如果你的Caddy和SSR服务端同时配置了多个端口(比如 888和666),

# 那么把 redirect 参数改成这样:
    "redirect": ["*:888#127.0.0.1:2333", "*:666#127.0.0.1:6666"],

然后重启ShadowsocksR服务端(假设你的ShadowsocksR服务端安装在 /root 文件夹内,并且是单用户):

bash /root/shadowsocksr/shadowsocks/run.sh

注意:如果要用这个同端口伪装功能,请不要开启 协议(origin)和混淆插件(obfs)的兼容原版模式(_compatible),不要使用原版SS链接!

同时,Shadowsocks-libev版服务端的simple-obfs功能,并不能实现本教程所说的同端口共存功能!

然后现在你可以尝试访问 http://toyoo.pw ,会发现不需要加端口号( http://toyoo.pw:2333 )也可以正常访问了!

客户端混淆设置

这时候为了加强该伪装的作用,还需要客户端混淆插件和混淆参数设置一番。

  • 如果你是伪装的 80 端口,请选择 http_simple 混淆插件,混淆参数填写你的域名(示例 toyoo.pw)。
  • 如果你是伪装的 443 端口,请选择 tls1.2_ticket_authtls1.2_ticket_fastauth 混淆插件,混淆参数填写你的域名(示例 toyoo.pw)。
  • SSR客户端的服务器地址填写 你的域名(示例 toyoo.pw)
  • SSR客户端的服务器端口填写 80 或 443 端口(取决于服务端端口)。

所以这个就实现了,伪装 ShadowsocksR 服务端流量为 正常海外网站流量的目的,同时也可以说实现了 网站和ShadowsocksR 同端口共存

其他说明

启动显示成功,但是实际未运行

点击展开 查看更多

Nginx配置说明

点击展开 查看更多


参考资料:https://breakwa11.blogspot.ru/2017/01/shadowsocksr-mu.html?m=1

转载请超链接注明:逗比根据地 » ShadowsocksR服务端伪装成 正常网站流量,以更好的欺骗流量匹配
责任声明:本站一切资源仅用作交流学习,请勿用作商业或违法行为!如造成任何后果,本站概不负责!

赞 (77)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(206)个小伙伴在吐槽
  1. 做網站偽裝,推薦反代境外的debian/ubuntu/centos等等的鏡像站,有https的和http分別可以偽裝80/443端口。這些站點都是大流量網站,降低代理ip被墻風險
    JohnConnor2018-10-16 19:40 (2天前)回复
  2. debian手動安裝的nginx的配置文件在/etc/nginx/sites-enable下。默認是defualt文件,cp一下就能配置多個子域名,建站或者反代
    JohnConnor2018-10-16 19:38 (2天前)回复
  3. 大佬有空写一个一键脚本 美滋滋 经常帮朋友开线路 没开多久就被墙 好麻烦 更新地址 http://ssr.lisuanlaoji.vip 。大佬有空写个这个教程的一键
    老几2018-10-15 20:22 (3天前)回复
    • 你这个网站怎么进去是一串乱码?
      ???2018-10-16 11:51 (2天前)回复
      • 你把地址添加进SSR订阅就行了。
        老几2018-10-16 22:53 (2天前)回复
  4. 感谢toyo博主的教程,已经达到了预期的功能,但又碰到了一个问题:用域名访问时,例如直接输入t****n.com时,会转至https访问,但会带有监听端口:https://t****n.com:8888,该链接无法访问,但删掉端口或直接https://t****n.com可以正常访问,http也可以正常跳转https,求教博主有解决办法吗
    Tr4yv0n2018-10-07 20:00 回复
    • 这个错误应该是 Caddy 的 HTTPS 重定向导致的。贴出配置文件我看看。
      Toyo2018-10-07 21:25 回复
      • t****n.me:6666 {
         root /usr/local/caddy/www/ssr
         timeouts none
         tls w**********[email protected]
         gzip
        }
        因为证书是caddy自动申请的,跳转也是caddy自动配置的,故只有如上配置
        
        Tr4yv0n2018-10-08 09:03 回复
        • 那你在域名前面加上 https:// ,这代表不再使用 http:// 协议了,也不自动跳转。
          你的问题应该是,当你从80端口访问时,SSR将流量重定向到Caddy,然后Caddy收到后将你重定向到 xxx.me:6666 了,这才导致你出现的问题。
          当你直接访问 https:// 时,Caddy则直接输出 xxx.me:6666 ,然后 SSR 将其转为 xxx.me:443 (80和443浏览器中默认隐藏)
          另外,记得客户端的混淆参数要填写你的域名,具体的我更新了下文章,又修缮补充了下。
          Toyo2018-10-08 10:58 回复
  5. 配置好了,但是网站加了端口反而访问不了,何解
    小勾2018-09-28 00:06 回复
  6. 请问一下,我用BT面板自建站点。用lamp,站点也是正常的站点。请问我应该如何配置我的SSR?
    2018-09-06 11:50 回复
  7. 你好,我用http_simple混淆插件好像不能正常使用SSR,网站倒是正常的,请问是怎么回事啊
    西瓜2018-08-19 10:19 回复
  8. 这伪装挺有用的,用了1年半就被墙了一次(应该是因为ss流量太大)
    Logic2018-08-07 10:23 回复
  9. HK2SCH130083c18593.wns.windows.com这个网站不能解析到一个IP没问题吧,就是说实际上这个网站不存在没问题吗
    KCP1472018-07-26 18:16 回复
  10. :mrgreen: 给大佬跪下了~
    bryanyang2018-07-24 17:34 回复
  11. 大佬就是厉害哦。用大佬的方法果然吊~ 成功运行. www.yanggaofei.cf
    bryanyang2018-07-24 17:33 回复
  12. ssrmu.sh的多用户模式是不是没法用这个办法了?用于网站的端口只有80和443,那就是只能伪装两个端口?
    hui2018-07-22 11:06 回复
  13. 请问您推荐的免建站配置,具体要怎么配置呢?
    LIGHTING2018-07-08 14:22 回复
    • 什么免建站配置?
      Toyo2018-07-08 19:11 回复
  14. 感谢toyo大佬的教程,能否针对技术小白,出一个不需自己建站,以微软网站做掩护的专门教程?之所以有这个请求是因为:1、一键脚本中没有redirect设置的部分,小白需要指导,2、现有教程中caddy的设置不是针对微软网站写的,小白容易混乱,3、大佬的网站估计都被墙关注着,微软网站也许很快被特别关照,能否给个方法让用户自己找自己的掩护网站(大佬文中的微软网址是怎么获得的,小白也不是很明白),问题确实太白了,惭愧,对大佬的付出表示非常感谢!!!
    糖太粽2018-06-21 08:18 回复
  15. 你好,我想问一下,我用sakura的vps建了一个站,用的是nginx,是不是就不用caddy了?只要把nginx监听改成只监听443,然后ssr服务端改成80转443即可?
    Inori Suzumiya2018-05-28 13:21 回复
  16. echo "toyoo.pw:6666 { root /usr/local/caddy/www/ssr timeouts none tls [email protected] gzip }" > /usr/local/caddy/Caddyfile 运行这段命令没有反应。求帮助
    anderson2018-05-27 18:49 回复
    • 正常情况下,就是没有反应,没有反应说明运行成功,如果有反应说明报错了。
      Toyo2018-05-28 08:29 回复
      • 嗯,折腾好了。然后发现一个问题,配置好之后访问https://域名可以访问, 直接输入域名会跳转到https://域名:6666,无法访问。
        anderson2018-05-29 17:49 回复
  17. 如果安装你上面的推荐伪装配置配置好了.然后ssr里面应该设置端口为433还是其他所有端口都可以.我想所有ssr的端口都可以通过这个来伪装.
    DD2018-05-17 00:20 回复
  18. 你好 飞机场多端口能用吗
    iloveu2018-04-20 08:44 回复
  19. 配置完成后不使用端口仍然无法进入网站,使用http,配置与你相同
    Parasomnia2018-04-08 01:17 回复
  20. 按照逗逼君的教程 成功的在443上伪装成https,但是出现的问题是速度降低很多很多~~油管基本看不了拉~~不知道什么原因~但是如果在80端口做伪装成http就没问题 ~~
    lance2018-03-14 00:31 回复
  21. 服务端使用SSR443端口 none+auth_chain_a+tls1.2,本机再Caddy一个网站模板。这样是不是不会被墙识别,用了10天了,你是这种加密方式吗?这种方式墙的检测率怎么样?
    暴打维尼2018-03-10 11:13 回复
    • 用了一周左右,感觉速度超快,周日被封,不清楚是封段还是有针对性的。想问老大,不知道V2RAY有没有redirect功能
      ws2018-03-12 09:11 回复
      • 试试ping网段?感觉最近都是针对性封的
        sakamoto2018-03-13 23:42 回复
        • 服务商很nice给换了个Ip
          ws2018-03-17 00:56 回复
  22. 大佬,我按照你的教程配置了,但如要访问网站,必须要加端口,不加端口就打不开,我测试了443或80端口都是这个问题,我知道理论上应该错在了SSR的配置上,但server_port 和 redirect我都是按照你的教程来配置的,真的不知道错在哪里。
    九五二七2018-03-06 15:34 回复
  23. 逗比逗比,用了宝塔面板,可不可以用伪装?怎么伪装?求教程~
    在烀2018-02-24 15:12 回复
  24. 请问有没有brook伪装的教程?brook里面没找到类似配置
    Payton2018-02-23 17:29 回复
  25. 大佬啊,我跟着你的步骤做了半天,用的是你的SSR多用户脚本设置端口是8788,caddy配置的是443监听8888,网页端口也是8888,我8888端口可以正常登录网页,但是443就不行,而且SSR也不能用443端口,是不是我哪里做错了
    Soramuse2018-02-11 11:31 回复
    • 很明显错了,应该是 SSR服务端监听443端口,Caddy监听 8888 端口。
      Toyo2018-02-11 14:33 回复
  26. 你好,问一下,设置好之后我必须使用obfs模式,并且填入自己的域名吗?
    SunZz2018-02-10 17:30 回复
  27. https://doub.io/ss-jc60/ 逗比老大 多用户这个教程是修改 配置文件:/usr/local/shadowsocksr/user-config.json 还是修改 /usr/local/shadowsocksr/mudb.json 两个配置文件修改哪个里面的 那个config.json里面参数不对啊我给加到mudb里了,折腾一天都不行!
    silencexxx12018-02-07 18:07 回复
    • 不清楚,我也没试过。
      Toyo2018-02-07 23:39 回复
  28. "redirect": ["*:80#127.0.0.1:2333", "*:443#127.0.0.1:6666"], 上面的解释是不是所有80端口不是SSR全都转到80 豆蔻转本地127.0.0.1的2333 端口 443端口的连接不符合要求的都转本地 6666端口 但是我设置了啊 没啥反应。。。。还有我可不可以整成域名的形式"redirect": ["*:80#https://www.baidu.com:443", "*:443#http://www.sohu.com:6666"],
    silencexxx2018-02-07 15:18 回复
    • 就是访问 IP:80 的流量都会被SSR接收到,然后SSR判断你这个是访问网站还是SSR的,如果是SSR那么就当成SSR处理,如果是访问网站的,就转发给 127.0.0.1 2333 端口,也就是HTTP服务。
      至于你说的第二种,是不行的,你可以在SSR客户端中的混淆协议处填写 伪装域名(服务端无需配置)。
      Toyo2018-02-07 23:38 回复
      • 逗逼老大,跟你反馈下。后来整好了,原因是我犯了一个低级错误。。。宝塔的防火墙。。。。另外设置成功后。SSR的速度明显下降很多。我想SSR可能判断哪些流量转发,那些流量是SSR的流量造成的。有没有什么好的办法提速?不设置转发的情况下 65Mbps 设置转发后测试 只有19Mbps 。。。。。 逗逼老大能给点好的建议吗?谢谢!
        silencexxx2018-02-09 13:47 回复
        • 没有办法,除非有人懂技术优化代码。这类伪装方式无论怎么搞都会损失速度。
          Toyo2018-02-09 16:08 回复
          • 逗比老大你学习学习优化优化😂
            silencexxx12018-02-09 21:38 回复
      • 你好,请问如果用80端口,用http_simple进行混淆可行吗?我用这个进行混淆的时候SSR无法正常使用,但是换一个混淆插件就能正常使用了,不知道是怎么回事
        西瓜2018-08-19 10:23 回复
  29. 逗逼老大 按照你的教程我整了一天到现在也没成功 Nginx配置 可不可以详细点?再简单点。。。谢谢
    silencexxx2018-02-07 15:16 回复
  30. 大神,我申请好了域名,并且在已经在80和443端口上启动了http和https服务,端口转发也OK了,现在一切正常。酸酸乳混淆设置为tls1.2_ticket_auth,混淆参数设置为我申请到的域名。是否这样就可以完美欺骗gwfire和流量监测了?谢谢!
    哈哈哈2018-02-06 10:25 回复
    • 完全欺骗是不存在的,目前没有任何代理可以做到。
      Toyo2018-02-06 10:54 回复
      • 收到,但是这样的话,效果还是会好很多吧?
        哈哈哈2018-02-06 11:08 回复
        • 不一定,因为没有证据可以表明这种方式可以明显降低被墙几率,在没有大数据的情况下,我不会给你保证什么。
          Toyo2018-02-06 11:24 回复
          • 我理解应该会好多。我可以看到运营商记录的流量信息,原来设置混淆参数为baidu等,但是实际IP地址和域名是不一样的,这样之后域名和实际IP一样了。如果酸酸乳混淆出来的tls的包和标准的https的包差别不大的话,估计要识别出来就比较困难了。
            哈哈哈2018-02-06 11:42 回复
            • 伪装的更像这个理论上是成立的,但我想他们应该不会只通过这种方式识别SS流量,就是说即便你已经完美的伪装了一个网站的流量,但依然会有其他方面的特征,这些特征反推下来有时候反而更容易暴露了你的伪装。
              SunZz2018-02-11 15:45 回复
          • 这种搭建方法,前两天被墙了,用了不到两个月。
            2018-02-28 13:51 回复
  31. 大侠,请帮忙看看这个错误是什么原因?谢谢! [email protected]:/home/ubuntu# tail -f /tmp/caddy.log Activating privacy features...2018/02/03 12:17:57 [www.whatismyphone.tk] failed to get certificate: acme: Error 400 - urn:acme:error:connection - Fetching http://www.whatismyphone.tk/.well-known/acme-challenge/cdB94bkOwVo-c73IbEUH5CVODtyFfskmk4-khyuKwuo: Timeout Error Detail: Validation for www.whatismyphone.tk:80 Resolved to: 54.153.102.8 Used: 54.153.102.8
    哈哈哈哈2018-02-03 12:21 回复
    • 申请SSL证书失败,免费SSL服务器验证失败,原因:申请SSL证书的域名解析IP不是当前服务器的IP。检查域名解析,或者等待一段时间后重试。
      Toyo2018-02-04 11:20 回复
      • 等了几个小时之后就好了,多谢!
        哈哈哈2018-02-04 21:20 回复
  32. 上传那个html页面的应该还需要配置。我就看不到那个页面
    开心果2018-01-30 21:31 回复
  33. /usr/local/caddy/Caddyfile:1 - Error during parsing: Unexpected '}' because no matching opening brac e 现在变成这样了
    serenity2018-01-27 21:55 回复
    • 配置文件的格式错误。请贴出完整配置内容(域名等打码)。
      Toyo2018-01-28 15:09 回复
  34. 一直糊涂域名,是不是ip地址就可以,还是一定要绑定一个域名
    serenity2018-01-27 20:03 回复
    • 有域名更号,毕竟绝大部分网站都是用的域名,如果你用IP,反而可疑。
      Toyo2018-01-28 15:53 回复
  35. 您好,直接https:\\IP 当问的话会提示421 Site is not served on this interface 域名访问正常 这样会被墙检测到吗 可以不加域名直接IP也可以跳转吗
    yotop2018-01-27 18:27 回复
  36. tail -f /tmp/caddy.log 一直报错 parse //{root: invalid character "{" in host name 是不是什么空格的问题,谢谢
    serenity2018-01-27 15:06 回复
    • 贴出你的完整配置文件(域名打码),这个问题是你的配置文件格式有误。
      Toyo2018-01-27 15:23 回复
  37. 看了两遍还是没看懂如何申请SSL证书、密钥,上传文件也搞不懂远程服务器怎么找
    SomeBody2018-01-26 16:05 回复
    • 只需要根据教程填写 Caddy 配置,启动Caddy后自动申请、配置SSL证书。
      Toyo2018-01-27 13:44 回复
  38. Caddy伪装后访问443会跳转到6666,网站后面也有端口6666 这个能隐藏不?不让他显示端口
    onepve2018-01-26 10:57 回复
    • 配置姿势有误。
      Toyo2018-01-27 14:08 回复
  39. 您好,非常感谢这篇文章的指导,我成功部署了80端口的伪装。但是我还有一点小小的疑问。正常服务器的80端口全部走的明文,没有HTTPS加密。如果我们将SSR端口设置为80进行伪装,那么此端口的流量中就会出现一段密文,这是否会很容易地被探测到?
    nathan2018-01-24 21:02 回复
    • 所以推荐使用 443端口。
      Toyo2018-01-25 14:27 回复
  40. 大佬,windows server可以搞吗?
    ssrxiaocainiao2018-01-19 09:44 回复
    • 那你需要再 windows 系统上建网站,这方面我不了解。
      Toyo2018-01-19 15:11 回复
      • 网站已建好
        ssrxiaocainiao2018-02-05 13:22 回复
1 2