起源
公司希望能有一個功能能夠?qū)崿F(xiàn)建立從公網(wǎng)上的平臺到線下產(chǎn)品的ssh連接舍杜。而我們的產(chǎn)品一般是在學(xué)形溃或者公司的內(nèi)網(wǎng)中是無法直接建立ssh連接的。經(jīng)過實驗與討論決定通過反向連接的方式來建立ssh連接。
方案
如果你有一個公網(wǎng)上的服務(wù)器银锻,并且你需要連接一臺無法直接連接的局域網(wǎng)內(nèi)的機(jī)器。那么下面這個思路會比較適合你做鹰。
- 公網(wǎng)服務(wù)器作為連接請求分發(fā)中心
- 局域網(wǎng)機(jī)器輪詢服務(wù)器獲取連接請求操作
- 局域網(wǎng)機(jī)器發(fā)現(xiàn)有連接請求后和服務(wù)器建立socket長連接
- 局域網(wǎng)機(jī)器在本地打開終端(通過編程語言)击纬,然后獲取終端輸入和輸出流
- 將終端的輸入、輸出流和 socket的輸入钾麸、輸出流關(guān)聯(lián)起來
- 公網(wǎng)服務(wù)器就能間接獲取到局域網(wǎng)機(jī)器本地終端的輸入輸出流
以上解決方案涉及到socket 編程和IO操作
sshs
sshs是以上方案的Java語言實現(xiàn)更振。
sshs 主要實現(xiàn)的是客戶端機(jī)器打開終端炕桨、獲取終端輸入輸出流、與服務(wù)端建立socket和服務(wù)端獲取socket輸入輸出流操作肯腕。不包含解決方案中的1,2步驟献宫。因為這些操作需要調(diào)用sshs的使用者來完成
更詳細(xì)內(nèi)容情況項目地址
項目地址:sshs