天天看點

搭建屬于自己的FRP内網穿透

搭建屬于自己的FRP内網穿透

前言

  内網穿透對于多我們程式員來講,應該是不陌生的。在對接某些第三方平台的時候,比如說:微信支付,經常會涉及到回調,在開發的時候就需要使用内網穿透來進行本地調試。那麼今天給大家分享一下用 frp 搭建屬于自己的内網穿透,友善在我們日常的開發中進行調試。同時是 frp 是開源并且是免費的,隻需要一台雲伺服器即可搭建。

什麼是 frp?

  Frp 是一種快速反向代理,可幫助您将 NAT 或防火牆後面的本地伺服器公開到 Internet。 到目前為止,它支援 TCP 和 UDP 以及 HTTP 和 HTTPS 協定,在這些協定中,請求可以通過域名轉發到内部服務。

  frp 還具有 P2P 連接配接模式。

服務端安裝 frp

  

Frp Github 位址

下載下傳 frp

 以我自己的伺服器 Centos 為例下載下傳

frp_linux_amd64
wget https://github.com/fatedier/frp/releases/download/v0.31.1/frp_0.31.1_linux_amd64.tar.gz           

解壓

tar -zxvf frp_0.31.1_linux_amd64.tar.gz           

解壓後得到的檔案

[root@VM_10_197_centos frp_0.31.1_linux_amd64]
-rwxrwxr-x 1 1000 1000 10608640 1月   6 16:02 frpc
-rw-rw-r-- 1 1000 1000     7447 1月   6 16:04 frpc_full.ini
-rw-rw-r-- 1 1000 1000      126 1月   6 16:04 frpc.ini
-rwxrwxr-x 1 1000 1000 11333632 1月   6 16:02 frps
-rw-rw-r-- 1 1000 1000     2514 1月   6 16:04 frps_full.ini
-rw-rw-r-- 1 1000 1000       26 1月   6 16:04 frps.ini
-rw-rw-r-- 1 1000 1000    11358 1月   6 16:04 LICENSE
drwxrwxr-x 2 1000 1000     4096 1月   6 16:04 systemd           

删除無用檔案

rm -f frpc
rm -f frpc.ini
rm -f frpc_full.ini

rm -f systemd/frpc.service
rm -f systemd/[email protected]           

服務端配置

 修改 frps.ini 檔案,設定 http 通路端口為 8080

# frps.ini
[common]
bind_port = 7000 #服務啟動占用端口
vhost_http_port = 8080 #進行轉發端口           

啟動服務端

./frps -c ./frps.ini           

注冊系統服務

vim systemd/frps.service           

修改服務檔案

[Unit]
Description=Frp Server Service
After=network.target

[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
# 這裡需要根據frps的安裝路徑,進行更改
ExecStart=/home/frp/frps -c /home/frp/frps.ini

[Install]
WantedBy=multi-user.target           

複制檔案到系統

cp systemd/frps.service /etc/systemd/system/           

 注意:雲伺服器安全組以及防火牆需要開啟對應的端口

操作指令

# 啟動測試
systemctl start frps.service

# 檢視啟動狀态
systemctl status frps.service

# 停止
systemctl stop frps.service

# 開機自啟
systemctl enable frps.service           

用戶端安裝 frp(mac)

 下載下傳用戶端并解壓

frp_darwin_amd64

過程可以參考服務端安裝過程。

curl -O --insecure https://github.com/fatedier/frp/releases/download/v0.31.1/frp_0.31.1_darwin_amd64.tar.gz           

删除無用的檔案

rm -f frps
rm -f frps.ini
rm -f frps_full.ini

rm -f systemd/frps.service
rm -f systemd/[email protected]           

修改配置檔案

vim frpc.ini           
[common]
server_addr = xxx.xxx.xxx.xxx(伺服器公網ip)
server_port = 7000

[web]
type = http
# 本地web服務端口
local_port = 9090
custom_domains = www.xxxxxx.com(自定義域名)           

 注意:自定義域名需要解析到對應的伺服器 ip 否則無法正常使用

用戶端啟動

./frpc -c ./frpc.ini           

啟動成功資訊

2020/02/02 12:26:14 [I] [proxy_manager.go:144] [fd88aa5c4087afc9] proxy added: [web]
2020/02/02 12:26:14 [I] [control.go:164] [fd88aa5c4087afc9] [web] start proxy success           

通路本地服務

  看到啟動成功資訊,這裡就已經完成本地 web 服務進行内網穿透了。

我們可以在任意位置通路我們的本地 web 服務,通過通路

http://www.xxxxxx.com:8080

就可以達到通路

http://localhost:9090

的目的了。

增加安全配置

  為了安全起見我們可以在進行連接配接時設定 token,當用戶端和服務端 token 一緻時才可以成功建立連接配接,添加方式隻需要在服務端和用戶端[common]下添加 token 配置即可:

# 認證token
token = 12345678           

開啟 DashBorad

 開啟 dashboard 隻需要在服務端[common]添加以下配置即可,同時不要忘記對安全組開放端口。

dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin           

 通路位址:

http://serverIp:7500
搭建屬于自己的FRP内網穿透

結尾

  我是不一樣的科技宅,每天進步一點點,體驗不一樣的生活。我們下期見!

  如果覺得對你有幫助,可以多多評論,多多點贊哦,也可以到我的首頁看看,說不定有你喜歡的文章,也可以随手點個關注哦,謝謝。

繼續閱讀