参考:逗比根据地 ShadowsocksR服务端伪装成 正常网站流量,以更好的欺骗流量匹配
单纯的伪装ShadowsocksR流量,不需要Nginx/Apache配置相复杂的HTTP服务器,用Caddy就好了。
目的:
访问站点ss8.augustdoit.men(80/443跳转到1080或其他端口),能正常看到网站,同时通过ssr链接(节点ip/域名ss8.augustdoit.men,端口:80或443)也能正常使用。
注意:
如果要用这个同端口伪装功能,请不要开启 协议(origin)和混淆插件(obfs)的兼容原版模式(_compatible),不要使用原版SS链接!
同时,Shadowsocks-libev版服务端的simple-obfs功能,并不能实现本教程所说的同端口共存功能!
Caddy 是 Go语言编译好的二进制程序
wget -N --no-check-certificate https://softs.loan/Bash/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh install http.filemanager
# 如果上面这个脚本无法下载,尝试使用备用下载:
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
成功后,继续下面的步骤
注意:以下示例域名皆为 ss8.augustdoit.men ,请注意更换为自己的域名,并做好域名解析。
若要伪装 80端口(ShadowsocksR服务端的用户端口是 80),那么你可以在 Caddy中随便配置一个监听端口,例如1080。
编辑配置文件
vi /usr/local/caddy/Caddyfile
# 添加如下内容
http://ss8.augustdoit.men:1080 {
root /usr/local/caddy/www/ssr
timeouts none
gzip
}
如果你想要伪装 443端口(ShadowsocksR服务端的用户端口是 443),那么你可以在 Caddy中随便配置一个监听端口,例如6666
如果你没有 SSL证书和密匙
下面的 [email protected] 改成你的邮箱,同时需要注意的是,申请 SSL证书前,请务必提前解析好域名记录(解析后最好等一会,全球生效),否则 Caddy会申请并配置失败!,配置文件是这样:
ss8.augustdoit.men:6666 {
root /usr/local/caddy/www/ssr
timeouts none
tls [email protected]
gzip
}
如果一切正常,那么Caddy会自动帮你申请 SSL证书并配置好,而且会定时续约SSL证书 和 强制 http重定向至https !
如果你有 SSL证书和密匙
把 SSL证书(xxx.crt)和密匙(xxx.key)文件放到/root文件夹下(也可以是其他文件夹,自己改下面代码),然后编辑配置文件:
vi /usr/local/caddy/Caddyfile
# 添加如下内容
ss1.augsutdoit.men: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://ss8.augustdoit.men:80 {
timeouts none
redir https://ss8.augustdoit.men:443{url}
}
ss8.augustdoit.men:6666 {
root /usr/local/caddy/www/ssr
gzip
tls /root/xxx.crt /root/xxx.key
}
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
想搞清楚可以看看我的这篇: SSR单端口多用户配置方法
编辑配置文件 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地址也可以写域名(ss8.augustdoit.men)。
前端添加节点
服务器ip既可以填ip也可以填域名,混淆参数要加上域名
后端设置
修改好 userapiconfig.py 后仍需要配置 user-config.json
HTTP(80端口)配置文件
#修改如下字段
"additional_ports": {
"443": {
"passwd": "augustdoit",
"method": "aes-128-ctr",
"protocol": "auth_aes128_sha1",
"protocol_param": "#",
"obfs": "http_simple",
"obfs_param": "ss8.augustdoit.men"
}
},
# 以及字段
"redirect": ["*:80#127.0.0.1:1080"],
HTTPS(443端口)
#修改如下字段
"additional_ports": {
"443": {
"passwd": "augustdoit",
"method": "aes-128-ctr",
"protocol": "auth_aes128_sha1",
"protocol_param": "#",
"obfs": "http_simple",
"obfs_param": "ss8.augustdoit.men"
}
},
# 以及字段
"redirect": ["*:443#127.0.0.1:6666"],
前端可以参照:魔改版单端口多用户教程
仍需修改user-config.json
"redirect": ["*:443#127.0.0.1:6666"],