利用nginx实现https和ssh共用端口绕过防火墙限制ssh登录的方法


1.前提

nginx > 1.15.2版本

  

2.实现的原理

nginx 1.15.2版本以后,新增了一个新特性$ssl_preread_protocol,可以让tcp stream proxy区分web ssl/tls和其它协议;

 

3.配置方法

stream {
upstream ssh {
server 192.0.2.1:22;
}

upstream web {
server 192.0.2.2:443;
}

map $ssl_preread_protocol $upstream {
default ssh;
"TLSv1.2" web;
}

# SSH and SSL on the same port
server {
listen 443;

proxy_pass $upstream;
ssl_preread on;
}
}

这是利用nginx配置的四层负载均衡

 

4.此时登录ssh的办法改为

ssh ssh-server-ip-address -p 443

通过443端口,可以登录ssh了


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM