FRP免费通过外网访问本地电脑方法

本文介绍了如何使用frp工具实现内网穿透,让外网可以访问内网中的网站和接口。通过配置frp的服务器端和客户端,你可以轻松地在家中远程调试接口并与同事进行本地接口调试。文章还提供了免费服务器的使用信息及详细配置步骤,适合对服务器配置不熟悉的新手。

你是不是想搭建个网站,又迫切希望在外网朋友可以直接访问。
你是不是遇到过在家中,你要和朋友远程调试接口,但是同事在他家,无法调用你本地电脑的接口。
用这个工具你就可以通过互联网访问到你家中自己电脑上的网站,或者接口。

一.介绍

有些api的调用或者联调需要公网IP才能进行,这样一来不得不将代码部署到服务器进行访问,这样做是比较繁琐和麻烦的
内网电脑上部署得web应用,还有远程本地想和前端调试程序接口,都可以通过这个工具,远程访问自部署在内网得网站,和远程和前端同事本地调试接口。轻松实现外网访问内网。实现内网穿透

文章最后提供免费的服务器使用,避免大家去折腾搭建服务器。如果是小白,想直接使用,请直接看直接免费下载使用文章最后,下载直接使用,免费

二.安装配置

frp提供了热门平台的程序文件,所以安装也变得比较简单了,我这边的是Linux 64位平台的,其它的请自己去下——>传送门

服务端配置安装
wget https://github.com/fatedier/frp/releases/download/v0.12.0/frp_0.12.0_linux_amd64.tar.gz
tar xzf frp_0.12.0_linux_amd64.tar.gz
mv frp_*/frps /usr/bin/
mkdir /etc/frp/
rm -rf frp_*

然后根据下面配置你自己改了填到配置文件中

vi /etc/frp/frps.ini

下面是我翻译的带说明的服务端配置文件

[common]
#frp服务器监听地址,如果是IPV6地址必须用中括号包围
bind_addr = 0.0.0.0
#frp服务器监听端口
bind_port = 7000
 
#kcp的udp监听端口,如果不设那就不启用
#kcp_bind_port = 7000
#指定使用的协议,默认tcp,可选kcp
#protocol = kcp
 
#如果要使用vitual host,就必须设置
#vhost_http_port = 80
#vhost_https_port = 443
 
#Web后台监听端口
dashboard_port = 7500
 
#Web后台的用户名和密码
dashboard_user = admin
dashboard_pwd = admin
 
#Web后台的静态资源目录,调试用的,一般不设
#assets_dir = ./static
 
#日志输出,可以设置为具体的日志文件或者console
log_file = /var/log/frps.log
 
#日志记录等级,有trace, debug, info, warn, error
log_level = info
#日志保留时间
log_max_days = 3
 
#启用特权模式,从v0.10.0版本开始默认启用特权模式,且目前只能使用特权模式
#privilege_mode = true
 
#特权模式Token,请尽量长点且复杂
privilege_token = 12345678
 
#特权模式允许分配的端口范围
privilege_allow_ports = 2000-3000,3001,3003,4000-50000
 
#心跳超时,不用改
#heartbeat_timeout = 90
 
#每个代理可以设置的连接池上限
#max_pool_count = 5
 
#认证超时时间,一般不用改
#authentication_timeout = 900
 
#如果配置了这个,当你的模式为http或https时,就能设置子域名subdomain
#subdomain_host = frps.com
 
#是否启用tcp多路复用,默认就是true,不用管
#tcp_mux = true

在这个配置文件中老版本是可以不启用特权模式或者同时添加其它的section来在服务端配置其它的转发设置的,但是从v0.10.0版本开始后特权模式暂时是唯一可用的(因为方便,不用为了一个配置而既要改服务端又要改客户端)

在修改好服务端配置文件后,我们可以启用frp的服务端了

frps -c /etc/frp/frps.ini
客户端安装

然后服务端就OK了,下面开始配置客户端,客户端程序自己在GitHub上面下,各个平台的包里面frps是服务器,frpc就是客户端

