1. 用騰訊雲伺服器搭建反向代理實現公網訪問內網伺服器
面對實驗室伺服器只能內網訪問的問題,我利用騰訊雲的資源搭建反向代理,實現遠程公網訪問。首先,購買騰訊雲伺服器,獲取公網IP,並重置Ubuntu的sudo密碼。然後,以root許可權修改ssh配置,允許反向代理和無密碼root登錄,並確保ssh服務重啟。
接著,將內網伺服器的公鑰添加到騰訊雲的authorized_keys,確保無密碼登錄。在騰訊雲伺服器控制面板上開放特定埠(如3000),可能還需調整防火牆設置。在內網機器上安裝autossh並執行映射命令,使用TCPKeepAlive和ServerAliveInterval參數以保持連接活躍。
驗證映射成功的方法是檢查騰訊雲伺服器的埠狀態。在調試過程中,若遇到連接失敗,需先停止可能影響的進程。如果映射後依然無法從公網訪問,檢查ssh公鑰配置、無密碼登錄許可權以及內網機器的登錄限制。通常,伺服器埠映射成功,連接問題可能出在身份驗證環節,這時可以重新生成並配置PC端的ssh密鑰來解決問題。
2. Nginx反向代理TCP協議【反代SSH埠】
當需要通過Nginx間接訪問TCP協議的服務,如SSH,以實現埠轉發時,一個常見的需求應運而生。
要實現這一目標,首先需要理解反向代理的工作原理。Nginx作為一款強大的網路伺服器,能夠將客戶端的請求轉發到後端伺服器,即使後端伺服器運行的是非HTTP協議,如TCP。這里,我們關注的是如何配置Nginx來代理SSH連接。
配置過程中,關鍵在於設置正確的代理規則。通常,需要在Nginx的配置文件中添加一個新的location塊,指定監聽的埠(如22822)以及目標伺服器的地址和SSH埠(默認為22)。確保防火牆和Nginx伺服器的許可權設置允許這種通信。
在實施時,注意事項不可忽視。首先,要確保Nginx配置的正確性,避免語法錯誤。其次,檢查目標SSH伺服器的配置,確認它是否允許來自Nginx代理的連接。還要注意安全,可能需要使用SSL/TLS加密,以保護數據傳輸。
深入了解Nginx的proxy_pass指令和相關模塊,如stream模塊,可以幫助你更精確地管理TCP代理。同時,定期檢查Nginx日誌以發現和解決問題也是必不可少的。
一旦配置完成,SSH客戶端只需連接到VPS的22822埠,即可成功地通過Nginx反向代理訪問SSH服務。至此,反代任務已順利完成,可以開始高效地使用了。