frp內網穿透(已驗證)

生活處處有BUG發表於2022-12-13

雲伺服器frp內網穿透教程

軟體原始碼在https://github.com/fatedier/f...上,根據系統型別,按需下載

教程術語描述

A 是有固定IP的雲伺服器(這裡以阿里雲伺服器為例)

B 是公司內網伺服器

C 是家裡windowns系統

配置伺服器A

步驟1:原始碼準備

wget https://github.com/fatedier/frp/releases/download/v0.45.0/frp_0.45.0_linux_amd64.tar.gz
tar -zxvf frp_0.45.0_linux_amd64.tar.gz
cd frp_0.45.0_linux_amd64/

步驟2:修改frps.ini

[common]
bind_port = 7000

步驟3:開放埠

  1. 開放伺服器防火牆

7000埠是供內網伺服器B來監聽

10000埠是供雲伺服器A轉發到內網伺服器B用的

apt install firewalld # 安裝防火牆
firewall-cmd --permanent --zone=public --add-port=7000/tcp
firewall-cmd --permanent --zone=public --add-port=10000/tcp
systemctl reload firewalld
  1. 阿里雲控制檯開放7000、10000埠

例項詳情》配置安全組規則》配置規則 (協議TCP)

步驟4:部署frp

./frps -c frps.ini

# 成功執行如下
2022/12/10 11:59:30 [I] [root.go:206] frps uses config file: frps.ini
2022/12/10 11:59:31 [I] [service.go:196] frps tcp listen on 0.0.0.0:7000
2022/12/10 11:59:31 [I] [root.go:215] frps started successfully

配置內網伺服器B

步驟1:原始碼準備

wget https://github.com/fatedier/frp/releases/download/v0.45.0/frp_0.45.0_linux_amd64.tar.gz
tar -zxvf frp_0.45.0_linux_amd64.tar.gz
cd frp_0.45.0_linux_amd64/

步驟2:修改frpc.ini

[common]
server_addr = 8.134.210.33 # 伺服器的公網IP
server_port = 7000

[ssh] #這個名字可以隨便改
type = tcp
local_ip = 127.0.0.1 #一般不修改
local_port = 22 #外界連線本機的哪個埠
remote_port = 10000 #外界可以透過哪個埠訪問進來

#外界透過  公網IP + remote_port  ---訪問--->  local_ip + local_port 
#如:訪問8.134.210.33:10000 實質訪問 127.0.0.1:22

步驟3:戶端部署frp

./frpc -c frpc.ini

# 成功執行如下
2022/12/10 12:09:51 [I] [service.go:357] [bdd6a6b31aa4727a] login to server success, get run id [bdd6a6b31aa4727a], server udp port [0]
2022/12/10 12:09:51 [I] [proxy_manager.go:142] [bdd6a6b31aa4727a] proxy added: [ssh]
2022/12/10 12:09:51 [I] [control.go:177] [bdd6a6b31aa4727a] [ssh] start proxy success

在家裡登入公司內網伺服器

透過公網IP+埠訪問公司內網的伺服器

ssh的IP是雲伺服器的公網IP

埠號是內網伺服器B的對外開放埠(雲伺服器也需要開放這個埠)

ssh xj@8.134.210.33:10000

附加操作

1、將伺服器端、客戶端程式放到後臺執行

伺服器端
nohup ./frps -c frps.ini >/dev/null 2>/dev/null &

客戶端
nohup ./frpc -c frpc.ini >/dev/null 2>/dev/null  &

2、將frp放至開機自啟動(Ubuntu20.04方案)

step1.建立rc-local.service檔案
sudo cp /lib/systemd/system/rc-local.service /etc/systemd/system

然後修改/etc/systemd/system/rc-local.service,在檔案最下方新增如下兩行

[Install]   
WantedBy=multi-user.target   
Alias=rc-local.service
step2:建立rc.local檔案

建立sudo vi /etc/rc.local ,裡邊寫自己想要執行的命令。例:

#!/bin/sh
echo "This is test(xj)" > /tmp/my.log

#自行修改為絕對路徑
nohup /root/frp/frpc -c /root/frp/frpc.ini &

/etc/rc.local加上可執行許可權

sudo chmod +x /etc/rc.local
step3.測試

啟動後可以發現:/tmp下已經有了my.log檔案,裡邊內容為:"This is test"。

systemctl命令

啟動服務

sudo systemctl start rc-local.service

檢視服務狀態

sudo systemctl status rc-local.service

好了,教程就到這裡了

相關文章