SSR 高级端口转发 伪装网站正常流量

参考:逗比根据地 ShadowsocksR服务端伪装成 正常网站流量,以更好的欺骗流量匹配

单纯的伪装ShadowsocksR流量,不需要Nginx/Apache配置相复杂的HTTP服务器,用Caddy就好了。

目的:
访问站点xinruanouba.ssr01.6667.date(80/443跳转到1080或其他端口),能正常看到网站,同时通过ssr链接(节点ip/域名xinruanouba.ssr01.6667.dat3,端口:80或443)也能正常使用。

注意:
如果要用这个同端口伪装功能,请不要开启 协议(origin)和混淆插件(obfs)的兼容原版模式(_compatible),不要使用原版SS链接!
同时,Shadowsocks-libev版服务端的simple-obfs功能,并不能实现本教程所说的同端口共存功能!

Caddy 配置

Caddy 是 Go语言编译好的二进制程序

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

成功后,继续下面的步骤

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

HTTP(80端口)

若要伪装 80端口(ShadowsocksR服务端的用户端口是 80),那么你可以在 Caddy中随便配置一个监听端口,例如1080。

编辑配置文件

 

vi /usr/local/caddy/Caddyfile
# 添加如下内容
http://xinruanouba.ssr01.6667.date:1080
 {
 root /usr/local/caddy/www/ssr
 timeouts none
 gzip
}

HTTPS(443端口)

如果你想要伪装 443端口(ShadowsocksR服务端的用户端口是 443),那么你可以在 Caddy中随便配置一个监听端口,例如6666

如果你没有 SSL证书和密匙

下面的 xxxx@xxx.xx 改成你的邮箱,同时需要注意的是,申请 SSL证书前,请务必提前解析好域名记录(解析后最好等一会,全球生效),否则 Caddy会申请并配置失败!,配置文件是这样:

xinruanouba.ssr01.6667.date:6666 
{ 
root /usr/local/caddy/www/ssr 
timeouts none 
tls xxxx@xxx.xx 
gzip 
}

如果一切正常,那么Caddy会自动帮你申请 SSL证书并配置好,而且会定时续约SSL证书 和 强制 http重定向至https !

如果你有 SSL证书和密匙

把 SSL证书(xxx.crt)和密匙(xxx.key)文件放到/root文件夹下(也可以是其他文件夹,自己改下面代码),然后编辑配置文件:

vi /usr/local/caddy/Caddyfile
# 添加如下内容
xinruanouba.ssr01.6667.date:6666 {
  root /usr/local/caddy/www/ssr
  timeouts none
  tls /root/xxx.crt /root/xxx.key
  gzip
}

然后 HTTP 重定向为 HTTPS

由于是手动指定 SSL证书和密匙,Caddy只会监听 HTTPS端口(6666),并不会自动设置HTTP的重定向(如果是Caddy自动申请的SSL证书,那么已经自动做好了)

下面这个示例HTTP依然监听的80端口,如果你的ShadowsocksR服务端同时做了 80和443 两个端口的伪装,那么你可以把 80改成其他的比如 2333 端口。

http://xinruanouba.ssr01.6667.date:80 {
 timeouts none
 redir https://xinruanouba.ssr01.6667.date:443{url}
}
xinruanouba.ssr01.6667.date:6666 {
 root /usr/local/caddy/www/ssr
 gzip
 tls xxx@xx.xx
}

创建网站目录上传网站

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

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

重启 Caddy

/etc/init.d/caddy restart

还没有结束,我们还需要继续配置ShadowsocksR服务端。

Caddy 使用说明

启动:/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 配置步骤

编辑配置文件 user-config.json 修改 server_port 和 redirect 参数就可以了

HTTP(80端口)

"server_port": 80,
"redirect": ["*:80#127.0.0.1:1080"],

HTTPS(443端口)

"server_port": 443,
"redirect": ["*:443#127.0.0.1:6666"],

多端口配置

redirect": ["*:888#127.0.0.1:1080", "*:666#127.0.0.1:6666"],

现在就可以了,网站可以直接访问,SSR服务器/节点IP 既可以写IP地址也可以写域名(SG2SCH130083c18593.6667.data)

客户端混淆设置

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

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

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

徐凤年

人于浮世,独来独往,独生独死,苦乐自当,无有代者。

留下你的评论

*评论支持代码高亮<pre class="prettyprint linenums">代码</pre>