因内网主机上的HTTP服务需要被外网访问,但由于出口没有固定IP,直接访问存在困难。之前介绍过通过花生壳进行映射,但花生壳免费流量有限且HTTP访问通常依赖域名。本文将介绍如何使用开源内网穿透工具frp,实现HTTP服务的稳定外网访问。
前提条件:
需要一台出口IP是固定IP的主机(以下简称服务端)
本文以两台windows主机分别作为服务端和客户端进行演示
一、下载frp
访问frp官方GitHub发布页面下载最新版:
下载地址:https://github.com/fatedier/frp/releases/tag/v0.62.0
根据系统架构选择对应版本,本文使用的是v0.62.0版本。
注意:frp可被部分杀毒软件误报为病毒,请务必将其添加至白名单,确保正常运行。
下载完成后解压,解压包内包含以下文件:
- frps.exe
—— 服务端程序 - frps.toml
—— 服务端配置文件 - frpc.exe
—— 客户端程序 - frpc.toml
—— 客户端配置文件 - LICENSE
—— 许可证文件
二、服务端配置
修改服务端配置
将frps.toml及frps.exe 复制到出口IP为固定IP的主机上
修改frps.toml配置文件
bindPort 默认为7000 可自行修改 ##为客户端frp及服务端frp交互使用
vhostHTTPPort ##
HTTP服务监听端口,外网访问时使用此端口
可选配置:
auth.method = "token" 通过身份验证
auth.token = " 自定义密码" ##客户端一致
启动服务端程序:
cmd进入frps.toml及frps.exe所在位置,执行以下命令
frps.exe -c frps.toml
确保服务端主机的防火墙及网络出口放行bind_port(默认7000)和vhost_http_port(如28080)端口。
三、客户端配置
修改客户端配置
将frpc.toml及frpc.exe 复制到内网HTTP服务所在主机。
修改frpc.toml配置文件
serverAddr= " " 为服务端出口IP地址
serverPort = 同服务端相同配置
可选
auth.method = "token" 通过密码验证
auth.token = " 自定义密码" #如需身份验证,请确保服务端和客户端的token设置一致。
type 修改为http
local_port = 80 # HTTP服务端口
customDomains = [" 服务端出口IP地址"] ##绑定访问域名或IP
注意:remote_port字段在HTTP类型映射中不需要,需删除。
启动客户端程序
cmd进入frpc.toml及frpc.exe所在位置,执行以下命令
frpc.exe -c frpc.toml
确保客户端主机防火墙放行http服务端口
四、测试验证
在外网浏览器中输入:http://服务端固定出口IP:28080,即可访问内网HTTP服务,实现内网穿透。
参考链接:
https://github.com/fatedier/frp/blob/dev/conf/frps_full_example.toml
https://github.com/fatedier/frp/blob/dev/conf/frpc_full_example.toml
-End-
如果觉得我的分享有用
[点赞+分享+关注]
原文始发于微信公众号(网络个人修炼):突破固定IP限制,利用frp实现内网HTTP服务映射
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论