內網穿透在家遠程連接公司電腦?我是被逼的 (baidu.com)
frp/README_zh.md at dev · fatedier/frp · GitHub
說在前面——————以下內容均建立在你有一台外網服務器的基礎上進行。阿里雲、騰訊雲什么的都可以。
本文講述:
1.在任何地方通過ssh連接公司或者家中的服務器
2.在任何地方通過遠程桌面連接公司或者家里的Windows電腦
前言
好久沒有與大家分享知識,內心十分過意不去,正好最近有用到frp,所以今天就來簡單的和大家說一下通過frp實現內網穿透。
一、為什么要在家遠程連接公司的電腦?
1.做我們這行,加班是難免的嘛。即使我們偶爾調休也難免有同事打電話咨詢你。可是有很多東西根本記不住,尤其像代碼這種東西。有時着急不得不回一趟公司,非常浪費時間。如果我們可以遠程連接豈不是更方便。
2.當然也未必是家里到公司,也可以是公司到家里、公司到學校、家到學校,可以穿透到一切你想穿透的地方。
3.這里我們說的是使用frp進行內網穿透,映射端口實現遠程連接。可能有人會問了,網絡上面有很多類似的現成軟件,為什么不直接使用?像TeamViews個人版是完全免費使用的,並不是因為他不好,只是應需定制性並不高,如果公司的網絡不穩定,會造成teamviews掉線,無法進行無人值守。
二、什么是frp?除了遠程桌面,frp還可以做什么?
1.frp可能有些伙伴了解,有些伙伴不了解。這里呢,簡單的介紹一下子。frp 是一個可用於內網穿透的高性能的反向代理應用,支持 tcp, udp, http, https 協議。作者fatedier,項目開源在github,大家自行搜索即可下載。
2.也就是說,我們能做的事情有很多,比如通過3389端口映射到外網,即可隨時隨地遠程桌面連接自己的電腦;也可以通過映射22端口實現ssh的穿透;可以通過80、8080等等端口映射穿透自己本機的web服務到公網。還有很多很多的功能我們就不做過多的贅述,作者也不是研究很深,在這里只是給大家實現一些常用的功能。
三、映射22端口實現內網穿透ssh連接公司服務器。
1.首先我們操作雲端的服務器,使用wget命令下載frp並解壓。
$ wget https://github.com/fatedier/frp/releases/download/v0.23.1/frp_0.23.1_linux_amd64.tar.gz$ tar -zxf frp_0.23.1_linux_amd64.tar.gz
2.進入解壓后的目錄並編輯frps.ini配置文件。

3.除非你想更改映射的端口,否則無需修改,直接執行如下命令:
$ ./frps -c frps.ini
可得如下結果:

4.上圖顯而易見可以看到是啟動成功了,但是我們不能關閉終端,否則會自動關閉。一般來說我們是需要后台一直運行着的,所以我們使用nohup命令讓其后台執行。
$ nohup ./frps -c frps.ini
5.再然后呢,就是在我們的雲服務器的安全規則中開放對應的端口,這里我就不做詳細的介紹了,大家自行開放端口即可。
6.接下來我們配置本地的機器與雲端服務器相關聯。同樣的我們需要先下載frp,步驟同第一步。
7.這次因為我們是客戶端,所以我們編輯frpc.ini這個配置文件。

途中的local_ip表示本地客戶端的IP,Local_port表示本地客戶端對應的端口,remote_port表示對應雲端服務器的端口。
8.所有remote_port對應的端口必須在雲端服務器中開放,否則無法進行訪問。
9.接下來我們啟動客戶端,我們依然使用后台運行來啟動。
$ nohup ./frpc -c frpc.ini
10.萬事具備,還欠一個ssh密鑰,我們需要將密鑰加入到列表中。這樣我們就可以使用ssh -p 6002 user@雲端IP遠程連接到我們內網的機器了。
四、映射3389端口實現內網穿透遠程桌面連接公司Windows桌面。
1.看了上面可能會有人說了,我不需要ssh鏈接服務器,我只是想遠程桌面連接我公司的電腦用來遠程調試bug(ps:我們程序員都是非常非常的敬業的,對於IT事業也是非常非常的熱愛的)。所以這一部分呢,我們來說一下如何通過frp映射3389實現遠程桌面。
2.遠端服務器我們無需更改,也不用去動,可以與很多客戶端連接也沒有問題。所以我們只需要在我們的Windows電腦中安裝frpc並啟動即可。
3.大家自行搜索frp下載,到其GitHub開源下載中心下載對應的Windows版本即可,解壓並修改frpc.ini。如圖:

4.因為軟件限制,我們無法直接運行exe文件啟動,我們需要使用dos命令來啟動:
$ cd 解壓路徑$ frpc.exe
5.每次啟動都要執行這兩個命令會非常的麻煩,所以我將其封裝成了一個bat批處理文件,每次啟動只需雙擊啟動批處理就可以。
。

6.當然還有一個問題,那就是我們同樣無法關閉dos命令框,如果關閉frp也同時被關閉了,所以我們需要同樣需要后台執行,所以我找到了一種辦法,可以使其后台運行。編寫一個vbs腳本。

7.我們只需執行該腳本即可實現后台執行bat批處理文件。但我們還需要手動去啟動他,相對不太方便,所以我們將其加入到開機啟動,這樣每次開機都會自動執行這個腳本以啟動frp,協助我們實現內網穿透。加入開機啟動的方法我就不細說了,大家自行搜索。
8.萬事具備我們可以通過Windows自帶的遠程桌面連接一下:

其實與內網的遠程桌面一般無二,僅僅是指定了端口。至於速度嘛,就跟你電腦以及你的服務器息息相關啦。
五、映射80端口實現內網穿透遠程訪問本地web項目。
1.聲明一點,並不僅僅是80端口,任意端口都可以映射本地的web項目,其實上面說了這么多,用法都是一樣的,這個呢我就不詳細的去說明了,同樣域名直接解析到外網服務器就可以,只需映射本地與雲端的端口即可實現穿透一切。
六、最后再說幾句。
1.好久沒有為大家帶來有趣、有用的知識了,在這里給大家賠個不是!!!
2.frp呢其實還有好多好多的用法,我也並沒有完全的去研究它,大家有空的話可以詳細的去研究一下,是一個非常的不錯的開源項目,相對於廣大的程序員們來說同時也是一個非常有用的工具。
3.最后呢,感謝大家的閱讀以及關注,希望日后可以為大家帶來更多的有用的知識。