Centos7 - frp內網穿透,訪問內網web服務/訪問內網websocket服務

1 frp

Github地址:https://github.com/fatedier/frp
Github發佈包地址:https://github.com/fatedier/frp/releases
官方教程:https://github.com/fatedier/frp/blob/master/README_zh.md
在這裏插入圖片描述右鍵該下載項獲取鏈接地址:
在這裏插入圖片描述

2 需求說明

如果我們在內網部署了一個網頁即時聊天程序,使用websocket保持長連接並即時通信,網頁http請求端口爲80,而websocket請求端口爲45635,該網頁聊天服務在內網機子上部署。
需求:希望使用frp進行內網穿透,可以訪問內網機子上的web服務打開聊天網頁,也可以使用websocket服務進行網頁即時聊天。

3 外網服務器frp服務端配置(安裝時最新版本0.32.1爲例)

3.1 下載frp

使用

mkdir frp

命令創建一個新的文件夾frp,然後在文件夾下使用命令:

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

下載frp。

3.2 解壓,並進入解壓文件夾

tar -zxvf frp_0.32.1_linux_amd64.tar.gz
cd frp_0.32.1_linux_amd64/

3.3 刪掉不必要的客戶端文件

rm -rf frpc
rm -rf frpc.ini

3.4 編輯frps.ini文件

vi frps.ini

打開該文件,並將該文件內容修改爲:

[common]
# 服務器端監聽客戶端連接請求的端口
bind_port = 7000
# 服務器端監聽http請求的端口
vhost_http_port = 80

保存退出。

3.5 防火牆開啓相關端口

開啓端口:
firewall-cmd --zone=public --add-port=7000/tcp --permanent
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=45635/tcp --permanent
重啓防火牆:systemctl restart firewalld.service

3.6 啓動服務的幾種方式

3.6.1 正常啓動

./frps -c ./frps.ini

3.6.2 使用nohup後臺掛起服務

nohup ./frps -c frps.ini > ./log.txt 2>&1 &

日誌輸出到log.txt

3.6.3 製作一鍵啓動sh腳本

3.6.3.1 啓動腳本start.sh

#! /bin/bash
nohup ./frps -c frps.ini > log.txt 2>&1 &
echo $! >./pid.txt

3.6.3.2 停止腳本stop.sh

#! /bin/bash
PID=$(cat ./pid.txt)
kill -9 $PID

3.6.3.4 實時日誌查看

tail -f ./log.txt

4 內網服務器frp客戶端配置(安裝時最新版本0.32.1爲例)

4.1 下載

使用

mkdir frp

命令創建一個新的文件夾frp,然後在文件夾下使用命令:

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

下載frp。

4.2 解壓,並進入解壓文件夾

tar -zxvf frp_0.32.1_linux_amd64.tar.gz
cd frp_0.32.1_linux_amd64/

4.3 刪掉不必要的客戶端文件

rm -rf frps
rm -rf frps.ini

4.4 編輯frpc.ini文件

vi frpc.ini

打開該文件,並將該文件內容修改爲:

[common]
server_addr = xx.xx.xx.xx(外網主機ip)
server_port = 7000

# 內網web服務,監聽端口爲80
[web]
type = http
local_port = 80
custom_domains = xx.xx.xx.xx(外網主機ip,和server_addr的相同,或者寫域名,但是要做dns解析)

# websocket服務,端口假設爲45635
[web01]
type = tcp
local_port = 45635
custom_domains = xx.xx.xx.xx(外網主機ip,和server_addr的相同,或者寫域名,但是要做dns解析)
remote_port = 45635

保存退出。

4.5 防火牆開啓相關端口

開啓端口:
firewall-cmd --zone=public --add-port=7000/tcp --permanent
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=45635/tcp --permanent
重啓防火牆:systemctl restart firewalld.service

4.6 啓動服務的幾種方式

4.6.1 正常啓動

./frpc -c ./frpc.ini

4.6.2 使用nohup後臺掛起服務

nohup ./frpc -c frpc.ini > ./log.txt 2>&1 &

日誌輸出到log.txt

4.6.3 製作一鍵啓動sh腳本

4.6.3.1 啓動腳本start.sh

#! /bin/bash
nohup ./frpc -c frpc.ini > log.txt 2>&1 &
echo $! >./pid.txt

4.6.3.2 停止腳本stop.sh

#! /bin/bash
PID=$(cat ./pid.txt)
kill -9 $PID

4.6.3.4 實時日誌查看

tail -f ./log.txt

5 訪問測試

分別開啓遠程主機frp服務,以及內網frp服務,保證相關端口已開啓。
frp內網穿透訪問內網web服務:xx.xx.xx.xx:80
frp內網穿透訪問內網websocket服務:xx.xx.xx.xx:45635

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章