frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
Frp仓库地址:github.com/fatedier/fr…
Frp官方文档:gofrp.org/docs/overvi…
1.前提
你需要一台可以通过公网访问的服务器和一台内网用的电脑。贴主这里是用的一台腾讯云云服务器(公网IP)和一台老电脑,两台电脑装的都是Ubuntu20.04系统。
2.frp下载
首先你需要进入frp的仓库下载安装包,也可以复制下载链接后在Linux下用命令下载安装包并解压。命令如下:
wegt https://github.com/fatedier/frp/releases/download/v0.45.0/frp_0.45.0_linux_amd64.tar.gz
tar -zxvf frp_0.45.0_linux_amd64.tar.gz
注意:根据你的操作系统选择对应的安装包,右键可复制下载链接
3.frp服务端配置
进入你的公网服务器,按如上步骤下载frp安装包并解压。
3.1 进入解压后的目录
cd frp_0.45.0_linux_amd64
3.2 修改frps.ini文件
建议根据自己的需要参考官方文档配置,以下是贴主的配置:
bind_port = 7000 # frp监听的默认端口号,可以修改,用来与客户端通信
dashboard_port = 10011 # frp管理后台端口
# 为 HTTP 类型代理监听的端口,这里需要注意有些端口号浏览器是禁止用的,例如:http://localhost:10080是访问不了的
vhost_http_port = 10012
vhost_https_port = 10443 # 为 HTTPS 类型代理监听的端口
token = frps123456 # 授权码,客户端需要填,建议设置复杂一点
dashboard_user = admin # frp管理后台用户名
dashboard_pwd = frps_78954 # frp管理后台密码
注意:云服务器记得在服务商的控制台开启对应的端口号,如果服务器开启了防火墙那也要放开对应端口号
3.3 设置frp服务开机自启
注意:# 后面的是注释,请复制 # 前的命令
sudo mkdir /etc/systemd/system # 创建对应目录
sudo vim /etc/systemd/system/frps.service # 创建对应文件并进入编辑
frpc.service文件配置如下:
[Unit]
Description = frps_service # 名字随意
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
User = root # 推荐用root用户
ExecStart = /usr/bin/frps -c /etc/frp/frps.ini # 填你自己对应文件的路径
[Install]
WantedBy=multi-user.target
设置开机自启动frp服务
sudo systemctl enable frps
3.4 frp服务常用命令
sudo systemctl start frps # 启动frp服务
sudo systemctl stop frps # 停止frp服务
sudo systemctl restart frps # 重启frp服务
sudo systemctl status frps # 查看frp服务状态
3.5 验证服务是否启动
在浏览器输入你的公网ip加上frps.ini文件里设置的dashboard_port端口号,访问管理端,需要输入你设置的账号密码(也是在frps.ini文件里设置的)。
4. frp客户端配置
在你的内网电脑上按照步骤2下载并解压安装包,客户端要和服务端版本一致。
4.1 进入解压后目录
cd frp_0.45.0_linux_amd64
4.2 修改frpc.ini文件
可根据自己的需要参考官方文档配置,以下是贴主的配置:
注意:如开启了防火墙,则需开放对应的端口号
[common]
server_addr = x.x.x.x # 你的公网IP地址
server_port = 7000 # 对应服务端设置的bind_port
token = frps123456 # 对应服务端设置的token
[web-http-st] # 取一个唯一的名字
type = http # 连接类型
local_ip = 127.0.0.1 # 需要穿透的内网ip,这里写本机IP就行了
local_port = 80 # 本地服务端口,你的web服务端口
remote_port = 10002 # 服务端绑定的端口,对应服务端的vhost_http_port
custom_domains = frp.test.com # 服务器绑定自定义域名,需要在你的域名服务商添加
自定义域名设置,如下图:
4.3 客户端服务自启配置
先创建目录,再创建文件。
sudo mkdir /etc/systemd/system # 创建对应目录
sudo vim /etc/systemd/system/frpc.service # 创建对应文件并进入编辑
贴主的frpc.service文件配置如下:
[Unit]
Description = frpc_service # 描述
After = network.target
[Service]
Type = simple
User = root
ExecStart = /usr/bin/frpc -c /etc/frp/frpc.ini # 填你对应文件的路径
[Install]
WantedBy=multi-user.target
开机自启frp服务
sudo systemctl enable frpc
4.4 frp服务常用命令
sudo systemctl start frpc # 启动frp服务
sudo systemctl stop frpc # 停止frp服务
sudo systemctl restart frpc # 重启frp服务
sudo systemctl status frpc # 查看frp服务状态
4.5 验证是否成功
浏览器直接输入http:// + 公网IP + : + 设置的端口号,如果设置了custom_domains则将公网IP替换为custom_domains。如下图:
注意:浏览器会屏蔽一些不安全的端口号,所以如果访问不成功,请先排查是否是浏览器的问题。
贴主开启了nginx服务,如果你没有开启,看到的页面可能不一样。