Linux下配置frp实现内网穿透

Linux下配置frp实现内网穿透

准备工作

FRP(Fast Reverse Proxy)是一种高性能的反向代理工具,可用于内网穿透、安全访问和数据传输等场景。本文主要介绍通过frp实现内网穿透,使外部用户能够访问内网服务器。配置frp的基础要求包括:

  • 需要一台云服务主机/实体主机作为服务端,服务端需要有公网ip
  • 将被访问的内网服务器作为客户端
  • 客户端需要与一个能与服务端相互ping通的设备连接,例如与一台能访问公网的路由器相连

如果内网服务器完全处在vpn范围内(例如只能通过校园网连接),则服务端也需要配置相同的vpn,以保证两者相互连通

配置工作

  • step1:在服务端和客户端上,下载frp软件包并解压缩

方式一:如果服务器不能直接wget到github,可以先在github官网链接上,将所需版本下载到本地,然后通过scp等方法传输到服务端和客户端上。

方式二:如果可以直接访问github,则使用wget命令下载,例如wget https://github.91chi.fun//https://github.com//fatedier/frp/rleases/download/v0.48.0/frp_0.48.0_linux_amd64.tar.gz

对下载文件进行解压缩操作,例如tar -xzvf frp_0.48.0_linux_amd64.tar.gz

  • step2:配置服务端文件

进入解压缩后的目录,对frps.ini文件进行修改。主要修改内容可包括:绑定端口、控制台设置、token设置、超时设置等

例如,将frps.ini文件配置为:

[common]
bind_port = 6130 //设置绑定端口,用于让客户端绑定

dashboard_user = admin
dashboard_pwd  = pwdadmin //设置控制台的访问账号和口令
dashboard_port = 8000 //配置后,可用服务端ip:dashboard_port访问控制台

token = 123456 //用于客户端的认证

heartbeat_timeout = 30

开放端口:在配置frps.ini文件之后,要将涉及的相关端口开放,例如bind_port, dashboard_port等。如果服务端采用的是云主机,可通过配置安全组规则修改;如果不是,可以通过firewall-cmd命令查询和开启,例如查询指定端口6130是否开启:firewall-cmd --query-port=6130/tcp,例如开启6130端口:firewall-cmd --zone=public --add-port=6130/tcp --permanent,并firewall-cmd --reload

  • step3:配置客户端文件

进入客户端frp目录,对frpc.ini文件进行修改,主要修改内容包括:服务端ip和端口、token设置、ssh设置、超时设置等

例如,将frpc.ini文件配置为:

[common]
server_addr = x.x.x.x //服务端的公网ip
server_port = 6130 //与服务端的bind_port相同

token = 123456 //与服务端token对应

[ssh101] //可设置ssh名称
type = tcp
local_ip = 192.168.1.101 //给一个本地ip即可
local_port = 22 //本地端口
remote_port = 6101 //ssh时使用的端口

heartbeat_timeout = 30

同理,客户端的防火墙对应端口也需要开启

  • step4:运行服务

在服务端运行:nohup ./frps -c ./frps.ini &,将./frps -c ./frps.ini命令后台运行

在客户端运行:nohup ./frpc -c ./frpc.ini &

可以登录控制台(服务端ip:dashboard_port)查看当前连接情况,包括客户端数量、连接数量等

posted @ 2023-09-19 09:41  瑞图恩灵  阅读(1266)  评论(0编辑  收藏  举报