去年咱們開發了一個內網穿透軟件notr併發布,軟件自己有一個調度器的角色,負責選擇距離當前客戶端最近的節點進行鏈接,詳細設計以下圖所示:git
內部的registry/scheduler就是這裏所說的調度器。一開始沒有考慮到會有海外用戶,因此服務器都部署在中國大陸。後續有用戶反饋軟件很慢,本身溝通才發現對方不在大陸,在臺灣,在馬來西亞都有,因此就設計了這個調度器,讓臺灣,馬來西亞等地用戶就近接入,當時開通了兩個節點,分別是香港節點和美國節點,根據客戶端來源ip選最近節點,很是完美的解決了海外用戶的問題。github
可是,凡事都有一個可是,鏈接到這些海外服務器執行命令是一件很是痛苦的事,尤爲是美國節點,在高峯期執行一次命令好久都沒有響應,上傳下載文件更是龜速。因而就考慮寫個工具來優化這一過程,提高與海外服務器之間的鏈接質量。web
不少產品最初都是解決本身的一個小問題,而後慢慢擴大,不斷的解決更大的問題,從而造成一個解決方案,爲了解決上述問題,首先是從github上找到一個名爲kcptun的項目,最初一行代碼都不須要開發,只須要在我本地運行kcptun客戶端,再美國服務器運行kcptun服務端,當時就解決了咱們的問題。服務器
後續發現,咱們能夠作大一點,讓別人也能用,因此咱們就開發了一個客戶端和一個服務端,客戶端專門給用戶使用,服務端只負責根據客戶端提供的基本信息來進行tcp代理。網絡
後續發現,咱們還能夠作再大一點,中國市場這麼大,確定也有海外用戶但願拓寬線路,打入中國市場,那麼他們也有這類問題須要解決,那就讓海外用戶也能使用。併發
後續發現,kcptun的線路是配死的,咱們能不能改造如下,造成一個簡單的相似路由的功能,以及讓調度器調度,這樣客戶端就不用配置kcptun客戶端ip了,而後對kcptun進行了一輪改造。ssh
後續發現,可能不單單侷限在ssh方面,咱們能夠嘗試在網站方面靠攏,用戶配置了網站加速以後,國內的用戶會走到咱們的動態加速網絡,如今正在作這個事,相信不久的未來就會面世。tcp
最終咱們ssh加速的總體結構以下圖所示:工具
現已將軟件發佈,目前註冊用戶便可無償使用,固然帶寬確定是多用戶共享的。測試
下圖是咱們測試的經過scp從美國aws下載文件到本地的效果,沒有加速,速度肉眼可見的慢,經過加速以後,傳輸速度是原來的十倍不止。
正如前面所述,notrssh現已開放測試,註冊了notr的用戶便可無償使用notrssh以及notr內網穿透(五天試用),未來會開通付費功能,提供更穩定的帶寬以及服務。而且會嘗試在web應用加速,物聯網設備管理等領域提供更好的產品。