配置文件如下,自己修改后保存为frpc.ini,这里是我已经配置好的

[common]
#这个是本人,提供的服务器不用修改。
server_addr = frp.zfcgl.com
server_port = 7000

[web01]
type = http
local_ip = 127.0.0.1
#你本地的服务启动监听的端口,比如我的tomcat端口是8080
local_port = 8080
use_encryption = false
use_compression = true
# http username and password are safety certification for http protocol
# if not set, you can access this custom_domains without certification
#http_user = admin
#http_pwd = admin
# if domain for frps is frps.com, then you can access [web01] proxy by URL http://test.frps.com
#只需要修改这里:请一定修改这个地址,避免冲突和别人的冲突 本地启动后,访问地址就是 http://myname.frp.zfcgl.com
subdomain = myname   
#custom_domains = frp.zfcgl.com
# locations is only available for http type
#locations = /,/pic
#host_header_rewrite = example.com
# params with prefix "header_" will be used to update http request headers
#header_X-From-Where = frp

配置好配置文件以后
windows下启动

E:\tool\frp\frp_0.36.2_windows_amd64>frpc.exe -c frpc.ini

启动成功后是这个样子的

E:\tool\frp\frp_0.36.2_windows_amd64>frpc.exe -c frpc.ini
2021/05/10 15:14:05 [I] [service.go:304] [ca0d4a4ee390efc6] login to server success, get run id [ca0d4a4ee390efc6], server udp port [0]
2021/05/10 15:14:05 [I] [proxy_manager.go:144] [ca0d4a4ee390efc6] proxy added: [web01]
2021/05/10 15:14:05 [I] [control.go:180] [ca0d4a4ee390efc6] [web01] start proxy success

截图如下
在这里插入图片描述

如果不想研究服务端搭建过程,可以直接看我这个文章,下载直接使用。免费使用,内网穿透,外网访问内网个人电脑

