frp v0.57内网穿透搭建和使用(详细教程)


frp v0.57内网穿透搭建和使用(详细教程)

frp是什么

frp(fast reverse proxy)是一款高性能的反向代理应用,专注于内网穿透。它支持多种协议,包括 TCP、UDP、KCP、HTTP、HTTPS 等,并且具备 P2P 通信功能。使用 frp,您可以安全、便捷地将内网服务暴露到公网,通过拥有公网 IP 的节点进行中转。

内网穿透使用场景

我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

  1. 远程桌面或者是访问内网服务;有时需要远程桌面连接公司自己的电脑处理问题或者自己家里连着宽带的电脑,没有 frp 以前只能找类似花生壳提供的解决方案。
  2. webhook 接收;接收类似 Github 或者第三方提供 Webhook 的场景。
  3. 反向代理;有些国外 vps 被 gfw 墙了不能 ssh 连接,也可以通过frp 进行访问。

工作原理

frp 主要由两个组件组成:客户端(frpc) 和 服务端(frps)。通常情况下,服务端部署在具有公网 IP 地址的机器上,而客户端部署在需要穿透的内网服务所在的机器上。

由于内网服务缺乏公网 IP 地址或者某些原因用户不能直接访问,用户通过访问服务端的 frps,frp 负责根据请求的端口或其他信息将请求路由到相应的内网机器,从而实现通信。实际流量会变成 client->frps->frpc
在这里插入图片描述

环境准备

我们需要有一台公网 ip 的服务器作为 frps 服务端,这里我使用自己购买的阿里云服务器,一台实现内网穿透的windows pc作为 frpc 客户端。下表是实验环境:
在这里插入图片描述
frps 和 frpc 服务配置完成后,用户可以使用frps_ip:60002 地址远程桌面连接到内网 win10 pc。

win10 pc 开启远程桌面和检查防火墙规则

右击我的电脑->属性->远程桌面->启用远程桌面
在这里插入图片描述
另外还需要检查 win10防火墙的入站规则有没远程桌面策略或者选择关闭防火墙,还可以在跟 win10 相同的内网其他机器测试网络连通性。
在这里插入图片描述

frps server 检查 selinux 和防火墙

frps server 如果是在公有云,还要在公有云上防火墙放行相关策略
*强调文本* _强调文本_
frps server上的centos 需要检查 selinux 和防火墙iptables 或者 firewalld

注:在国内公有云上如果使用域名,请确认域名有备案,要不然还是建议使用 ip 连接,要不然会有意想不到的连接错误。

安装部署 frp

frp 采用 Go 语言编写,只需下载对应平台的二进制文件即可执行

安装部署 frps

下载linux frp 对应二进制包到 frps server,解压到对应目录上

下载 frp 二进制压缩包
wget https://github.com/fatedier/frp/releases/download/v0.57.0/frp_0.57.0_linux_amd64.tar.gz
解压
tar xf frp_0.57.0_linux_amd64.tar.gz -C /usr/local/
cd /usr/local/frp_0.57.0_linux_amd64/

frps server的配置文件是frps.toml,frpc client的配置文件是frpc.toml,下面配置frps.toml

# 可以参考官方配置frps_full_example.toml,里面有详细配置说明
# https://github.com/fatedier/frp/blob/405969085fb6b5c8058c88ca250e930ba6092153/conf/frps_full_example.toml

#frps监听端口
bindPort = 17000

# 配置 frp dashboard
webServer.addr = "127.0.0.1"
webServer.port = 7500
webServer.user = "admin"
webServer.password = "*******"

# 配置 token 认证,frpc 客户端也需指定一样的token
auth.method = "token"
auth.token = "abc123jki"

# 只允许frpc绑定指定ports. 
allowPorts = [
  { start = 60000, end = 60500 }
]

使用 systemd 来管理 frps 服务,并设置开机自启,创建frps.service文件

vim /etc/systemd/system/frps.service

写入frps.service内容如下:

[Unit]
Description=FRP Server
After=network.target

