linux架设frp服务

frp(fast reverse proxy)是一个C/S架构的开源服务,可以用来内网穿透远程调试,下面介绍如何架设

开源项目地址:GitHub - fatedier/frp: A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.

release下载地址:Releases · fatedier/frp · GitHub

架设frp server

1.下载&解压

frp server需要架设在带有公网IP的服务器上,这里我选择假设在azure的VM上(最便宜的VM不到20元/月)

首先下载对应设备的版本解压(当然你也可以下载源码再编译,我这里只是将frp当作一个工具在用,就图方便下载了编译好的)

 1 root@moxa-ThinkPad-X240:/home/moxa/code/tools/frp# wget https://github.com/fatedier/frp/releases/download/v0.44.0/frp_0.44.0_linux_amd64.tar.gz
 2 --2022-09-08 12:17:56--  https://github.com/fatedier/frp/releases/download/v0.44.0/frp_0.44.0_linux_amd64.tar.gz
 3 Resolving github.com (github.com)... 20.205.243.166
 4 Connecting to github.com (github.com)|20.205.243.166|:443... connected.
 5 HTTP request sent, awaiting response... 302 Found
 6 Location: https://objects.githubusercontent.com/github-production-release-asset-2e65be/48378947/28cb7012-5ea7-4347-971b-3e49bd5da68d?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20220908%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220908T041719Z&X-Amz-Expires=300&X-Amz-Signature=52c245238c89a90842cd5ca34f7a963149b842740b9949b5e25811a3e4f82b88&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=48378947&response-content-disposition=attachment%3B%20filename%3Dfrp_0.44.0_linux_amd64.tar.gz&response-content-type=application%2Foctet-stream [following]
 7 --2022-09-08 12:17:56--  https://objects.githubusercontent.com/github-production-release-asset-2e65be/48378947/28cb7012-5ea7-4347-971b-3e49bd5da68d?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20220908%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220908T041719Z&X-Amz-Expires=300&X-Amz-Signature=52c245238c89a90842cd5ca34f7a963149b842740b9949b5e25811a3e4f82b88&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=48378947&response-content-disposition=attachment%3B%20filename%3Dfrp_0.44.0_linux_amd64.tar.gz&response-content-type=application%2Foctet-stream
 8 Resolving objects.githubusercontent.com (objects.githubusercontent.com)... 185.199.109.133, 185.199.108.133, 185.199.111.133, ...
 9 Connecting to objects.githubusercontent.com (objects.githubusercontent.com)|185.199.109.133|:443... connected.
10 HTTP request sent, awaiting response... 200 OK
11 Length: 9620309 (9.2M) [application/octet-stream]
12 Saving to: ‘frp_0.44.0_linux_amd64.tar.gz’
13 
14 frp_0.44.0_linux_amd64.tar.gz        100%[======================================================================>]   9.17M  9.80MB/s    in 0.9s
15 
16 2022-09-08 12:17:57 (9.80 MB/s) - ‘frp_0.44.0_linux_amd64.tar.gz’ saved [9620309/9620309]
17 
18 root@moxa-ThinkPad-X240:/home/moxa/code/tools/frp# tar -zxvf frp_0.44.0_linux_amd64.tar.gz
19 frp_0.44.0_linux_amd64/
20 frp_0.44.0_linux_amd64/frpc.ini
21 frp_0.44.0_linux_amd64/LICENSE
22 frp_0.44.0_linux_amd64/frpc
23 frp_0.44.0_linux_amd64/frpc_full.ini
24 frp_0.44.0_linux_amd64/frps.ini
25 frp_0.44.0_linux_amd64/frps
26 frp_0.44.0_linux_amd64/frps_full.ini
27 root@moxa-ThinkPad-X240:/home/moxa/code/tools/frp# ls -l
28 total 9400
29 drwxr-xr-x 2 moxatest docker    4096 7月  11 00:19 frp_0.44.0_linux_amd64
30 -rw-r--r-- 1 root     root   9620309 7月  11 00:20 frp_0.44.0_linux_amd64.tar.gz
31 root@moxa-ThinkPad-X240:/home/moxa/code/tools/frp# cd frp_0.44.0_linux_amd64
32 root@moxa-ThinkPad-X240:/home/moxa/code/tools/frp/frp_0.44.0_linux_amd64# ls -l
33 total 24488
34 -rwxr-xr-x 1 moxatest docker 10997760 7月  11 00:15 frpc
35 -rw-r--r-- 1 moxatest docker    10934 7月  11 00:19 frpc_full.ini
36 -rw-r--r-- 1 moxatest docker      126 7月  11 00:19 frpc.ini
37 -rwxr-xr-x 1 moxatest docker 14036992 7月  11 00:15 frps
38 -rw-r--r-- 1 moxatest docker     5686 7月  11 00:19 frps_full.ini
39 -rw-r--r-- 1 moxatest docker       26 7月  11 00:19 frps.ini
40 -rw-r--r-- 1 moxatest docker    11358 7月  11 00:19 LICENSE

line1: 下载frp

line18:解压下载的frp

line32-40:frps为server软件,frps.ini为server软件对应的配置文件

2.修改配置文件frps.ini

1 [common]
2 bind_port = 7000

line2: bind_port表示服务器将监听端口号7000,供client链接,这个端口号可以按照需求自行修改

3.启动frp server程序

1 ./frps -c ./frps.ini > ./frps.log &

在frps应用程序所在的文件夹下执行此命令,&表示后台运行

你也可以参照我另一篇博客,将ftps用systemd管理起来,做到开启自启动linux开机自启动frp - 王东力 - 博客园 (cnblogs.com)

 

架设frp client 

1.下载&解压

跟架设frp server一样,ftp client部署在被控设备上(通常是你的编译服务器,或者调试设备),将frp下载到被控设备上解压

2.修改配置文件frpc.ini

1 [common]
2 server_addr = 0.0.0.0
3 server_port = 7000
4 
5 [ssh]
6 type = tcp
7 local_ip = 127.0.0.1
8 local_port = 22
9 remote_port = 8822

 

line2:server_addr对应的是你服务器的公网IP

line3:server_port对应的服务器的端口号,网络编程中TCP端口号

line5:如果部署了有多个frp client,建议中括号中修改为唯一的命名,避免冲突报错[W] [control.go:179] [e7493b2e19556d78] [ssh] start error: proxy name [ssh] is already in use

line7:local_ip即本地IP地址就好,不用修改

line8:local_port这里需要ssh,所以设置为22

line9:remote_port表示frp server将监听这个端口号,一旦发现有链接请求,就映射到被控设备的ssh端口

3.启动frp client程序

1 ./frpc -c ./frpc.ini > ./frpc.log &

 

上图就是大概架构图,假如我想在PC上远程ssh到frp client B我只需要在PC上执行以下命令:

ssh -p 8822 linux@159.127.127.41

其中linux为client B的用户名

 

posted @ 2022-09-08 13:43  王东力  阅读(724)  评论(0)    收藏  举报