運維 內網穿透最佳實戰 基於frp

2021-09-11 16:45:10 字數 3474 閱讀 9556

序言: 幾年前寫了一篇全面的,但是涉及管制被刪,最近發現身邊不少朋友也在用這個(英雄所見略同),而且發現新版本的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因素方法是乙個構建雲原生應用程式的優質資源。這些最佳實踐的重要等級不一樣。例如,對於...