![cover](https://img-blog.csdnimg.cn/fef379870f2f4a6f960bdc5395616b80.png)
frp内网穿透详细教程
frp内网穿透详细教程附图文说明
前言
frp内网穿透是一个比较方便,快捷的配置,使用也是比较人性化
下面简单介绍下实现过程,配置分服务端和本地端
一、阿里服务端配置
1.1 获取frp的安装包
获取安装包,
提取链接:下载frp_0.44.0_linux_amd64.tar.gz 包 到本地
链接: https://pan.baidu.com/s/1H_9Opdaji1ZzRxnO8YSIZw 提取码: 3n3k
1.2 解压frp安装包并配置frps.ini
在usr/local下创建frps的目录,上传安装包并解压
#创建frps目录
mkdir /usr/local/frps
切换到目录下
cd /usr/local/frps
#将frp的压缩包放到frps目录下
rz
#解压压缩包
tar -zxvf frp_0.44.0_linux_amd64.tar.gz
#修改解压后的目录名称为frps,方便使用
mv frp_0.44.0_linux_amd64 frps
#进入frps的配置文件
cd /frps
1.3配置frps.ini文件数据
编辑frps.ini 文件
vim frps.ini
添加如下数据
[common]
bind_addr = 0.0.0.0
bind_port = 7000
kcp_bind_port = 7000
vhost_https_port = 643
#设置frp服务的网页监控面板账号信息
dashboard_port = 6443
dashboard_user = gongji
dashboard_pwd = 123qwe...
#设置日志存放位置和清理日志时间
log_file = /usr/local/frps/frps/frps.log
log_level = info
log_max_days = 3
#设置服务端和客户端的唯一token
token = lsdfjiWEsdfl?/skd
#设置连接数
max_pool_count = 20
tcp_mux = true
下面是相关解释
bind_addr = 0.0.0.0
#一般填写服务器的内网IP,用于客户端程序的连接 。(0.0.0.0表示全部对外开放)
bind_port = 5443
#你希望此frp程序从哪个端口开放,用于客户端程序的连接
kcp_bind_port = 5443
#用于KCP协议UDP通讯端口,也可以和“bind_port”共用同一端口,如果没有设置,则kcp在frps中被禁用,可自定义。dashboard_port = 6443
#填写端口号,用于连接frp服务运行监控面板的端口
dashboard_user = admin
#监控面板的管理账号
dashboard_pwd = 123qwe…
#监控面板的管理密码vhost_http_port = 800
#指定端口为http网页协议,可自定义。
vhost_https_port = 4430
#指定端口为https网页协议,可自定义。log_file = ./frps.log
#日志保存位置
log_level = info
#日志记录类别,可选:trace, debug, info, warn, error
log_max_days = 3
#日志最长清除时间,一般3天token = dfdoshfjksHJ
#访问密钥,服务端和客户端一定要保持一致(否则会导致连接失败)
max_pool_count = 50
#最大连接数
tcp_mux = true
#如果使用tcp流复用,默认值为true。不开启则,false
保存退出
wq
后台启动
nohup ./frps -c ./frps.ini
查看frps.service 的状态
systemctl status frps.service
重启frps
systemctl restart frps
二、客户端的frpc配置
2.1 存放frps包并解压
创建存放frpc的目录
#创建frpc目录
mkdir /usr/local/frpc
切换到目录下
cd /usr/local/frpc
#将frp的压缩包放到frpc目录下
rz
#解压压缩包
tar -zxvf frp_0.44.0_linux_amd64.tar.gz
#修改解压后的目录名称为frpc,方便使用
mv frp_0.44.0_linux_amd64 frpc
编辑frpc.service 的配置文件
vi /etc/systemd/system/frpc.service
如果初始进入无数据就自行添加,数据如下
[Unit]
Description=frpc service
After=network.target syslog.target
Wants=network.target
[Service]
Type=simple
ExecStart=/usr/local/frpc/frpc/frpc -c /usr/local/frpc/frpc/frpc.ini
[Install]
WantedBy=multi-user.target
保存退出
wq
回到frpc的安装目录下继续操作
cd /usr/local/frpc/frpc
编辑frpc的配置文件(frpc.ini)
vim frpc.ini
编辑并添加配置文件
[common]
server_addr = 47.102.183.179 #这里设置你公网的ip
server_port = 7000 #服务端开放的端口
token = lsdfjiWEsdfl?/skd #服务端frps设置的token 这里一定要对应一致
[83-web_connect] # 设置穿透端口的名称,可自定义,不同端口不同名称不可重复
type = tcp #设置连接类型,有的是https
local_ip = 192.168.3.59 # 设置本地被穿透出去的ip
local_port = 5000 #设置本地需要被穿透的端口
remote_port = 12383 #设置映射到服务端的端口
[83-mysql_connect]
type = tcp
local_ip = 192.168.3.59
local_port = 3306
remote_port = 12380
下面是解释说明
[web] :表示名称,[ ]里面的名称必须唯一,比如这里写了[web],那么后面所有的,端口映射名称都不能填写[web]了,不单是本台虚拟机,其他虚拟机也不能写[web] 因为可能一台阿里服务器,可以映射多台虚拟机或者服务器;
Type:表示连接的类型,一般是tcp 连接
Local_ip:也就是本机的ip地址,可以用默认的127.0.0.1,也可以填写完整ip地址:192.168.3.199
Local_port: 本地开放的端口,如数据库就写3306 ,ssh连接就写22 ,等等…
Remote_port: 这个是本地端口映射到阿里云的端口,比如我要映射数据库端口local_port:3306 remote_port: 12380 那么就相当于 访问12380就是访问我们数据库;同时,remote_port 的端口也不能重复,必须唯一,在本机或其他虚拟机一样的;因为一台阿里服务器可能映射多台虚拟机或服务器;
保存退出
wq
启动frpc服务
systemctl start frpc.service
#查看状态
systemctl status frpc.service
三、阿里服务端映射本地端口
阿里服务器映射端口分两种情况,一种是阿里服务开启了系统的防火墙systemctl status firewalld
还有一种就是没有开启系统的防火墙,而是使用阿里服务的防护,下面介绍两种的映射方法
方式1防火墙映射端口
添加新增的本地映射到阿里的端口
firewall-cmd --permanent --add-port=12380/tcp
在阿里服务器新增开放端口,这个端口也就是你在客户端配置的remote_port 端口
客户端加一个端口,阿里服务器这边就需要新增一个开放端口;端口不能重复;
新增端口后需要重启防火墙
firewall-cmd --reload
查看阿里云已经开放的端口
firewall-cmd --zone=public --list-ports
防火墙的其他相关操作
firewall-cmd --list-ports 查看已打开的端口
firewall-cmd --list-all 查看已所有规则
firewall-cmd --query-port=8080/tcp 是否开启
firewall-cmd --permanent --add-port=8080/tcp 开启80端口
firewall-cmd --permanent --remove-port=8080/tcp 移除端口
添加端口后,必须用命令firewall-cmd --reload重新加载一遍才会生效
方式2 云服务器安全组开放端口
进入阿里云服务器官网,进入安全组进行添加
四、配置完成查看效果
先看本地的访问
下面看下通过公网ip映射的端口进行访问
五、其他,frp的监控平台查看
在frps服务的frps.ini 文件中我们配置了frp服务的监控面板,可以通过ip+端口在浏览器中打开查看
访问如下
查看frp面板监控面板
到此frp配置结束
5.1 frp配置失败的情况
配置失败的情况
1.客户端的frpc.service 的文件配置错误, 所有frps改frpc, 路径没匹配
2.客户端的frpc.service 服务没有运行;
3.映射的端口重复了,需排查阿里云开放的端口列表;
4.客户端在frpc.ini 中新的映射名称重复了, [ ] 里面的名字不能重复;
![Logo](https://devpress.csdnimg.cn/79de2bf0b7994defa4242ef90d5513fa.jpg)
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)