用SSH訪問內網主機的方法

現在的互聯網公司一般不會直接本身直接配主機搭建服務器了,而是採用了相似阿里雲的這種雲主機,當應用變得愈來愈大了以後,就不可避免地增長主機,而出於成本考慮,不可能給每一臺主機都分配公網帶寬,因此實際的狀況可能會變成這樣:html

內網IP爲10.51.15.12和10.51.15.13的兩臺主機並無外網帶寬,一般是做爲後端數據庫服務器或者後端業務邏輯處理服務器使用,這樣咱們會遇到一個問題:沒法直接用SSH登陸這兩臺服務器,如何解決這個問題?——固然是藉助帶有公網IP的服務器「中轉」一下了,以下圖:nginx

考慮到SSH其實走的是TCP協議,咱們只須要在10.51.15.11上安裝和配置一個TCP中轉服務器便可,NGINX就具備這個功能。如何安裝和配置NGINX請移步這裏:簡易NGINX TCP反向代理設置數據庫

這裏介紹的內容和上述文章沒有太多不一樣,僅僅在配置上有一點點不同(並且還更簡單),編輯/etc/nginx/nginx.conf後端

stream{
    upstream ssllink12{
        server 10.51.15.12:22 max_fails=3 fail_timeout=10s;
    }
    
    upstream ssllink13{
        server 10.51.15.13:22 max_fails=3 fail_timeout=10s;
    }

    server{
        listen 1118;
        proxy_connect_timeout 20s;
        proxy_timeout 5m;
        proxy_pass ssllink12;
    }
    
    server{
        listen 1119;
        proxy_connect_timeout 20s;
        proxy_timeout 5m;
        proxy_pass ssllink13;
    }
}

配置很簡單,意思也很明確,將鏈接至1118端口的TCP請求轉至10.51.15.12:22,將鏈接至1119端口的TCP請求轉至10.51.15.13:22。服務器

重啓NGINX:tcp

systemctl restart nginx

若有必要,配置一下防火牆:阿里雲

firewall-cmd --zone=public --add-port=1118/tcp --permanent
firewall-cmd --zone=public --add-port=1119/tcp --permanent
firewall-cmd --reload

而後直接用SSH試試看吧。spa

NGINX採用了「透明」的工做模式,以至SSH客戶端不知曉本身的鏈接請求其實已經被轉交到一臺內網主機中了。代理

相關文章
相關標籤/搜索