linux架设frp服务
frp(fast reverse proxy)是一个C/S架构的开源服务,可以用来内网穿透远程调试,下面介绍如何架设
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的用户名
浙公网安备 33010602011771号