在 1.9.13 版本后,Nginx 已经支持端口转发,编译的时候需要 stream 这个模块支持,同时支持 TCP/UDP 端口转发。

使用环境

  • Ubuntu 20.04 LTS
  • Nginx: 1.20.1

查看nginx是否支持stream模块

nginx -V |grep with-stream

uTools_1641390934806.png

出现 --with-stream字样,说明nginx支持stream。

配置Nginx

在nginx配置 nginx.conf 文件中新增以下stream配置 要求与http{}同级

stream {
   ##多端口转发 ssh
    upstream run_ssh{
        server 8.8.8.8:8888; ##转发的目的地址和端口
    }
    server {
        listen 800 ssl; ##监听端口
        proxy_pass run_ssh;  #转发请求
        ssl_certificate    /www/server/panel/vhost/cert/fullchain.pem; ##证书文件
        ssl_certificate_key    /www/server/panel/vhost/cert/privkey.pem; ##证书文件
        ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
        ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
        ssl_prefer_server_ciphers on;
        ssl_session_timeout 10m;
    }

    ##多端口转发 tcp
    upstream run_tcp {
        server 8.8.8.8:111;
    }
    server {
        listen 80; ##监听端口
        proxy_pass run_tcp;  #转发请求
    }
}

ssl:将 localhost:800端口转发到 8.8.8.8:8888
tpc:将 localhost:80端口转发到 8.8.8.8:111

最后修改:2022 年 01 月 18 日
如果觉得我的文章对你有用,请随意赞赏