<think>我们正在处理用户关于natapp无法从外网访问本地服务的问题。根据用户描述,用户在使用natapp进行内网穿透时,遇到了外网无法访问本地服务接口的情况。我们需要结合引用内容和一般技术知识来提供解决方案。引用内容提示: [^1]:提到了外网访问内部服务的需求,以及本地/测试环境是内网,外网无法访问的问题。 [^2]:提到了使用内网穿透(natapp)并配置隧道,需要修改boot项目的端口(如8080)以适应隧道配置。 [^3]:提到了natapp的使用步骤:注册账号->购买免费隧道->填写隧道信息->下载客户端->本地运行->生成url。用户问题:natapp无法访问本地服务,外网调用本地接口失败。可能的原因及解决方案:1.本地服务未运行或端口不正确:确保本地服务已启动,并且在本地可以通过配置的端口(如localhost:8080)访问。2. natapp隧道配置错误:检查隧道配置中填写的本地端口是否与本地服务端口一致。3.防火墙或安全软件阻止:检查本地防火墙或安全软件是否阻止了外部访问,需要放行natapp客户端和本地服务端口。4.natapp客户端未正确运行:确保natapp客户端已启动,并且显示连接成功,有公网地址分配。5.网络环境问题:如本地网络有特殊限制(如公司网络),可能导致穿透失败。步骤性解决方案:步骤1:验证本地服务在本地使用浏览器或curl访问服务,例如:http://localhost:8080/your-api,确保服务正常运行。步骤2:检查natapp隧道配置登录natapp官网,查看隧道配置,确认本地端口(如8080)与本地服务端口一致。步骤3:运行natapp客户端下载并运行natapp客户端(注意根据操作系统选择),运行命令类似于:natapp -authtoken=你的authtoken观察控制台输出,看是否显示连接成功,并分配了公网地址(如http://xxxx.natappfree.cc)。步骤4:通过公网地址访问在浏览器中访问natapp提供的公网地址(加上你的接口路径),例如:http://xxxx.natappfree.cc/your-api步骤5:处理防火墙如果步骤4失败,检查本地防火墙设置,确保本地服务端口(如8080)允许外部访问(虽然natapp是通过本地客户端建立隧道,但客户端需要能访问本地服务端口,所以确保本地服务端口对本地回环和natapp客户端开放即可)。另外,确保natapp客户端本身没有被防火墙阻止。步骤6:查看natapp客户端日志注意natapp客户端运行时的日志,是否有错误信息。常见的错误包括:authtoken错误、网络连接问题等。步骤7:检查网络环境如果是在公司或学校网络,可能有限制,尝试更换网络(如手机热点)测试。步骤8:尝试其他内网穿透工具如果以上步骤均失败,可尝试使用其他内网穿透工具(如frp,ngrok, sunny-ngrok等)进行测试,以确定是否为natapp服务问题。根据引用[^3]提到的步骤,确保已经完成了注册、实名认证、获取免费隧道、配置隧道(填写本地端口)、下载客户端并运行。特别注意:免费隧道可能不稳定,或者有连接限制,可以尝试重新启动natapp客户端或更换隧道。如果问题仍然存在,建议查看natapp的官方文档或联系技术支持。生成相关问题:为了帮助用户进一步排查问题,我们生成以下相关问题:§§相关问题§§1.如何检查本地服务是否正常运行? 2. natapp隧道配置中本地端口应如何设置? 3. natapp客户端运行时出现错误提示如何解决? 4.除了natapp,还有哪些内网穿透工具推荐?5.如何配置防火墙允许内网穿透?</think>### natapp无法访问本地服务的解决方案 当使用natapp进行内网穿透时,若外网无法访问本地服务接口,请按以下步骤排查: #### **1. 验证本地服务状态** - **确保本地服务正常运行**:在浏览器访问 `http://localhost:本地端口`(如 `http://localhost:8080`),确认服务可正常响应。 - **检查服务绑定IP**:若服务绑定到 `127.0.0.1`(仅限本机访问),需改为 `0.0.0.0`(允许所有IP访问)。例如: ```java // Spring Boot 配置示例 server.address=0.0.0.0 // 在 application.properties 中设置 ``` #### **2. 检查natapp隧道配置** - **端口一致性**:登录 [natapp官网](https://natapp.cn),检查隧道配置中的 **本地端口** 是否与本地服务端口一致(如 `8080`)。 ![](https://natapp.cn/assets/images/tunnel-config.png) - **协议匹配**:HTTP服务需选择 **Web协议**,TCP服务需选择 **TCP隧道** [^3]。 #### **3. 排查防火墙与安全软件** - **关闭防火墙**(临时测试): - **Windows**:`控制面板 > Windows Defender 防火墙 > 启用/关闭防火墙`(全部关闭)。 - **Mac/Linux**:终端执行 `sudo ufw disable`。 - **放行端口**:若需长期开启防火墙,手动放行本地服务端口(如 `8080`)和 natapp 客户端端口。 #### **4. 检查natapp客户端运行状态** - **查看连接日志**:运行客户端后,检查日志是否显示 `连接成功` 和公网地址(如 `http://xxx.natappfree.cc`)。 ```bash # 示例日志 [INFO] 隧道启动成功 -> 公网地址: http://a1b2c3.natappfree.cc ``` - **重签Authtoken**:若日志报错 `Token错误` 或 `认证失败`,在官网重置隧道并更新客户端命令中的Authtoken [^3]。 #### **5. 网络环境问题** - **路由器限制**:部分路由器会阻止外部穿透,尝试: - 切换网络(如手机热点)。 - 登录路由器后台,关闭 **ALG防火墙** 或 **DMZ主机** 功能。 - **企业网络限制**:公司网络可能屏蔽穿透工具,需联系IT部门放行。 #### **6. 其他工具备选方案** 若仍失败,可尝试替代工具: - **frp**:开源穿透工具,配置灵活(需自备公网服务器)[^2]。 - **ngrok**:国际版(`ngrok.com`)提供免费隧道,支持即时诊断。 > **关键提示**:免费隧道可能不稳定,商业套餐(9元/月)提供更可靠的带宽和域名 [^3]。 ---
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

gzcsschen

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

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

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

打赏作者

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

抵扣说明:

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

余额充值