這裡寫自定義目錄标題
- gost端口轉發使用詳解
-
- 場 景:
- 目标
- 善功先利器
- 原理簡單說
- 具體流程
-
- 哆啦A夢變身代理
- 大雄連接配接水管至哆啦A夢身上,留下大雄龍頭
- 大雄龍頭安全性提高
- 靜香接回大雄龍頭
- 總結
- 尾聲
gost端口轉發使用詳解
場 景:
我們擁有幾台計算機,分别起名叫做哆啦A夢、大雄、靜香。起這樣的名字比ABC什麼的好多了,不那麼繞圈。
- 哆啦A夢 是擁有公網位址的伺服器,簡稱公網可通路或者公網可達,可以對外提供網站等功能。簡單說,這台計算機連通性非常好,畢竟是哆啦A夢呀!
- 大雄 可以上網,但是沒有公網位址,他可以通路哆啦A夢計算機,簡稱 僅可上公網。其實可以了解為一台非常普通的家用電腦環境,或者内網辦公環境。
- 靜香 可以上網,和大雄一樣的環境,沒有公網位址,簡稱 僅可上公網。
計算機名稱 | 特點 | 備注 | 需求 | 通路障礙 |
---|---|---|---|---|
哆啦A夢 | 公網可達 | 可對外提供一些服務,比如網站,資料庫等等 | 無法直接通路靜香和大雄 | |
大雄 | 僅可上公網 | 可以用浏覽器通路哆啦A夢的網站和資料庫 | 自己有個小網站,想給靜香看 | 無法直接通路靜香 |
靜香 | 僅可上公網 | 可以用浏覽器通路哆啦A夢的網站和資料庫 | 自己有個小網站,想給大雄看 | 無法直接通路大雄 |
一句話總結我們的場景:大雄和靜香隻能通路或者看到哆啦A夢,但是不能互相通路,苦命鴛鴦呀!
目标
讓大雄和靜香通過哆啦A夢這台計算機,實作苦命鴛鴦的直接通路,讓大雄可以看到靜香的小網站,靜香也可以通路大雄的小網站。
善功先利器
給三個人同時拷貝一份gost最新版,那到哪裡下載下傳呢?巧了,我這裡正好有位址 https://github.com/ginuerzh/gost/releases
綠色軟體,無需安裝,解壓就可以使用。真是居家旅行,殺人越貨,必備… 好像串節目了,繼續我們的機器貓。
原理簡單說
gost本身提供代理服務功能,同時也提供了端口轉發功能,我們就是利用他的這些功能把哆啦A夢變成公網代理伺服器,然後在這個基礎上,再把它更新成一個代理中轉站。這裡所說的更新,不是功能的更新,而是了解上的一種更新,是把我們看待事物的方式進行更新。哆啦A夢還是哆啦A夢,鴛鴦還是鴛鴦,隻是他們不苦命了而已。哈哈。
通俗的了解過程是這樣的:
- 我們把網站想象成水管,水龍頭等等類似的管狀的東西,通路網站就是去水管喝水的過程。但是想喝水必須能看到水龍頭,是以我們必須把水管或者水龍頭想辦法接到哆啦A夢身上,再從哆啦A夢身上接回到自己身上,這樣就能通路别人提供的水了。換言之,利用哆啦A夢的可通路性,中轉一下我們的水。
是以整個聯通過程如下:
- 1 大雄把自己的網站利用水管連接配接到哆啦A夢身上,并留下一個水龍頭,我們把它叫做大雄龍頭。
- 2 靜香把哆啦A夢身上的大雄龍頭想辦法連接配接回自己身上,也就是靜香身上,這樣她就能在家喝到大雄的水了,應該說通路大雄的網站。
- 3 靜香也仿照大雄的方式,留下靜香龍頭,然後大雄想發接回家,整個過程結束。
- 4 别忘了哆啦A夢也有網站,是以他身上還有自己的水龍頭,到此哆啦A夢應該有3個水龍頭在身上。
你可能會問,為啥還要把龍頭接回家,直接通路不就好了,反正已經在哆啦A夢身上了,或者說已經在公網了。
的确如此,道理上講可以這樣通路,但是不要忘記,大雄和靜香提供的網站可能僅僅希望他們互相通路,不想讓别人通路,并且通路時不需要特殊的過程(例如加密解密啥的)。是以我們這裡所說的接回家,其實就是讓最終的使用者簡單化,傻瓜化的通路網站。
具體流程
哆啦A夢變身代理
先上代碼,如下:
rem 在哆啦A夢上執行
rem gost -L socks5://:代理口
rem 例如代理口為1080時,執行代碼如下
gost -L socks5://:1080
此時哆啦A夢開通1080端口,提供對外的代理服務功能,讓大雄和靜香可以連接配接,如果考慮安全性可以增加密碼,防止胖虎等人連接配接
rem 在哆啦A夢上執行代理功能,提供密碼防止他人使用
rem gost -L socks5://使用者名:密碼@ip位址:代理口
gost -L socks5://root:[email protected]:1080
大雄連接配接水管至哆啦A夢身上,留下大雄龍頭
代碼如下:
rem 在大雄上執行,他自己網站工作在80端口
rem 在哆啦A夢身上留下一個大雄龍頭,端口号9000
gost -L=rtcp://:9000/大雄計算機:80 -F=socks5://哆啦A夢:代理口
此時哆啦A夢會開放兩個端口出來。一個1080的代理端口,對外提供代理服務,之前已經說過;再一個就是9000号端口,他其實就是大雄龍頭,如果直接公網上去通路哆啦A夢:9000,可以直接看到大雄的網站。這樣誰都可以看到大雄的網站,非常不安全,這個我們等會說,先解釋一下指令行。
整個指令行分成三個部分,如下表:
指令行 | 功能 |
---|---|
gost | 主指令(注意:如下的指令都是在大雄計算機上執行) |
-L=rtcp://:9000/大雄計算機:80 | 将大雄計算機上的80号端口,也就是我自己的80端口,映射到哆啦A夢的9000号上去。L代表監聽的意思,rtcp是遠端端口映射的意思,這裡遠端就是哆啦A夢 |
-F=socks5://哆啦A夢:代理口 | 指明上一行的操作最終通過哆啦A夢的代理服務進行中轉 |
大雄龍頭安全性提高
如果說,我們把大雄龍頭映射到哆啦A夢9000上很危險,可是我們除了在哆啦A夢身上開龍頭,沒有别的法子,這該如何是好呢?
其實換個角度想,我們本質上是要把大雄的某種功能開放出去,隻不過借用一下哆啦A夢的公網可達的能力,是以我們完全可以不把網站映射到9000上呀,我們可以把大雄也變身成一個安全代理,讓大雄的代理工作在比如1080口上,然後我們把大雄代理映射給哆啦A夢的9000。代碼如下:
rem 在大雄上執行
rem 大雄開設加密代理
rem gost -L socks5://使用者名:密碼@ip位址:端口号 這裡使用鴛鴦作為使用者名
gost -L socks5://yuanyang:[email protected]:1080
rem 在哆啦A夢身上留下一個大雄龍頭,端口号9000,對應大雄的代理服務
gost -L=rtcp://:9000/大雄計算機:1080 -F=socks5://哆啦A夢:代理口
這時哆啦A夢的9000端口是什麼呢?其實他就是一個代理伺服器,隻不過你通過密碼賬号連接配接這個代理後,會直接連接配接到大雄的電腦上。
靜香接回大雄龍頭
通過上面的過程,其實大雄的工作已經完成了,這裡我們讓靜香接回大雄龍頭,看一下如何實作。代碼如下:
rem 在靜香上執行
rem 接回大雄龍頭,注意他在哆啦A夢的9000上
gost -L=tcp://:8080/大雄計算機:80 -F=socks5://yuanyang:[email protected]哆啦A夢:9000
這裡有個問題,就是大雄計算機:80這裡地方到底應該怎麼寫,畢竟哆啦A夢的位址我們知道,大雄計算機的ip位址誰知道呀,其實這裡直接寫127.0.0.1就可以了,為什麼呢?因為**-F=socks5://yuanyang:[email protected]哆啦A夢:9000**這一套參數已經告訴我們,我們最終連入的計算機就是大雄自己的計算機,是以此時在看L參數的時候,我們把主體或者視角應該放在大雄計算機的角度上,簡單說我們把-L=tcp://:8080/大雄計算機:80,這樣了解:
參數 | 了解 |
---|---|
-L=tcp://:8080 | 把後面參數中的位址和端口,映射或者挂接到靜香的電腦上8080端口 |
/ | 分隔符,忽略 |
大雄計算機:80 | 把代理伺服器,也就是大雄可以通路的某一個位址的某一端口映射給靜香,注意這裡是的位址是大雄計算機或者代理計算機他網絡中的某一個位址,不是靜香網絡中的某個位址,千萬不要混淆了,在寫這個參數的時候,視角必須站在代理伺服器所在的網絡内,而恰好大雄計算機就是代理計算機本身,是以可以直接寫成127.0.0.1:80 |
總結
最後我們用一張表,來整合一下所有的過程:
順序 | 計算機 | 執行語句 | 說明 |
---|---|---|---|
1 | 哆啦A夢 | gost -L socks5://:1080 | 開設一個代理 |
2.1 | 大雄 | gost -L socks5://yuanyang:[email protected]:1080 | 大雄開設一個加密代理 |
2.2 | 大雄 | gost -L=rtcp://:9000/大雄計算機:1080 -F=socks5://哆啦A夢:代理口 | 大雄把自己的代理挂到哆啦A夢的9000上,我們稱之為大雄龍頭,其實就是大雄的代理伺服器入口 |
3 | 靜香 | gost -L=tcp://:8080/127.0.0.1:80 -F=socks5://yuanyang:[email protected]哆啦A夢:9000 | 靜香連接配接大雄龍頭,或者說使用大雄代理,并将大雄的80端口并映射到自己的8080端口上,自此靜香隻要通路自己的8080端口,就能看大雄給他做的網站了 |
尾聲
最後,還有一個靜香龍頭的問題,沒有給出答案,你是不是正躍躍欲試的想幫助一下靜香呢?哈哈