Linux Study Lab !

当前位置:   网站首页 >> Linux 应用实践

搭建frp内网穿透服务

本例为简易搭建教程,有大量的功能和命令行未使用到,需要了解详细的frp软件功能建议查看官方文档。

1、首先在一台有公网IP地址或内网能端口映射到公网的机器上设置服务端,下载frp程序,按照系统类型选择windows或者linux版本源码包

本服务端配置范例使用最新版本以及centos系统进行举例

cd /tmp
wget  
tar zxvf frp_0.37.1_linux_amd64.tar.gz 
mv frp_0.37.1_linux_amd64 frps
cd frps
vi frps.ini

编辑ini配置文件内容,本例提供一个配置文件

[common]
bind_addr = 0.0.0.0
bind_port = 7000
bind_udp_port = 7001

dashboard_addr = 0.0.0.0
dashboard_port = 7002
dashboard_user = admin
dashboard_pwd = admin

token = !23456

log_file = frps.log
log_level = info
log_max_days = 14

max_pool_count = 3
max_port_per_client = 0
authentication_timeout = 180

tcp_mux = true

本配置文件,将监听本机所有IP地址的7000-7002端口,并提供相应的服务,其中7000用于接收远端连入请求,7002用于打开管理控制面板。管理面板的用户名和密码在配置文件中指定,请自行修改。token的值为客户端连接到服务端时的握手认证依据,请确保配置客户端frpc时,该值和服务端配置的值一致。

接下来,运行fprs服务端程序并查看端口是否正常打开提供服务

nohup ./frps -c frps.ini &
netstat -lptn

查看是否已打开7000和7002的tcp端口,同时使用浏览器访问IP加7002端口打开控制面板验证服务是否正常开启


2、在需要暴露自身服务到网络的机器上配置frpc

本客户端配置使用windows作为范例,下载windows程序包,下载地址:https://github.com/fatedier/frp/releases/download/v0.37.1/frp_0.37.1_windows_amd64.zip

解压后将文件夹改名为frpc,并放磁盘根目录下,如E:\frpc

编辑frpc.ini文件,本例提供一个配置文件

[common]
server_addr = x.x.x.x
server_port = 7000
token = !23456

log_file = frpc.log
log_level = info
log_max_days = 14

admin_addr = y.y.y.y
admin_port = 7003
admin_user = admin
admin_pwd = admin

tcp_mux = true
user = test-client
protocol = tcp
dns_server = 114.114.114.114

[secret_rdp]
type = stcp
sk = 65432!
local_ip = 127.0.0.1
local_port = 3389

本配置文件,x.x.x.x地址为服务端的公网ip地址,y.y.y.y为运行此客户端的内网ip地址,本例打开了一个windows远程桌面服务,使用一个服务认证密钥65432!来单独认证,同时将本机的3389端口映射到外网63389作为访问端口。同时使用y.y.y.y加上7003端口可以打开客户端的管理控制面板,用户名和密码在配置文件中指定,请自行修改。

使用cmd命令行运行fprc程序或使用任务计划程序自动运行frpc


3、在需要访问内网穿透出来的服务的机器上配置frpc

本例为在第三台机器上访问上面穿透出来的windows远程桌面服务,本例使用windows作为范例,同样需要下载windows程序包并解压,但frpc.ini配置文件的内容需要修改

编辑frpc.ini配置文件,本例提供一个配置文件

[common] 
server_addr = x.x.x.x 
server_port = 7000 
token = !23456

log_file = frpc.log
log_level = info
log_max_days = 14

tcp_mux = true
user = test-client

[secret_rdp_visitor] 
type = stcp
role = visitor
server_name = secret_rdp 
sk = 65432! 

bind_addr = 127.0.0.1 
bind_port = 33890

使用cmd命令行运行fprc程序,然后打开windwos远程桌面,在地址中输入127.0.0.1:33890即可访问远端那台暴露3389服务的机器。


PS:官方文档

PS:本例因指定了服务认证密码,所以需要三台机器分别担任服务端,提供服务的内网客户端,访问暴露内网服务的客户端;实际上frp只需要一个服务端和一个客户端就可运行,具体请查阅官方文档。

Q&A:如何在windows中使用任务计划运行frps或frpc程序

A:打开任务计划程序,新建一个基本任务,取名frp;下一步选择当计算机启动时;下一步选择启动程序;下一步找到frpc或frps程序,并带上运行参数 -c 配置文件详细路径(举例:-c e:\frps\frpc.ini),保存该任务计划;双击任务新建的任务计划frp,常规-安全选项-更改用户或组,打开窗口找到本机的SYSTEM,指定SYSTEM用户运行本任务计划程序即可。

发表我的评论

Hi,您需要填写昵称和邮箱!

  • 必填项
  • 必填项