frp分为了frps(服务端)和frpc(客户端),如果要将一个内网的ip暴露到一个公网上,可以将frps架设在公网服务器上(我这里采用的是腾讯云的服务器),然后在内网架设frpc,将frpc注册到公网的frps上,就可以通过对应映射的地址进行访问
从github上下载最新的frp(https://github.com/fatedier/frp) ,下载下来并解压,下载下来的frp会包含frps和frpc,不过只需要配置frps即可,解压出来的包含了frps_full.ini和frps.ini,前者是官方给出的配置模版,后者一般是自己写的配置文件,通常只需要配置几点即可
[common] # 配置对外暴露端口 bind_port = 7000 # 配置监听地址(没啥卵用) dashboard_addr = 0.0.0.0 # 配置后台界面端口号(也就是启动了frps,会有一个后台界面) dashboard_port = 7500 # 配置后台界面账号 dashboard_user = admin # 配置后台界面密码 dashboard_pwd = admin # 服务端校验token token = token
可以最简单的启动:cd解压frp的目录下,frps -c frps.ini
如果想将其注册成服务也可以,cd金systemd目录下
有frps@.service(这个也是模版),可以参考这个写,核心在于
[service] # 核心就是这个,其实也就是上面那个启动语句, ExecStart = /usr/bin/frps -c / usr/bin/frps.ini
然后将这个frps.service 复制到/usr/lib/systemd/system
$ cp frps.service /usr/lib/systemd/system
之后再执行系统级别启动命令即可
systemctl start frps
和上面的同理,修改frpc.ini配置文件即可
配置文件配置如下
[common] # 注册到哪个frps服务器上 server_addr = xxx.xxx.xxx.xxx # 注册到frps的端口 server_port = 7000 # 校验的token token = token [这个渠道的名字,随便写] # 传输方式 可以是tcp也是http type = tcp # 这个是映射的ip,一般是本机,当然也可以是同一个内网的其他地址 local_ip = 127.0.0.1 # 建立通道的端口 local_port = 8080 # 注册过去,渠道的端口,也就是frps地址:9999等于本机的8080 remote_port = 9999
然后启动也是和frps一样,想要简单启动或者注册到服务启动都可以