利用Nginx的stream模块进行端口转发并实现端口复用

实用教程 admin 2年前 (2022-06-29) 1764次浏览 0个评论

前言

我们熟知的中转工具很多,常见的有如下,

目前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处要填写你原来的域名,这样电脑才能知道是要跟哪台机器进行通讯。


VPS小白 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:利用Nginx的stream模块进行端口转发并实现端口复用
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址