實現個人服務器自由:內網穿透解決方案


前言

一直想搞個屬於自己的服務器,但是ecs小資的價格就足以讓我望而卻步了,所以就想着搞個內網穿透玩玩。最開始,我是打算等樹莓派拿回來再搞的,但是對於有趣的事情,我總是按耐不住內心的喜悅和即刻行動的沖動,所以就在最近開始忙碌的前些時候(大概上周六,一直拖到今天),我開始搞起了內網穿透,但由於近來一直太忙,也沒有時間更新內容,所以內容更新就被一拖又拖(想必到年底了各位小可愛應該也很忙),然后就一直拖到今天,因此今天我必須終結這塊的內容!

內網穿透

目前,內網穿透的解決方案比較豐富,今天我們來分享其中的兩種:NgrokFRP

Ngrok

ngrok 是一個反向代理,通過在公共的端點和本地運行的 Web 服務器之間建立一個安全的通道。ngrok 可捕獲和分析所有通道上的流量,便於后期分析和重放。

通過nogrok實現內網穿透也很簡單,而且網上也有很多ngrok免費服務器資源,這里我們以Sunny-Ngrok為例,演示下內網穿透的實現方式。

注冊賬戶

首先我們訪問Sunny-Ngrok的官方網址,點擊注冊:

https://www.ngrok.cc/

然后填寫相關注冊信息:

隨后就可以注冊完成。

隧道管理

登錄成功后,點擊隧道管理菜單,可以看到如下信息,當然剛注冊的賬戶開通隧道哪里的信息應該都是零:

之后點擊開通隧道,然后選擇最后一個Ngrok免費服務器,你就可以白嫖了。因為是白嫖,所以速度自然不會太快,可以看到,這里限速128k,速度自然不會太快,不過湊合能用

點擊確定添加之后,還需要進一步確認

完成上面的配置工作之后,我們點擊隧道管理,然后就可以看到我們的隧道信息,這里最核心的數據就是我們的隧道id,后面我們在進行內網穿透的時候要用到。

如果覺得隧道配置有問題,也可以點擊編輯進行修改:

這里的本地端口就是我們本地的服務地址,我的服務端口就是8889,本來到到這里就可以正常進行內網穿透了,但是由於拖得有點久了,服務商現在需要實名認證才可以使用隧道,所以需要換個服務商看下(好吧,找了半天,沒找到合適的 (-__-)。

如果你打算用這個服務商的Ngrok服務,完成如下配置之后只需要下載官方提供的客戶端軟件,然后運行,並輸入隧道id即可完成內網穿透。

FRP

frp 是一個高性能的反向代理應用,可以幫助您輕松地進行內網穿透,對外網提供服務,支持 tcp, http, https 等協議類型,並且 web 服務支持根據域名進行路由轉發。FRP也算是比較老牌的內網穿透工具,而且網上有很多豐富的示例,下面我們就來演示如何通過FRP實現內網穿透。

下載

第一步依然是下載工具包,由於frp是基於go實現的一款開源內網穿透工具,所以我們可以直接去github下載即可,另外各位小伙伴不要吝嗇自己的start,給大佬點個贊,讓這個項目更好地延續:

項目地址:

https://github.com/fatedier/frp

下載方式也很簡單,直接點擊右側Releses即可,可以看到目前最新版本是0.38.0

這里我直接選擇win版本,各位小伙伴根據自己需要選擇對應版本即可。

frp映射基本語法

首先解壓我們剛剛下載的軟件包,結構大致如下:

其中ini結尾的都是frp的配置文件,等下我們的內網穿透配置就通過配置frpc.ini來實現。我們先來看下frpc.ini,默認情況下它是這樣的:

其中common配置節點是不能刪除的,它下面配置的通用的配置,類似於頂級域名。server_addr就是我們要映射的服務器地址,可以是是具體的ip地址或者域名(服務提供商提供的frp服務器 IP 地址或者域名地址),server_port就是服務器穿透的端口,也就是服務提供商提供的 frp 服務端口號。下面還可以配置token等驗證信息,具體的可以去看下frp的官方文檔:

https://gofrp.org/docs/

底下的ssh配置節點就是我們可以修改和添加的映射節點了,type指定映射協議類別,支持的類別還挺豐富的,感興趣的小伙伴可以詳細研究下:

這里我就直接用tcp協議了,下面的local_ip表示要映射的內網地址,可以是本機地址,也可以是內網其他機器地址,我覺得應該也可以配置其他外網地址(那是不是太多此一舉了),local_port表示我們要映射的內網服務端口,remote_port就是外網的端口(服務提供商提供的端口)。

尋找frp服務商

由於沒有公網ip,另外還想白嫖,所以需要找到可用的frp服務器。下面我們以freefrp.net提供的frp服務器為例,演示下如何通過frp實現內網穿透。

網址如下:

https://freefrp.net/docs.html

網站首頁已經提供了我們需要的配置信息,而且不需要注冊哦,是不是很良心呢?

同時網站首頁給出了端口范圍:

拿到這些信息之后我們要修改下frpc.ini文件,我最終的修改結果如下:

需要注意的的是,這里的配置名必須唯一(也就是這里的yunzhongzhi_linux_ssh),不能和其他用戶的沖突,然后通過如下命令啟動frp內網穿透:

frpc -c ./frpc.ini

如果有如下錯誤提示可以換個服務器試下:

從這張圖中可以看到,最后提示我啟動代理成功(start proxy success),然后我們通過剛才配置的域名和端口訪問下:

這里我配置的是linuxssh服務,配置完成之后我們就可以在外網環境下訪問linux了,其他服務配置類似,不同的就只有地址和端口,我順手還測試了下網絡,延遲差不多有100毫秒,也算能夠接受。

之前有小伙伴私信問我是否可以修改samba服務的端口,其實如果通過內網穿透的方式,完全可以實現這個需求。

其他服務器:

原本到這里就結束了,但是我呢,是一個喜歡送佛送到西的小可愛,所以我還幫各位小可愛找到了一個速度更快的frp服務器,當然也是白嫖的:

點擊免費獲取token的鏈接,然后關注下博主的公眾號(我是我的哦),然后會自動收到token,建議想用的小可愛都關注下吧,畢竟拿人的手短。配置方法和上面一樣,網速確實要比上面演示的要快一點:

可以看到這里的網絡延遲只有30毫秒左右,比上面的快多了。需要注意的是,用這個服務器的話,端口范圍是5000-6000

網站地址如下:

http://freefrp.wlphp.com/#first

結語

內網穿透相比於雲服務器還是要便宜很多的,如果能搞到公網ip的小伙伴那就不要太爽了,完全不需要任何其他服務器,完全可以直接搭建自己的frp服務,甚至可以直接用nginx,我原本也是打算這么搞的,但是奈何移動沒有公網IP,而且就算有,可能也不好申請(讓我回頭再問問),所以暫時就放棄了。好了,關於內網穿透的內容我們就分享這么多吧,感興趣的小伙伴可以自己親自動手試下!

最后,再善意提醒下各位小伙伴,使用免費的frp存在安全風險,有條件的小伙伴還是通過正規的服務商購買服務比較好,免費的frp服務玩玩還可以,如果真正用來傳輸重要數據,出了信息泄露的問題就有點得不償失了!好了,各位小可愛,晚安吧!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM