序言: 幾年前寫了一篇全面的,但是涉及管制被刪,最近發現身邊不少朋友也在用這個(英雄所見略同),而且發現新版本的frp可以用來實現負載均衡了(而且是可以跨機房的),感覺很讚,所以打算重新寫一篇關於它的文章,這篇文章只介紹frp這個工具的使用方法,不涉違法。什麼是內網穿透:如你在家裡的電腦的ip位址是
192.168.1.100
, 有這個ip你是無法在公司通過這個區域網ip訪問到家裡的電腦的,內網穿透的任務就是讓你可以在公司訪問到家裡的電腦。
frp 的工作原理:
3.1. 在公網伺服器上的伺服器執行 frp的服務端frps
, 這台公網伺服器的ip得是可以直接訪問的(假設這個ip是111.114.114.114
)。
3.2. 在內網電腦上執行frp的客戶端frpc
, 把內網的某ip( 假設這個ip是192.168.1.100
)的某埠映(假設 22)射到公網伺服器的某些埠上(假設10022)。
3.3. 那麼在非區域網訪問111.114.114.114:10022和你在區域網訪問192.168.1.100:80是等效的。
這一過程的服務端配置檔案frps.ini
[common]
# 配置服務端tcp服務埠
bind_port =
10000
# 配置服務端udp服務埠
bind_udp_port =
10001
# 配置服務端kcp服務埠
kcp_bind_port =
10002
# 虛擬站點服務,不配置他我為apache2 配置的多個v-host會指向同乙個v-host
# 服務密碼
token = sfmam23tmmmfeti4
# 日誌檔案
log_file =
./frps.log
# 日誌儲存天數
log_max_days =
7# 日誌輸出等級 trace, debug, info, warn, error
log_level = info
# 服務網頁視覺化面板配置
dashboard_addr =
0.0.0
.0dashboard_port =
10003
dashboard_user = admin
dashboard_pwd = admin
# 允許被用來做反向**的埠
allow_ports =
10000
-50000
# 連線池
max_pool_count =
15# 每個客戶端允許使用的埠數,0代表不限制
max_ports_per_client =
0
啟動服務端的方案,我們一般需其後台執行
5.1. mac/linux/unix(./frps -c frps.ini &)
或者nohup ./frps -c frps.ini &
5.2. mac/linux/unix 關閉ps -ef |grep frps |awk ''|xargs kill -9
(找到進行id,kill掉即可)
5.3. windows 後台執行需要寫個指令碼 start_frpc.bat
%1 mshta vbscript:createobject("wscript.shell").run("%~s0 ::",0,false)(window.close)&&exit
.\frps.exe -c frps.ini
客戶端配置frpc.ini
[common]
# 公網伺服器ip
server_addr =
111.114
.114
.114
# frps端配置的服務埠
server_port =
10001
# 服務密碼
token = sfmam23tmmmfeti4
# 日誌
log_file= log.txt
##### 下面是每個埠對映,[名稱]在整個系統中是不能重複的 ########################
# **1
[my_pc_80]
type
= tcp
local_ip =
127.0
.0.1
local_port =
80remote_port =
10080
# **二
[my_pc_vhost_frontend]
type
=tcp
local_ip = local.frontend.funshop.io
local_port=
80remote_port=
10081
# tcp一
[my_pc_ssh]
type
=tcp
local_ip =
192.168
.1.100
local_port=
22remote_port=
10022
啟動客戶端,和啟動服務端類似
6.1. mac/linux/unix(./frpc -c frpc.ini &)
或者nohup ./frpc -c frpc.ini &
6.2. mac/linux/unix 關閉ps -ef |grep frpc |awk ''|xargs kill -9
(找到進行id,kill掉即可)
6.3. 對於windows系統可以寫乙個.bat指令碼如下實現後台執行
%
1 mshta vbscript:createobject(
"wscript.shell"
).run(
"%~s0 ::",0
,false)
(window.close)
&&exit
.\frpc.exe -c frpc.ini
瀏覽器訪問111.114.114.114:10003
可以檢視連線情況。 基於frp內網穿透
客戶端在內網,外網訪問不到其web服務。現在需要使該內網客戶端的web服務能被外網訪問。frp github releases 準備服務端為公網ip,可以被外網訪問,且客戶端可以訪問到該服務端。配置檔案 配置檔案frps.ini common bind port 7000啟動nohup frps c...
容器運維最佳實踐
本文介紹了一組使容器更易於運維的最佳實踐。這些實踐涉及安全性 監控和日誌記錄等廣泛的主題,旨在使應用程式更容易在kubernetes engine 和一般的容器中執行。這裡討論的許多實踐都受到12因子方法的啟發 12因素方法是乙個構建雲原生應用程式的優質資源。這些最佳實踐的重要等級不一樣。例如,對於...
容器運維最佳實踐
本文介紹了一組使容器更易於運維的最佳實踐。這些實踐涉及安全性 監控和日誌記錄等廣泛的主題,旨在使應用程式更容易在kubernetes engine 和一般的容器中執行。這裡討論的許多實踐都受到12因子方法的啟發 12因素方法是乙個構建雲原生應用程式的優質資源。這些最佳實踐的重要等級不一樣。例如,對於...