nginx采用反向代理转发ssh服务
nginx stream模块简介
nginx从1.9.0开始,新增加了一个stream模块,用来实现四层协议的转发、代理或者负载均衡等。
stream 模块编译
stream模块默认没有编译到nginx, 编译nginx时候 ./configure –with-stream 即可。
我的nginx版本是nginx/1.12.2。操作系统是centos,采用的是yum 直接安装,默认自带stream模块
编辑/etc/nginx/nginx.conf 文件,采用反向代理,配置ssh内网转发
worker_processes 1;
events {
worker_connections 1024;
}
stream { #stream模块,就跟http模块一样
upstream ssh {
server 192.168.41.21:22;
}
server { #里面可以有多个监听服务,配置监听端口和代理的ip和端口就可以进行tcp代理了
listen 8080;
proxy_pass ssh;
proxy_connect_timeout 1h;
proxy_timeout 1h;
}
}
测试:
[root@nginx-web ~]# ssh centos@192.168.3.102 -p 8080
如果不能成功,可能跟防火墙有关系,根据自己网络情况禁止seclinux或者加入防火墙规则。
eg: iptables -A IN_public_allow -p tcp -m tcp --dport 8080 -m conntrack --ctstate NEW -j ACCEPT