这个是逗比根据地的备份镜像站(非官方)。牢记域名: [doubibackup.com]。搜索:标签云
投稿文章 | 广告合作 | Telegram 群组 / 公告频道 / 使用教程
广告

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

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

前两天,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/ToyoDAdoubiBackup/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:2333"],

多端口配置

如果你的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服务端伪装成 正常网站流量,以更好的欺骗流量匹配
责任声明:本站一切资源仅用作交流学习,请勿用作商业或违法行为!如造成任何后果,本站概不负责!

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

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

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(219)个小伙伴在吐槽
  1. toyo大佬,请问这个用https和http有区别吗?
    fwing2017-12-31 20:07 回复
    • 有的,有条件建议https。
      Toyo2018-01-01 09:39 回复
  2. 谢谢博主的分享!请教一个困惑很久的问题:如果ShadowsocksR客户端直接填写服务器的ip,墙就算去追踪也不知道这个ip对应的域名是多少,那只能用尝试用ip地址去连接(如发出连接http://ip或https://ip的请求)。而直接用ip地址去连接得到的却是“421 Site xxx.xxx.xxx.xxx is not served on this interface”这样的回复,无法得到访问域名时呈现网页。那像这样做会有很大的意义吗?还是我上述推测有问题?
    test2017-11-29 19:52 回复
    • 同问,而且还有一个问题,手机上的客户端好像填域名的话连不上,不知是不是个别情况
      Eazming2017-12-03 18:36 回复
    • 同问这个问题 博主出来释疑一波?
      yotop2018-01-28 13:53 回复
    • 可以避免,我用nginx实现了跳转,可让IP或者http://IP直接跳转到https://域名。 方法其实很简单,在你的nginx中修改一下配置: server { listen 80 default_server; listen 443 ssl http2; rewrite ^(.*)$ https://你的域名; } 完成后不管是哪种访问都会跳转到HTTPS。 参考: http://blog.csdn.net/wzy_1988/article/details/8549290 https://www.bt.cn/bbs/thread-8583-1-1.html
      SunZz2018-02-11 12:49 回复
      • 好吧,这个方法还有一点问题……
        SunZz2018-02-11 23:23 回复
  3. 用caddy自动申请证书,只配置443。访问http时能够自动转发到https,但是会把端口号显示出来。请问该怎么解决这个问题?
    https2017-11-29 15:44 回复
    • 仅供参考 http://xx.xx { redir https://xx.xx:443{url} } https://xx.xx:2333 { }
      Eazming2017-12-03 19:07 回复
  4. 设置好了以后 SSR客户端 和 服务端 只能和VPS的IPv4 地址通信。 但是将客户端中的服务器IP 直接修改为VPS的IPv6地址,又可以使用IPv6.
    HAHAHA2017-11-29 12:23 回复
  5. 我申请到的ssl证书是cer后缀的,我查了一下好像跟crt是比较类似的一个格式,请问可以直接用吗?还是要先转换一下
    GG2017-11-27 21:29 回复
    • 不清楚,没遇到过,我的证书都是 .crt 后缀的。
      Toyo2017-11-28 08:54 回复
  6. 使用了几天,发现caddy不能开机启动,请问是哪里出了问题。重启后,要执行/etc/init.d/caddy start命令才能启动打开网站
    csvv2017-11-22 16:15 回复
    • 使用我的Caddy脚本后,会自动下载服务脚本并配置开机启动等功能(三个系统测试正常),如果没有正常开机启动,需要重启后查看Caddy日志,看看是否出错,如果有错误日志就代表启动了但是失败了,如果没有错误日志说明根本没有启动。
      可以尝试再执行以下设置开机启动的命令,然后重启试试,如果还是无法启动,可能是系统服务相关问题吧,请报告你的系统和位数。
      # CentOS系统:
      chkconfig --add caddy
      chkconfig caddy on
      
      # Debian/Ubuntu系统:
      update-rc.d -f caddy defaults
      
      Toyo2017-11-23 10:42 回复
      • 执行命令后,还是不行。版本号Ubuntu 14.04 LTS。回头我再重做一次看看。日志文件重启后caddy没有启动,显示找不到/tmp下的日志。手动启动后显示正常
        csvv2017-11-26 19:58 回复
      • unbut Linux Ubuntu 14.04 执行命令后还是不行。换DEBIAN 8就可以了。
        csvv2017-11-26 21:51 回复
  7. 粘帖那段长命令以后总是没反应,查看caddy日志出现invalid character "{" in host name,应该是格式的问题吧? :sad: 可是怎么贴都不对,我用的是xshell
    GG2017-11-21 01:37 回复
    • 贴出配置文件完整内容。
      另外,下面这种示例是[一个]完整的命令,需要全部复制,然后直接粘贴在SSH软件中回车运行(就像运行普通命令一样),而不是直接粘贴到配置文件内,这样绝对报错。
      echo "http://toyoo.ml:2333 {
       root /usr/local/caddy/www/ssr
       timeouts none
       gzip
      }" > /usr/local/caddy/Caddyfile
      
      Toyo2017-11-21 10:37 回复
  8. 你好。我现在执行完教材后,网站还是要带端口才能访问。SSR还是可以用。使用的是80端口。有一事不明。我只用80端口。HTTP重定向为HTTPS这一步也要执行吗?
    csvv2017-11-13 12:10 回复
    • 只用80端口就不需要HTTPS了,否则这不是太假了?本文的几个示例是让你选择一个,而不是都做。
      本教程正常结果应该是,假如用80端口 而网站是2333端口,访问 http://域名/ 80端口能正常访问,通过 80端口链接SSR能正常链接,当然 http://域名:2333 端口也能外部访问。
      Toyo2017-11-13 14:42 回复
      • 谢谢Toyo。犯了了一个低级错误。我找错了SSR下的配置文件位置。这下OK了。希望有不能识现的看到我这条回文。修改文件位置是不是正确的。还有一个问题我就一起了吧。Toyo能不能写一个关于Fail2ban的脚本?防止扫描SSR的,经常看到一大篇的扫描日志。先谢谢了。
        csvv2017-11-13 18:21 回复
  9. simple-obfs是可以做到这个功能的
    shironeko2017-11-12 22:30 回复
  10. Toyo, Shadowsocks-libev的simple-obfs现在是能够实现这个功能的
    none2017-11-12 13:13 回复
    • 问过了,不能。这个功能和混淆插件是两个概念。
      Toyo2017-11-12 17:51 回复
      • 感谢回复 https://ttz.im/2017/08/1415 我这里按照这个方式配置了一下,系统是debian,网站用的Nginx。结果从表面看,浏览器的https访问确实能正确显示我的网站,而SS也能通过443正常运行 和网站里写的一样,obfs监听443并转交(failover)不能识别的内容到网站所监听的端口,能识别的流量则转给SS监听的端口。还请Toyo看看这是不是正确的配置
        none2017-11-12 23:26 回复
      • 虽然没有用教程提到的caddy……有偏题嫌疑,不过如果这个方法是可行的话,还是可以写进教程,让SS用户有一个新玩具可用
        none2017-11-12 23:27 回复
  11. 博主,我用lnmp脚本安装博客,一共三个,安装自动申请,开启了ssl以后,三个博客都正常访问htps,我试图用这个走443端口,结果三个博客就有的能走https 有的走https打开另外一个博客的内容,剩下那个干脆http https都访问不了,这是什么情况呢? 各个博客的conf文件 80端口 和443端口 各种改 都试过了,就是不行。难道这个就不能在多个https博客的VPS上面用么?
    go2017-11-11 14:11 回复
  12. 逗比大大,我start caddy时无法启动,看了日志文件是:Activating privacy features...2017/11/07 12:40:25 [somelou.me] failed to get certificate: [somelou.me] error presenting token: Could not start HTTPS server for challenge -> listen tcp :443: bind: address already in use或者Activating privacy features...2017/11/07 12:35:59 [somelou.me] failed to get certificate: [somelou.me] error presenting token: Could not start HTTP server for challenge -> listen tcp :80: bind: address already in use,请问是什么原因?
    Some2017-11-07 20:54 回复
    • 443端口 或者 80端口 被占用。
      Toyo2017-11-08 10:52 回复
    • 我现在也是这个问题,你解决了吗
      GG2017-11-21 02:17 回复
  13. 博主你好: I simply went by the book and did a good job, but I am still a little bit nervous, I tested the website, it end up that Firefox works perfectly, but original IE doesn't connect, 360explorer only can open https://, can't open http://. I just don't get it. but I am still very happy with this, thank you very much. I am a Chinese, but I am trying to practice English, um-hum
    Jam2017-11-01 20:44 回复
    • 打开 http:// 提示什么?
      Toyo2017-11-01 21:49 回复
      • (我建的小站,搞错语言了)www.xiekai7347.tk Could you help me test it with https:// and http:// , thanks
        Jam2017-11-03 15:14 回复
  14. 请问如何设置可以不让https的后面出现端口号呢?SSR用443端口,caddy用8024端口。每次跳转都是https://*******.****:8024
    world33242017-10-27 11:39 回复
    • 我也是这个问题...但是用80端口伪装的时候 URL后面没显示caddy监听的端口...
      Bucc2017-10-28 20:21 回复
  15. 你好~我就一个疑问,就是我如何知道我伪装成功了呢?只要能打开网站就算成功吗?能看流量走向吗?
    feng2017-10-23 18:39 回复
    • 按照教程配置后,同一个端口能链接SSR,直接访问也能看到网页,就是伪装成功,剩下的就是完善网页的真实性了。
      Toyo2017-10-23 23:57 回复
  16. 大佬, 我发现我最后一步配置ssr的user-config没有成功。配置 "redirect":["*:443#127.0.0.1:5577"] 是想用443端口伪装的,直接域名加5577端口可以访问,而配置ssr转发5577不行。 用命令检查发现443端口没有被ssr监听,ssr是用大佬的一键多用户脚本配置的
    壮士请留步2017-10-23 15:40 回复
    • SSR服务端配置的账号需要设置为 443端口,也就是你通过443端口可以链接SSR服务端,而直接作为域名访问又能通过SSR服务端转发至Caddy看到网页。
      Toyo2017-10-24 00:00 回复
      • 三扣大佬,搞定了, 发现必须把ssr账号端口也设为443后才能访问到网页,没设之前ssr是不监听443端口的
        壮士请留步2017-10-24 09:15 回复
      • 所以SSR服务端不能够用443以外的端口对吧?我自己设的是1026,估计得改咯?
        爱因斯港2017-11-09 23:57 回复
        • 你告诉我 用443端口的网站多 还是 用1026端口的网站多?
          Toyo2017-11-10 09:15 回复
  17. @Toyo 你好,为啥我新装好几次VPS 新添加80单端口的ssr, 然后ssr根本就不通?怎么回事呢?在另外一个128M的小鸡上面都没问题,现在就是80端口的 ssr不通,换了91 和秋水 的脚本也不行,快帮帮忙吧,谢谢先
    go2017-10-14 10:40 回复
    • 换个端口试试,SSR客户端 服务器链接统计窗口提示什么[错误/超时/空连]?
      Toyo2017-10-14 13:51 回复
      • 就是80端口被lnmp占用了,我那个lnmp里面多个用户 我只改一个 端口 别的没改就不行 具体我也不知道 反正依葫芦画瓢的也好使了,多谢热心回复
        go2017-10-15 06:21 回复
  18. 從牆的角度來看這是個有問題的通信,畢竟全世界80端口走的都是明文http,結果有一堆看不懂的加密流量走在80,這個估計還用不到機器學習就先直接抓出來了重點審核了 覺得走443配合tls1.2並且設置hostname混淆比較能混入正常的https流量,但轉發就很難搞定了,因為ssl證書搬不出來,手動訪問要怎樣做的真目前還沒甚麼想法,能給點建議嗎?
    AZ2017-10-14 03:14 回复
  19. 使用自动申请证书的话caddy是不是必须得监听80端口?ssr配置了80和443,caddy配置了8080和4433,但是启动caddy的时候依然会监听80端口,提示端口占用,更换自己的证书就不再监听80了
    2017-10-13 00:52 回复
    • 因为Caddy申请证书需要做验证,而验证是做一个临时的网站,存放Let's SSL的验证文件让Let's SSL来验证,所以需要80端口。
      Toyo2017-10-13 12:11 回复
      • 其实是搞frp想用80端口,倒是也能在caddy配置文件监听80端口转发到frp,但是跳转之后网址还是会带上端口,这就和我就是因为不想看到端口才要frp用80端口的初衷不符了,只好自己申请了个证书搞上去了,亚洲诚信的证书,免费一年的,这一年也用不完,小鸡就到期了
        2017-10-14 01:26 回复
  20. 您好!请问我事先已经用Let’s Encrypt配置好了全站SSL,现在用此方法会443端口冲突不能使用,请问有什么方法可以实现吗?谢谢!!
    gtsx2017-10-11 00:38 回复
      • 谢谢,我试试!
        gtsx2017-10-11 09:10 回复
      • 您好,我用的是apache,还是不知道该怎么设置,我如果直接设置SSR端口为443会冲突,请问您我到底该怎么配置httpd才可以呢?能详细指点下吗?centos还不是很熟!谢谢!
        gtsx2017-10-11 23:51 回复
        • apache 我没用过,centos 我也几乎不用。
          Toyo2017-10-12 00:24 回复
          • 好吧,还是挺谢谢您的热心回复,请您如果有其他好的方法再回复一下我,谢谢!
            gtsx2017-10-12 11:30 回复
  21. 我觉得网站内容还是做丰富一点更保险,要是用的人多了被人工追踪过去,就一个单页面这么多人天天访问,还连接那么长时间,不是更奇怪?
    Egoist2017-08-14 10:02 回复
    • 你流量要多少才会被人工处理(人工有限,不可能动不动就人工处理)?整个国内的国际出口流量那么大,访问网站的流量占了大多数,你的流量要多大才会名列前茅,你以为的大,可能在江河中只是一条小鱼,更何况没有任何方法可以完美的伪装自己,只是让自己的伪装看起来更完美一点罢了,至少比完全不伪装的墙一些。
      Toyo2017-08-14 11:23 回复
  22. 按照toyo的方法做了设置,网站能访问了,但是只要SSR开了,所有网站都提示“无法安全连接到此页面”,ssr的log为[Error] Proxy server [(104.194.67.157)] ClientDecode data error: wrong sha1,这是啥原因。。。
    rainbow2017-08-13 20:19 回复
    • 我也是这个错误
      MxdStudio2017-10-20 17:19 回复
    • 这个问题我解决了,是因为你的ssr不是直接监听的443端口,而是靠caddy从443接到访问请求后,转发到你的ssr端口的,这样就会出这个问题。你注意看上面的教程,是需要ssr直接监听443端口,而caddy托管的网页不是在443端口
      MxdStudio2017-10-27 12:26 回复
  23. toyo能出个nginx的么?我按照这样操作的使用80端口一直无法使用。。。用443倒是可以(vps上开了wordpress)
    rainbow2017-08-12 20:45 回复
  24. 这样一来,还需要在混淆参数那里填上自己的域名吗??
    sdf2017-08-08 16:52 回复
    • 不需要。
      Toyo2017-08-08 18:01 回复
      • 多个网站都想用443端口,redirect 那里该怎样填呢
        sdf2017-08-09 16:44 回复
  25. 用端口扫描工具nmap可以扫出2个http服务,一个是80端口,一个是2333端口。能不能配置linux使2333端口对除了127.0.0.1的IP不可见?
    ssr_lover2017-07-31 19:44 回复
    • 封禁防火墙端口,禁止外部访问 2333 端口。
      iptables -D INPUT -p tcp --dport 2333 -j ACCEPT
      iptables -D INPUT -p udp --dport 2333 -j ACCEPT
      
      Toyo2017-07-31 20:15 回复
    • 在 Caddyfile 里填 bind local host 就行了吧!
      lmath2017-08-31 17:22 回复
  26. 看着大大的另外两篇教程先用freenom申请了个域名(soyeaho.ml),然后用cloudxnd接管,dns应该是解析成功了,可是启动caddy的时候用service caddy start启动失败,提示Activating privacy features...2017/07/27 17:11:26 [soyeah.ml] failed to get certificate: acme: Error 400 - urn:acme:error:connection - DNS problem: NXDOMAIN looking up A for soyeah.ml :sad: 对不起。。。小白看不太懂,这咋解决呢?是不是先学会自己建站比较好。。。 如果上面的问题太弱智或者不好回答的话,请问我能不能不弄自己的网页,直接把这篇文章里的https://toyoo.ml 换成https://www.amazon.com呢? 谢谢老大!
    yeah2017-07-27 17:17 回复
    • 默认Caddy申请证书的话,是申请的Let’s Encrypt SSL,而Let’s Encrypt SSL会验证这个域名是否有解析记录,而验证用的服务器是海外的(毕竟是海外的SSL证书),所以你可能国内测试DNS解析成功了,但是海外还没成功,可以再等两天,或者用其他方法申请SSL证书并上传指定SSL证书,或者暂时使用http。
      Toyo2017-07-28 00:09 回复
      • 好的,那我再试试!
        yeah2017-07-28 15:09 回复
      • 恩今天就可以启动caddy啦~可是启动了之后貌似还是无法访问(httsp://域名:端口)这个网站,chrome提示它意外终止了连接,接下来是还要再等一等吗?
        yeah2017-07-28 15:30 回复
        • 等个毛线,这说明启动失败或者防火墙端口没开放。
          Toyo2017-07-28 19:10 回复
          • 用tail -f /tmp/caddy.log显示启动成功了呀(;´Д`)提示最后一行是WARNING: File descriptor limit 1024 is too low for production servers. At least 8192 is recommended. 那防火墙要怎么弄呢。。系统是debian 7x64
            yeah2017-07-28 21:24 回复
  27. 大佬http重定向https这里有个坑.好像少写了指点路径 echo "http://toyoo.ml:80 { timeouts none redir https://toyoo.ml:443{url} } https://toyoo.ml:6666 { gzip tls /root/xxx.crt /root/xxx.key }" > /usr/local/caddy/Caddyfile ____________________________________________ oot /usr/local/caddy/www/ssr
    kk2017-07-27 11:54 回复
    • 嗯,感谢提醒,已修复。
      Toyo2017-07-27 12:35 回复
  28. ssr mu 好像没有redirect的功能
    双重生命2017-07-26 15:12 回复
  29. v2ray可以支持websocket协议通过nginx转发分流80、443端口数据,nginx是在服务器前端的,看教程ssr貌似是反过来的,由ssr作为服务器前端监听80、443端口,再由ssr根据请求转发给后端的nginx或是ssr服务端,是这样吗?这样说来,当v2ray与ssr都开启80、443端口伪装的话,会出现端口冲突,就不能在同一台vps上共存了吧?
    bigbigfish2017-07-25 23:09 回复
    • 同一个端口,只允许同一个程序占用监听。你如何两个程序监听同一个端口?
      Toyo2017-07-25 23:14 回复
      • 换个思路,将ssr设为前端代理监控80、443端口,访问ssr的发到ssr后端处理,其他的转发给nginx处理,nginx收到请求后是访问网页的直接显示,是v2ray请求的通过websocket对应路径和端口转发给v2ray后端,不知道这样是否可行?主要是协议间的转换是否兼容?
        bigbigfish2017-07-26 09:59 回复
        • 能自己测试就自己测试,我不玩V2ray。
          Toyo2017-07-26 10:02 回复
  30. 这招好。不过话说定向转发到微软官网什么之类的去行不行……?
    Duffy2017-07-13 19:33 回复
  31. 看标题还以为在介绍ml呢。。。看完文章又学了一招~
    lang2017-05-28 23:38 回复
  32. 直接重定向转发至国内正常网站不会更好吗? 比如直接转发到百度
    23332017-05-21 11:08 回复
    • 你访问海外服务器上面的国内网站?不要自作聪明
      Toyo2017-05-21 12:34 回复
  33. HTTP重新定向HTTPS直接443端口就可以了,因为SSR已经把443转到6666了,如果重新定向为6666端口会在网页结尾显示端口号,重新定向443端口则不会显示端口号,即Caddy(80)→SSR(443)→Caddy(6666),这样伪装更彻底。。。虽然感觉没什么卵用。最近跟博主学了不少东西,非常感谢!
    P3terChan2017-05-04 16:04 回复
    • 哥们,问一下即Caddy(80)→SSR(443)→Caddy(6666)这个流程的具体过程么?我跳转的后面都有端口
      world33242017-10-27 11:30 回复
  34. 2017-04-21 18:42:17-- https://caddyserver.com/download/build?os=linux&arch=amd64&features= Resolving caddyserver.com (caddyserver.com)... 2604:a880:2:d0::1145:e001, 138.68.240.78 Connecting to caddyserver.com (caddyserver.com)|2604:a880:2:d0::1145:e001|:443... connected. HTTP request sent, awaiting response... 404 Not Found 2017-04-21 18:42:17 ERROR 404: Not Found. debian8无法安装提示错误 gzip: stdin: unexpected end of file tar: Child returned status 1 tar: Error is not recoverable: exiting now [错误] Caddy 解压失败或压缩文件错误 !
    Ty2017-04-21 18:45 回复
    • Caddy官网升级,下载连接也改了,我已经更新脚本了,重新下载脚本即可(v1.0.3)。
      Toyo2017-04-21 19:18 回复
      • 又出现该错误了
        2017-06-29 10:49 回复
        • 不,没有404,不是这个错误,而是链接(下载)超时,我去官网浏览器手动下载也是超时,是Caddy官网下载处自身的问题,等等官网恢复吧。
          Toyo2017-06-29 12:38 回复
  35. shadowsocks可以配合着使用caddy吗?
    phil2017-04-17 17:11 回复
    • 不能,本教程只有ShadowsocksR Python服务端能实现。
      Toyo2017-04-17 18:56 回复
  36. caddy 开机启动不了呀..Ubuntu 14 ...能做个启动脚本嘛. 呵呵..
    SS2017-04-11 20:51 回复
    • 服务控制init脚本(service caddy xxx)已经设置开机启动了,没有启动说明因为某原因失败了。
      Centos6 Debian7 Ubuntu14 系统我都测试过,但不保证所有系统都正常,使用 cat /tmp/caddy.log 查看启动日志。
      Toyo2017-04-11 23:45 回复
      • 警告WARNING: File descriptor limit 1024 is too low for production servers. At least 8192 is recommended. Fix with "ulimit -n 8192".
        SS2017-04-12 18:48 回复
        • 这个是正常的提示,指的是你的系统文件最大打开数(并发数)只有1024太少(linux 默认1024),Caddy建议你改成 8192或者更多。 你可以执行 ulimit -n 8192 来临时设置文件并发数,但重启后会失效。 也可以永久的设定:
          echo "* soft nofile 51200
          * hard nofile 51200" >> /etc/security/limits.conf
          # 执行后是没有反应的,再执行这个即可
          ulimit -n 51200
          
          Toyo2017-04-12 19:57 回复
  37. 我樹莓派搭建了SSR服務端,debian的。剛在上面嘗試了下~提示不支持arm設備!
    ntg2017-04-04 10:18 回复
  38. https://www.nanqinlang.com/analyze-pretend-website 在本文基础上写了更为详细的分析讲解 详细到我都嫌罗嗦了 相信刚看帖子的人肯定有很多和我当时一样特别迷
    南琴浪2017-03-24 21:28 回复
  39. http重定向https的时候,443用1443代替,80用1080代替,日志还是提示443端口被占用,单独使用1080端口就没问题,ssr开的80和443
    shin2017-03-23 15:24 回复
    • 请提供Caddy配置文件和SSR配置文件。
      Toyo2017-03-23 18:19 回复
  40. 这样部署对UDP转发有影响吗?
    嘿嘿嘿2017-03-17 10:40 回复
  41. 话说我现在有点迷 在同一服务器上建了lnmp的wordpress站
    南琴浪2017-03-16 17:42 回复
    • 话都没打完发出去了... 我把站和ssr放在同一服务器 nginx监听80/433,rewrite重定向80http到443https ssr监听8080端口 nginx好像并不能像caddy那样监听2333/6666端口吧 那我ssr的redirect参数要怎么填
      南琴浪2017-03-16 17:54 回复
      • 谁告诉你Nginx不能监听其他端口?Nginx/Apache/Caddy都是一样的,想监听什么端口就监听什么端口。
        Toyo2017-03-16 18:08 回复
        • 明白了 原来是用ssr把端口转接到44端口 之前觉着nginx不设置443的话https根本不能通 我好像成功了。
          南琴浪2017-03-16 19:08 回复
          • 为了互联网的规范,所以这些端口都赋予了固定的意义,比如 22是SSH端口,25是邮件端口,80是HTTP端口,443是HTTPS端口。
            你访问 谷歌,你只需要输入 www.google.com ,然后浏览器会自动加上协议 http:// 和端口 80,完整的地址应该是: http://www.google.com:80 ,不过http的默认端口就是80,所以浏览器隐藏了端口。
            HTTPS也一样,隐藏了443端口,当你设置其他端口的话,你就需要手动加上端口了,比如 https://xxx.xx:2333 这样
            Toyo2017-03-16 19:34 回复
  42. toyoyo君,是不是意思就是,caddy是用来建站而已,并且实际web端口是2333和6666,然后由shadow使用80和443转发web或流量?那我是不是用其他别的搭web都可以了,只要确保端口正确指向就好了?
    在烀2017-03-16 13:49 回复
    • 是的,你通过 http://ip:2333 也能访问网站,你通过 http://ip:80(80默认是隐藏的) 你就会访问到ShadowsocksR服务端,然后ShadowsocksR服务端会根据配置去把 流量重定向到 http://ip:2333
      Toyo2017-03-16 13:56 回复
  43. 希望出一个shadowsocks-libev版加装simple-obfs插件跟真实web共存的教程 :roll:
    catdot2017-03-15 15:13 回复
    • shadowsocks-libev版服务端 + simple-obfs插件并不能实现本文章所写的同端口共存。
      Toyo2017-03-19 16:22 回复
  44. 简直是太棒了!!!这样做是不是可以不用去再用混淆和协议了呢?不然延迟好高。。
    大熊2017-03-15 10:21 回复
    • 协议插件建议还是使用,混淆插件会提高延迟(特别是玩游戏有影响),可以考虑使用原版。
      Toyo2017-03-15 10:49 回复
  45. 发现问题所在了。。。caddy一直是未运行 运行start显示启动成功 再运行status却显示caddy未运行
    南琴浪2017-03-14 23:47 回复
    • 这的确是一个BUG,因为检测是命令执行是否成功,实际上 nohub 运行成功了就会显示启动成功,但是Caddy启动后 如果配置文件有问题或者 端口被占用,会报错然后自己退出。
      Toyo2017-03-15 00:19 回复
  46. 上传的模板应该是什么后缀的文件啊 我下载的模板有fonts/html/psd三个文件夹
    南琴浪2017-03-14 23:31 回复
    • HTML+CSS这样的网页模板就行了。
      Toyo2017-03-15 00:16 回复
      • 其它的配置都成功了 只剩一步就是访问域名 电脑上只有一串英文提示“not at this site on:2333” 手机上却是“404 not found” 开不开代理都是一样的提示.
        南琴浪2017-03-15 06:47 回复
        • 然而你说这些,都没有意义,配置文件具体内容我都不清楚,无法判断。
          Toyo2017-03-15 09:36 回复
      • 总是no such site at:2333 难道是我模板上传错了.
        南琴浪2017-03-15 07:15 回复
  47. Bad response. The server or forwarder response doesn't look like HTTP. 这是哪个部分的问题 是我放的模板有问题 还是我的域名解析有问题
    南琴浪2017-03-14 23:04 回复
  48. 测试成功 非常好用 小巧!~
    Bruce2017-03-14 17:53 回复
  49. 这个有意思,和ariang共存是不是改ariang的端口就行了么,鄙人从来没有碰过nginx或者caddy这些东西...
    kurokutomoko2017-03-14 17:41 回复
    • 和ariang共存没什么影响,端口不用管。该怎么设置怎么设置。
      不过需要这注意的是,我的教程里的写入配置文件代码,都是 清空配置文件然后再写入的,最后一句代码:
      }" > /usr/local/caddy/Caddyfile
      # 把上面这个改成下面这个,就是 把配置信息加入到配置文件最后,而不是清空后加入。
      }" >> /usr/local/caddy/Caddyfile
      
      Toyo2017-03-14 18:21 回复
      • 十分感谢!
        kurokutomoko2017-03-14 21:09 回复
      • 都删了吧,我知道了,原来是直接打命令,已经弄好了,十分感谢大大
        iiko2017-08-09 19:03 回复
  50. 沙发
    zrj7662017-03-14 16:17 回复
    • 上一条删了,编辑错了,眼睛花了
      vi /usr/local/caddy/Caddyfile
      
      里面是空白的,添加代码:
      echo "http://XXXXXX.XXX:2333 {
       root /usr/local/caddy/www/ssr
       timeouts none
       gzip
      }" > /usr/local/caddy/Caddyfile
      
      代码是白色的
      ssr用的是你的一键脚本安装的
      请问大大哪里错了
      另外我的ssl证书是.KEM,不是.KEY.这个影响https配置吗
      iiko2017-08-09 15:58 回复
1 2