IOTXING

记录技术学习之路

0%

Nginx伪装流量

之前使用的nginx伪装流量,后来发现是有问题的,很快就被封了。
之前的思路是,机器保留443端口,然后使用ssr去链接跳板机的443端口,如果是ssr协议,就转发到本地的ssr服务,如果是http请求,就返回对应的页面。
这么做存在一个漏洞,所有经过443端口的流量都会被探测到,如果检测到ssr的特征,就会直接导致机器的端口被封,连不上。而443和80又是被检测的高风险端口

旧版伪装

我们可以通过以下的思路来限制
新版伪装
这里我们使用自定义端口,然后只允许通过国内的机器访问(nginx指定ip),这里我们在客户端连接的时候,连接的是国内的nginx暴露出来的端口,然后国内nginx再把流量转发到国外的nginx指定端口,国外nginx再把流量转发到本机的ssr服务,这样从外界看起来,直接简单的对nginx的访问,而且因为使用的是自定义的端口,除非是对机器所有端口扫描,否则是很难去探测到的。

对我们来说,实现这些东西,需要两台机器,一台国内机器,一台国外机器,并且都需要安装nginx,并且开放指定的端口访问权限,国外的机器需要安装需要转发的流量,如ssr。

国内nginx配置

1
2
3
4
5
6
7
stream {

server {
listen 2134 ; ## 这里使用自定义端口,需要机器开发端口的访问权限
proxy_pass xxxxxxx:3389; ## 这里填写国外vm的域名或者ip地址 加端口
}
}

修改完配置文件以后,记得使用命令重启nginx,让修改生效

1
nginx -s reload

国外nginx配置

1
2
3
4
5
6
7
8
9
10
11
12
13
stream {

upstream local{
server localhost:428; //要转发到的本地端口,也就是ssr的监听端口
}

server{
listen 3389; //监听的端口,也就是国内nginx里面配置的转发的端口
allow 172.xxx.xxx.141; // 国内机器的ip,运行访问
deny all; //禁止一切别的ip访问
proxy_pass local; //转发到本地
}
}

ssr配置

ssr设置端口,然后nginx转发过来,具体配置依靠各自的ssr实现方式