1.为什么需要内网穿透功能
为了方便访问到自己所需的内容而已
2.frp是什么
frp就是一个反向代理软件,它体积轻量但功能很强大,可以使处于内网或防火墙后的设备对外界提供服务,它支持HTTP、TCP、UDP等众多协议。简单说就是要透出去。
3.准备工作
搭建一个完整的frp服务链,我们需要
- VPS一台(也可以是具有公网IP的实体机)
- 访问目标设备(就是你最终要访问的设备)
- Linux基础(会用几个简单命令即可)(也可以选择windows系统的服务器,会更简单)
- 域名( 要不要无所谓 )
- 下载地址 github 截止到文稿最新版V0.32.0 这个速度我都想把电脑扔了。。。 方便下载这里直接提供最新版的链接 linux32位 linux64位 windows32位 windows64位 蓝奏云 密码:7ol2 (本文用的是 frp_0.31.2_linux_amd64 请注意替换相关文件名)
4. 服务端安装启动
# 下载frp可执行包
wget https://github.com/fatedier/frp/releases/download/v0.31.2/frp_0.31.2_linux_arm64.tar.gz
# 解压
tar zxf frp_0.31.2_linux_arm64.tar.gz
# 进入文件
cd frp_0.31.2_linux_arm64/
# 修改配置 自己爽哪个用哪个编辑器 我一般用nano 主要是方便
nano frps.ini #注意修改的是frps.ini 也就是server端的 别傻乎乎的改错了
# 内容如下:
[common]
# tunnel port 通信管道 必须有
bind_port = 7000
# http和https 这里其实可以不设置
vhost_http_port = 80
vhost_https_port = 443
# 连接认证token 可以不设置直接注释
token = 123456
# 子域名 可以不用设置
# subdomain_host = frp.kioye.cn
# 自定义404 页面,要用绝对路径哦!#可以不设置
# custom_404_page = /root/frp_0.31.2_linux_arm64/404.html
#自定义客户端需要使用的服务器端口 allow_ports 代表可以使用所有协议
allow_ports = 22000-30000 #设置之后需要在服务器打开对应端口
# dashboard图形管理页面
dashboard_port = 81 #输入ip地址:81 即可看到frp运行情况
dashboard_user = admin #账号密码用于登陆 请自行修改
dashboard_pwd = admin
# ---设置完成----
# 启动
./frps -c frps.ini
5. 设置frps服务自启动
# 创建后台启动模版
nano /etc/systemd/system/frp.service
# 内容如下:
[Unit]
Description=frps
After=network.target
[Service]
ExecStart=/root/frp_0.31.2_linux_arm64/frps -c /root/frp_0.31.2_linux_arm64/frps.ini
[Install]
WantedBy=multi-user.target
# 启动测试
systemctl start frp.service
# 查看启动状态
systemctl status frp.service
# 开机自启
systemctl enable frp.service
#重新启动
systemctl restart frp.service
6.客户端设置 frpc.ini ( 不是服务器上)
[common]
server_addr = frp.XXX.XXX #frp服务端IP地址或域名
server_port = 7000 #frp服务端端口
token = 123456 #和服务端token一致
[http1] #客户端名称 一般用用途起名好辨认
type = tcp #类型 如果是网页就用tcp
local_ip = 127.0.0.1 #本地ip 127.0.0.1为本机IP
local_port = 20565 #本地端口
#custom_domains = www.XXX.XXX #ip或者域名 可以不填写
remote_port = 25000 #服务端 allow_ports 中的一个端口
# 访问地址 www.XXX.XXX:25000
[web1]
type = tcp
local_ip = 127.0.0.1
local_port = 21
# custom_domains = www.XXX.XXX
remote_port = 25001
# 访问地址 www.XXX.XXX:25000
[mstsc]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
# custom_domains = www.XXX.XXX
remote_port = 25002
#windows远程端口
7.客户端启动
windows启动命令
- 打开cmd
- cd 到frp客户端所在目录
frpc.exe -c frpc.ini (可以把此命令存为bat脚本拖到cmd命令行启动)
Mac启动
./frpc -c frpc.ini