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

参考:逗比根据地 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 配置

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 ,请注意更换为自己的域名,并做好域名解析。

HTTP(80端口)

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

编辑配置文件

vi /usr/local/caddy/Caddyfile
# 添加如下内容
http://ss8.augustdoit.men:1080 {
 root /usr/local/caddy/www/ssr
 timeouts none
 gzip
}

HTTPS(443端口)

如果你想要伪装 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

ShadowsocksR 配置步骤

想搞清楚可以看看我的这篇: 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)。

DJANGO-SSPANEL 单端口多用户设置

前端添加节点

服务器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"],