#教程# Nginx – 安装stream模块进行TCP/UDP端口转发

简介

Nginx是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 服务器。在 1.9.13 版本后,Nginx已经支持端口转发,编译的时候需要 stream 这个模块支持,同时支持 TCP/UDP端口转发

图片[1] - #教程# Nginx – 安装stream模块进行TCP/UDP端口转发 - 云线路

安装 Nginx

单独安装 Nginx 方法我就不介绍了,详情见 LNMP 安装使用教程,军哥的 LNMP 可以单独安装 Nginx 或者 MySql,请自行安装配置。

安装完后行下面的命令查看 nginx 信息,是否有 —with-stream这个模块

nginx -V

配置端口转发

在 nginx.conf 添加如下配置,并使用 nginx -s reload 重载 nginx 使其生效,同时注意防火墙/安全组放行对应的端口

stream {
    #将 12345 端口转发到 192.168.1.23 的 3306 端口
    server {
        listen 12345;
        proxy_connect_timeout 5s;
        proxy_timeout 20s;
        proxy_pass 192.168.1.23:3306;
    }
    #将 udp 53 端口转发到 192.168.1.23 53 端口
    server {
        listen 53 udp reuseport;
        proxy_timeout 20s;
        proxy_pass 192.168.1.23:53;
    }
}

listen:后面填写源端口(也就是当前服务器端口),默认协议为 TCP,可以指定为 UDP 协议;

proxy_connect_timeout:连接超时时间;

proxy_timeout:超时时间;

proxy_pass:填写转发目标的 IP 及端口号;

总结

目前能实现端口转发的工具大致有:rinetd、SSH、iptables、nginx、haproxy,其中 rinetd 配置最为简单,但不支持 UDP 转发,并且该软件已经好几年未更新,如果您服务器上已经安装了 nginx,不妨用 nginx 做端口转发。

© 本站文章随意转载,但请注明出处!
THE END
点赞11 分享
评论 抢沙发
头像
务必使用真实的邮箱地址评论,虚假邮箱的评论将不通过审核及无回复。
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容