Ubuntu20.04系统配置frp内网穿透记录

2,997 阅读4分钟

frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。

Frp仓库地址:github.com/fatedier/fr…
Frp官方文档:gofrp.org/docs/overvi…

1.前提

你需要一台可以通过公网访问的服务器和一台内网用的电脑。贴主这里是用的一台腾讯云云服务器(公网IP)和一台老电脑,两台电脑装的都是Ubuntu20.04系统。 image.png

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

image.png

注意:根据你的操作系统选择对应的安装包,右键可复制下载链接

image.png

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管理后台密码

注意:云服务器记得在服务商的控制台开启对应的端口号,如果服务器开启了防火墙那也要放开对应端口号

image.png

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文件里设置的)。 image.png

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 # 服务器绑定自定义域名,需要在你的域名服务商添加

自定义域名设置,如下图: image.png

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。如下图:

注意:浏览器会屏蔽一些不安全的端口号,所以如果访问不成功,请先排查是否是浏览器的问题。

image.png 贴主开启了nginx服务,如果你没有开启,看到的页面可能不一样。