利用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