最近在折騰過程中,使用到了 frp 這款軟體,碰巧作者在幾天前更新的v0.34.1
版本只發布了容器版本,並未像之前一樣發布多種編譯版本。
距離上一次寫 frp 相關的內容,已經過去了兩年。本文就基於官方容器版本,介紹該軟體的簡單使用方法吧。
首先在服務端找乙個合適的目錄,建立frps.ini配置檔案,考慮到後續的便捷使用,這裡我們使用環境變數來對配置進行抽象。
[common]
bind_port = }
token = }
dashboard_addr = 0.0.0.0
dashboard_port = }
dashboard_user = }
dashboard_pwd = }
接著,就可以在docker-compose.yml
中使用環境變數來對程式的服務端進行「動態」配置了:
version: "3.7"
services:
frps:
restart: always
container_name: frps
image: fatedier/frps:v0.34.1
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
ports:
- 9870:9870
- 7890:7890
- yourport:yourport
environment:
- frp_server_port=9870
- frp_server_token=cmw9vicpy1fz
- frp_admin_port=7890
- frp_admin_user=soulteary
- frp_admin_pass=soulteary
networks:
- frps
logging:
driver: "json-file"
options:
max-size: "1m"
# docker network create frps
networks:
frps:
external: true
上面配置中需要注意的是,ports
欄位中,目前只宣告了frp_server_port
服務端通訊介面和frp_admin_port
服務端管理介面,所以我們需要再根據自己的情況新增乙個/一些應用介面。
當然,更好的方案是搭配 traefik 使用服務發現來對外提供服務。後面有機會,我再行文詳述。
在服務端使用docker-compose up -d
啟動服務,如果順利的話,將看到類似下面的日誌:
frps | 2020/10/04 19:52:27 [i] [service.go:190] frps tcp listen on 0.0.0.0:9870
frps | 2020/10/04 19:52:27 [i] [service.go:289] dashboard listen on 0.0.0.0:9870
frps | 2020/10/04 19:52:27 [i] [root.go:212] start frps success
接著我們來配置客戶端。
同服務端一樣,我們先確定客戶端配置frpc.ini的「架子」:
[common]
server_addr = }
server_port = }
token = }
type = tcp
接著是完成客戶端的docker-compose.yml
配置檔案:
version: "3.7"
services:
frpc:
restart: always
image: fatedier/frpc:v0.34.1
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
environment:
- frp_server_addr=123.456.789.012
- frp_server_port=9870
- frp_server_token=cmw9vicpy1fz
networks:
- frpc
logging:
driver: "json-file"
options:
max-size: "1m"
# docker network create frpc
networks:
frpc:
external: true
在客戶端同樣使用docker-compose up -d
啟動服務,然後可以看到客戶端的執行日誌:
frpc | 2020/10/04 20:42:56 [i] [service.go:288] [62e9e2de742523fe] login to server success, get run id [62e9e2de742523fe], server udp port [0]
服務端此時也會多一條連線日誌:
至此,frp 在容器內的使用就全部完畢了,隨後就由你自由發揮啦。
軟體的發布頁面中,作者提到了 「official docker image support on dockerhub and github registry.」
查閱 dockerhub 官方頁面,可以看到下面兩個映象倉庫中有兩個不同的推送記錄,不過目前使用人數不多,或許是因為作者尚未給出明確的文件示例吧(開源倉庫/容器倉庫):
不過在短暫使用幾天後發現,當前版本不論是映象尺寸還是執行效能都還不錯,而且相比較之前的版本,在容器中使用更加方便了,希望後續作者有時間能夠完善文件吧。
frp 是一款優秀的軟體,隨著越來越多的廉價公有雲的面世,使用這款軟體搭配家用伺服器使用,可以大幅降低除錯開發成本、以及簡化一些臨時場景下的複雜組網,值得一試。
最後,希望本文能對你想在容器中玩 frp 的你。
–eof
我現在有乙個小小的折騰群,裡面聚集了一些喜歡折騰的小夥伴。
在不發廣告的情況下,我們在裡面會一起聊聊軟體、homelab、程式設計上的一些問題,也會在群裡不定期的分享一些技術沙龍的資料。
關於折騰群入群的那些事
frp使用記錄
官方介紹 frp 是乙個可用於內網穿透的高效能的反向 應用,支援 tcp,udp 協議,為 http 和 https 應用協議提供了額外的能力,且嘗試性支援了點對點穿透。特點 全平台 簡單實用 測試環境 window10 服務端配置檔案 common bind port 7000 auto toke...
frp簡單使用
跨平台,根據自己情況選擇使用 服務端 客戶端 服務端連線到vps上,後台啟動服務端 nohup frps c frps.int jobs l cat frps.log 客戶端 將frpc.exe與frpc.ini傳到目標機的同一目錄下,直接執行 frpc.exe c frpc.int當frp客戶端啟...
oracle容器化docker解決方案
docker提供了輕量級的虛擬化,它幾乎沒有任何額外開銷。提供了乙個從開發到上線均一致的環境。開發效率 一是我們想讓開發環境盡量貼近生產環境 二是我們想快速搭建開發環境 基於docker研發小組 qq群 108636195 概要 1 只在資料庫初始化與資料庫遷移使用,普通迭代還是走提交增量指令碼 2...