天天看點

使用 FRP 實作内網穿透

一般來說國内家用網絡沒有獨立IP,而且可能你還在幾層内網裡面,這個時候如果想在外面通路自己家裡搭建的網站服務,直接用 IP 通路顯然不太現實,這個時候就可以使用 FRP 或者 ngrok 這樣的工具來實作内網穿透。

這裡我選擇使用的是 FRP,NGROK 配置十分繁瑣,而 FRP 的話一般來說幾分鐘就可以搞定。(雖然我是搞了三個小時,原因是防火牆的問題...)

首先我們需要去下載下傳 FRP 的服務端與用戶端,這個作者已經打包好了,在這個位址就可以下載下傳:https://github.com/fatedier/frp/releases。基本囊括了主流的平台,我這裡采用的服務端是 CentOs 7.x 是以我下載下傳了 Linux x64 的版本,但是每個平台的使用方法都一樣,是以不會很麻煩。

具體的使用方法可以在 GITHUB 的 README 處看到。這裡我僅講述基本步驟,首先将下載下傳完成的服務端解壓,然後編輯

frps.ini

檔案,進行如下配置:

[common]
# 監聽的伺服器位址
bind_addr = 0.0.0.0
# 監聽的端口
bind_port = 7000
# HTTP 映射端口
vhost_http_port = 8080
# 儀表盤監聽位址
dashboard_addr = 0.0.0.0
# 儀表盤監聽端口
dashboard_port = 7500
# 儀表盤管理使用者
dashboard_user = admin
# 儀表盤管理使用者密碼
dashboard_pwd = admin
# FRP 連接配接密鑰
privilege_token = 12345678
# 授權過期時間
authentication_timeout = 900
           

之後運作服務端:

./frps -c /frps.ini
           

服務端運作成功之後,用戶端配置(frpc.ini)如下:

[common]
# 填寫你伺服器的 IP
server_addr = *.*.*.*
# 填寫伺服器監聽的端口
server_port = 7000
# 填寫連接配接密鑰
privilege_token = 12345678
[web]
# 協定類型
type = http
# 本地需要映射的服務的端口,這裡是我站點的端口
local_port = 5001
# 本地需要映射的服務IP
local_ip = 10.0.0.2
# 域名,這裡需要将這個域名解析至你的伺服器
custom_domains = www.yourname.com
           

之後我們使用

www.yourname.com:8080

就可以通路了。

當然我在這裡使用了反向代理,直接将 8080 映射到 80 端口,是以我直接可以通過 www.yourname.com 來通路我的站點。

要使用 FRP 實作内網穿透你需要準備一台伺服器/VPS,當然你也可以使用免費的FRP 伺服器來映射。

這裡列出這些免費的 FRP 伺服器:

  • http://www.chuantou.org
  • https://diannaobos.com/frp
  • http://freenat.win
  • https://www.nat.ee
  • http://freefrp.cn

    這裡以 NAT.EE 為例,你隻需要将 frpc.ini 更改為如下配置,直接運作即可:

[common]
server_addr = nat.ee
server_port = 7000
privilege_token = www.nat.ee
user = 自定義使用者名稱
[自定義服務名稱]
type = http
local_port = 80
local_ip = 127.0.0.1
custom_domains = 自定義域.nat.ee
           

繼續閱讀