目的:
frp内网穿透可以用来通过外网来访问本地的服务,比如家里有一台电脑,里面有大容量的机械硬盘可以存很多东西,制作自己的网盘,毕竟云服务器太贵了容量有限, 或者电脑里开启了javaweb服务或其它服务, 可以通过公网来访问。
前提:
1、有一台公网ip的服务器,比如阿里云、腾讯云,公司的静态ip服务器也行,用来提供外网ip地址,下面简称服务端;
2、随便一台电脑,需要通过外网来访问其资源,下面简称客户端。
安装:
服务端和客户端都是在frp官网下载压缩包,解压,然后修改配置文件即可,Linux和windows系统配置方式都差不多。
这里以v0.32.0版为例,文件解压在了 /usr/local/web/frp/ 目录下
注意服务端要用的是frps.ini文件,客户端是frpc.ini
服务端配置:
编辑frps.ini文件 ,内容如下:
[common]
#服务端可固定这样写,以免报错
bind_addr = 0.0.0.0
#通讯端口,用于和客户端内网穿透传输数据的端口,可自定义
bind_port = 7000
#web管理端口,后面开启服务后可通过 云服务ip:7500 来访问
dashboard_port = 7500
#账号,建议修改,可自定义
dashboard_user = admin
#密码,可自定义
dashboard_pwd = admin
#http监听端口,注意可能和服务器上其他服务用的端口冲突,比如centos有些默认有Apache,可自定义
vhost_http_port = 8080
#https监听端口,可自定义
vhost_https_port = 4433
#客户端要与此一致,建议修改,可自定义
auth_token = 123456
客户端配置:
[common]
#frps服务端的地址,域名(例如:lzzzz.com)和ip地址(例如10.10.10.10)都可以
server_addr = x.x.x.x
#frps服务端通讯端口,客户端连接到服务端内网穿透传输数据的端口
server_port = 7000
#与服务端的auth_token保持一致
auth_token = 123456
[ssh]
type = tcp
local_ip = 127.0.0.1
#本地向frps服务端开放的端口
local_port = 22
#服务端端口,用来访问此客户端
remote_port = 6000
#将 frpc 与 frps 之间的通信内容加密传输
use_encryption = true
#公网访问内部web服务器以http方式
[web01]
type = http
#内网web服务的端口号,可自定义
local_port = 8080
#将 frpc 与 frps 之间的通信内容加密传输
use_encryption = true
#所绑定的公网服务器域名,一级、二级域名、ip都可以,注意访问服务端时也要对应访问域名或ip
#注意:此处不能有下划线,不能写成 web_01.lzzzzz.com
custom_domains = web01.lzzzzz.com
[web02]
type = https
#内网web服务的端口号,可自定义
local_port = 8888
#将 frpc 与 frps 之间的通信内容加密传输
use_encryption = true
#所绑定的公网服务器域名,一级、二级域名、ip都可以,注意访问服务端时也要对应访问域名或ip
custom_domains = web02.lzzzzz.com
设置开机启动:
服务端和客户端都是创建这个开机自启文件:
cd ../../etc/systemd/system
vi frp.service
服务端文件内容:
[Unit]
Description=frps
After=network.target
[Service]
ExecStart=/usr/local/web/frp/frp_0.32.0_linux_amd64/frps -c /usr/local/web/frp/frp_0.32.0_linux_amd64/frps.ini
[Install]
WantedBy=multi-user.target
客户端文件内容:
[Unit]
Description=frpc
After=network.target
[Service]
ExecStart=/usr/local/web/frp/frp_0.32.0_linux_amd64/frpc -c /usr/local/web/frp/frp_0.32.0_linux_amd64/frpc.ini
[Install]
WantedBy=multi-user.target
设置开机自启:
systemctl enable frp
启动frp:
systemctl start frp
查询当前frp的状态:
systemctl status frp
重启frp:
systemctl restart frp
关闭frp:
systemctl stop frp
关闭开机自启:
systemctl disable frp