[Service]
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart=/usr/local/frp_0.57.0_linux_amd64/frps -c /usr/local/frp_0.57.0_linux_amd64/frps.toml
Type=simple

[Install]
WantedBy=multi-user.target

设置frps开机启动,并启动 frps

# 设置frps开机启动
systemctl enable frps
# 启动frps
systemctl start frps
# 查看frps服务状态
systemctl status frps

frpc安装

下载windows frp 对应二进制包到 frpc client,解压到对应目录上,下载地址https://github.com/fatedier/frp/releases/download/v0.57.0/frp_0.57.0_windows_amd64.zip

frpc client的配置文件是frpc.toml,编辑frpc.toml

# 可以参考官方配置frpc_full_example.toml,里面有详细配置说明
# https://github.com/fatedier/frp/blob/405969085fb6b5c8058c88ca250e930ba6092153/conf/frpc_full_example.toml

# 填写你的frps server的ip 和 port
serverAddr = "1.1.1.1"
serverPort = 17000

# 配置 token 认证,frpc 客户端需指定frps一样的token
auth.method = "token"
auth.token = "abc123jki"

# 在 frp 中,一个代理对应一个需要公开访问的内网服务。
# 一个客户端可以同时配置多个代理,以满足不同的需求。
# 下面配置的是将 win10 远程桌面暴露到 frps_ip 60002端口上
[[proxies]]
name = "windows remote desktop"
type = "tcp"
localIP = "127.0.0.1"
localPort = 3389
remotePort = 60002

使用NSSM - the Non-Sucking Service Manager将frpc注册成windows服务并设置开机启动

在nssm 官网下载 nssm 程序,地址 https://nssm.cc/release/nssm-2.24.zip,解压压缩包,win64下面会有 nssm 程序,程序可以放在任何位置都可以。

以管理员权限运行cmd,切换到 nssm 程序目录,执行下面命令

nssm install frpc

命令执行后,它会以 GUI显示服务安装窗口,填写 frpc 程序的路径和启动参数,点击 Install service 即可
在这里插入图片描述
在上面打开的管理员cmd 窗口,启动 frpc 服务

nssm start frpc # 或者可以使用 net start frpc

可以看到frpc 进程已经启动
在这里插入图片描述
这时候可以在frps dashboard(这里可以配置nginx反向代理访问)查看frpc客户端是否注册上,注册上 status 会显示 online
在这里插入图片描述

验证内网穿透

client通过frps_ip:60002 远程桌面到 frpc win10 pc 上
在这里插入图片描述

  • 21
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Frp是一个常用的内网穿透工具,而宝塔是一款简单易用的服务器管理面板。将宝塔与frp搭建结合可以实现内网穿透的功能,下面是实现该功能的步骤: 1. 安装宝塔面板:通过wget命令下载宝塔面板的安装脚本,然后执行安装命令进行安装。安装完成后,通过浏览器访问服务器的IP地址,即可进入宝塔面板的登录页面。 2. 登录宝塔面板:在登录页面中输入用户名和密码,点击登录按钮即可登录到宝塔面板的控制台。 3. 添加网站:在宝塔面板控制台内,点击“网站”选项卡,然后点击“添加网站”按钮。在添加网站的页面中,填写站点名称、绑定域名等信息,并选择对应的站点目录。 4. 配置frp:在宝塔面板控制台内,点击“软件商店”选项卡,然后搜索并安装“frps”软件。安装完成后,点击“软件管理”选项卡,在列表中找到“frp”,点击“设置”按钮进行配置。 5. 配置frp参数:在frp配置页面中,填写服务器IP地址、远程端口等参数,并保存配置。然后点击“启动”按钮启动frp。 6. 完成内网穿透:在PC端安装frp客户端,然后根据frp客户端的配置文档,配置客户端的参数。将客户端与服务器进行连接,即可完成内网穿透。 通过以上步骤,我们可以通过宝塔与frp搭建一个内网穿透的环境。这样就可以实现远程访问内网服务器或应用的功能,方便了服务器管理与应用开发
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

coding部落

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值