前言
我们熟知的中转工具很多,常见的有如下,
目前gost和realm比较火,因为可以进行隧道中转,其实我们熟知的nginx也可以用于端口转发,今天我们就来看看。
安装nginx
CentOS: yum update yum install -y nginx yum install nginx-mod-stream Ubuntu/Debian: apt update apt install nginx
查看stream模块,测试你的nginx是不是支持stream模块
nginx -V
出现这样的–with-stream字样,说明就是支持的!
修改nginx配置文件
找到/usr/local/nginx/conf/nginx.conf, 在events上面加入stream配置
stream { upstream forward { # simple round-robin 转发IP和端口 server 1.1.1.1:443; #check interval=3000 rise=2 fall=5 timeout=1000; #check interval=3000 rise=2 fall=5timeout=1000 #check interval=3000 rise=2 fall=5timeout=1000 #check_http_send "GET /HTTP/1.0\r\n\r\n"; #check_http_expect_alive http_2xxhttp_3xx; } server { listen 3389; ##监听端口 proxy_pass forward; #转发请求 } }
端口复用
stream { upstream forward { # simple round-robin 转发IP和端口 server 1.1.1.1:443; server 1.1.1.1:443; #check interval=3000 rise=2 fall=5 timeout=1000; #check interval=3000 rise=2 fall=5timeout=1000 #check interval=3000 rise=2 fall=5timeout=1000 #check_http_send "GET /HTTP/1.0\r\n\r\n"; #check_http_expect_alive http_2xxhttp_3xx; } server { listen 3389; ##监听端口 proxy_pass forward; #转发请求 } }
客户端配置
由于这样的配置,nginx知识起到转发流量的作用,所以在进行tls握手时,在填写客户端时,host或者sni处要填写你原来的域名,这样电脑才能知道是要跟哪台机器进行通讯。