首先打廣告裹唆,內(nèi)網(wǎng)穿透Notr,網(wǎng)站部分功能仍在開發(fā)婴氮,如果您也有興趣參與Notr的開發(fā)斯棒,請給我留言。
在完成大部分gtun 的開發(fā)之后主经,已經(jīng)能夠解決將家里網(wǎng)絡(luò)與公司網(wǎng)絡(luò)組建成虛擬局域網(wǎng)荣暮,面臨一個問題,我需要在兩端同時gtun客戶端方能連接公司的網(wǎng)絡(luò)罩驻,于是就想到了內(nèi)網(wǎng)穿透穗酥,基于gtun可以非常方便的進(jìn)行內(nèi)網(wǎng)穿透。在gtun當(dāng)中也有部分內(nèi)網(wǎng)穿透的功能惠遏,但是還不夠砾跃,或者說我不認(rèn)為將內(nèi)網(wǎng)穿透加入gtun讓gtun變得龐大無比是一件正確之舉,于是我在gtun基礎(chǔ)之上構(gòu)建一個內(nèi)網(wǎng)穿透的項目节吮。gtun作為底層基礎(chǔ)設(shè)施抽高。
當(dāng)時思考了下,應(yīng)該具備以下功能:
首先透绩,地位應(yīng)該是一個產(chǎn)品而不是一個開源項目翘骂,所以給用戶使用的時候一定要考慮小白的情況,所以不需要眾多的配置帚豪,只需要讓用戶知道碳竟,我本地起了什么端口,我只要告訴你我起了什么端口志鞍,你幫我讓我能夠通過公網(wǎng)訪問就OK瞭亮,所以Notr的客戶端非常簡潔,沒有任何配置固棚,只需要指定本地端口即可
其次统翩,應(yīng)該支持多種協(xié)議,HTTP此洲,HTTPS厂汗,TCP,UDP
最后呜师,用戶最終拿到的應(yīng)該是域名而不是IP地址娶桦,如果是IP地址可能會經(jīng)常變動,但是域名不會
于是開始了Notr的思考與實現(xiàn)。最初版本Notr針對HTTP和HTTPS是需要指定端口號的衷畦,朋友反饋基本上兩個問題用得不舒服
端口號隨機(jī)的栗涂,而且每次都不一樣。產(chǎn)生這個的原因祈争,是自身程序是不關(guān)注應(yīng)用層協(xié)議的斤程,只關(guān)注TCP層,而且我會都會監(jiān)聽一個端口來服務(wù)這一代理協(xié)議
其次菩混,HTTPS安全連接的問題
于是用HTTP和HTTPS用Nginx反向代理代替忿墅,每次新生成一個Nginx配置文件,proxy_pass指定為用戶的虛擬ip地址與端口即可沮峡。
這種方式實現(xiàn)將會特別簡潔疚脐,而且會http可以使用默認(rèn)的80端口,https可以使用默認(rèn)的443端口邢疙,用戶不需要記住端口號棍弄,僅僅需要技術(shù)域名。
Notr的運(yùn)行截圖如圖所示:
對小白用戶非常得友好疟游。沒有任何配置照卦,目前缺陷是不支持windows,詳細(xì)文檔可以通過Notr使用手冊 獲取