当前位置:论坛首页 > Linux面板 > 求助

【已完成】在宝塔的服务器本机内无法访问面板接口

发表在 Linux面板2024-8-1 14:27  关闭 [复制链接] 18 1044

为了能快速了解并处理您的问题,请提供以下基础信息:
面板、插件版本:9.0.0lts
系统版本:debain12
问题描述:如何在本机环境内访问宝塔面板接口。我在一个服务器部署了一个bt面板服务并且对面板地址设置了域名和ssl,但是当我写了一个程序去掉用面板的api接口时,我发现不管怎么尝试都被nginx以404返回,但是我可以在其他设备去访问这个服务器的api接口。于是我直接在这台安装宝塔的服务器内直接用控制台curl https://xxxx.com/api接口依旧是404,再然后我又尝试了curl 了面板登录地址依旧是404,但是其他设备访问这个登录地址就可以正常进入。这是什么原因造成?
相关截图(日志、错误):

使用道具 举报 只看该作者 回复
发表于 2024-8-1 18:29:00 | 显示全部楼层
您好,您这边使用外网固定的端口来做映射。然后通过这个外网固定ip的端口来实现访问面板
使用道具 举报 回复 支持 反对
发表于 2024-8-1 22:03:58 | 显示全部楼层
不能算是外网,因为我域名绑定的是局域网地址192.168.100.X下其中一个地址。因为只是一个内部测试服,并没有外部ip。然后部署在A设备上,通过局域网B设备可以正常访问,但是我通过A设备自己启动的程序访问就会被nginx返回为404。
这个其实很好验证吧,如果是bug的话,除非bt的nginx路由就是这样设计的?你可以在linux下部署宝塔,然后绑定一个测试域名,然后从部署机系统控制台去curl一下接口或者面板登录页,就会出现这个问题了。
使用道具 举报 回复 支持 反对
发表于 2024-8-2 17:37:33 | 显示全部楼层
阿枫大帅比 发表于 2024-8-1 22:03
不能算是外网,因为我域名绑定的是局域网地址192.168.100.X下其中一个地址。因为只是一个内部测试服,并没 ...

您好,您这边是可以直接通过域名进行访问的吗,如果可以,检查一下配置中是否防火墙阻拦之类的,一般404是被拒绝访问,或者是找不到文件
使用道具 举报 回复 支持 反对
发表于 2024-8-2 21:01:34 | 显示全部楼层
运维技术阿闯 发表于 2024-8-2 17:37
您好,您这边是可以直接通过域名进行访问的吗,如果可以,检查一下配置中是否防火墙阻拦之类的,一般404 ...

对局域网其他设备可以通过域名直接访问,另外其他设备也可以通过postman访问接口。就是从部署机本身访问不行,我尝试了从部署机通过127.0.0.1或者机器局域网ip访问则会被reconnect,通过域名访问的话就会给404.
防火墙我是直接从面板里关闭了的,没有启用。
使用道具 举报 回复 支持 反对
发表于 2024-8-3 11:27:33 | 显示全部楼层
阿枫大帅比 发表于 2024-8-2 21:01
对局域网其他设备可以通过域名直接访问,另外其他设备也可以通过postman访问接口。就是从部署机本身访问 ...

内网环境的话,这个不太能够解决您的问题,建议是做个固定ip外网,映射端口
使用道具 举报 回复 支持 反对
发表于 2024-8-3 13:32:00 | 显示全部楼层
运维技术阿闯 发表于 2024-8-3 11:27
内网环境的话,这个不太能够解决您的问题,建议是做个固定ip外网,映射端口 ...

事实上,我用有公网ip的生产服务器也测试一下,也是本地无法访问,我是直接从宝塔面板的控制台进行curl -X POST操作,但是我自己电脑的postman会有返回,我觉得这是面板的路由问题还是什么吧。这个真的,你们自己跑一下就知道了,我不太清楚为什么要拦截来自本机的请求,这难道有什么风险吗。
以下两张图均来自具备外网IP的服务器测试,图一为该服务器的控制台,图二为其他电脑发起的post。很明显即便没有在API接口白名单的设备进行post空请求也会返回正确的json数据。而从本机发起的curl的post请求却只能得到404应答,这应该是从路由那边就被nginx拦截了。

屏幕截图 2024-08-03 132648.png 屏幕截图 2024-08-03 132731.png

使用道具 举报 回复 支持 反对
发表于 2024-8-3 14:53:12 | 显示全部楼层
阿枫大帅比 发表于 2024-8-3 13:32
事实上,我用有公网ip的生产服务器也测试一下,也是本地无法访问,我是直接从宝塔面板的控制台进行curl - ...

您好,是我的表达有问题,您这边在浏览器中输入这个是没有问题的
您用curl 的话,您不需要到参数,直接拿ping一下域名然后将得到的ip进行curl访问看一下
使用道具 举报 回复 支持 反对
发表于 2024-8-3 16:09:54 | 显示全部楼层
做个V.PN吧,全国可访问内网
使用道具 举报 回复 支持 反对
发表于 2024-8-3 16:27:11 | 显示全部楼层
杜哥 发表于 2024-8-3 16:09
做个V.PN吧,全国可访问内网

谢谢您的解答
使用道具 举报 回复 支持 反对
发表于 2024-8-3 18:14:58 | 显示全部楼层
本帖最后由 阿枫大帅比 于 2024-8-3 18:19 编辑
杜哥 发表于 2024-8-3 16:09
做个V.PN吧,全国可访问内网

现在已经不是内网出现了,因为我需要的是内网实现一个程序调用宝塔接口的功能,所以没有在对外服务器测试。现在拿对外的服务器测试也是同样的问题。所以和内网没有关系,谢谢你的解答。
使用道具 举报 回复 支持 反对
发表于 2024-8-3 18:18:08 | 显示全部楼层
本帖最后由 阿枫大帅比 于 2024-8-3 18:26 编辑
运维技术阿闯 发表于 2024-8-3 14:53
您好,是我的表达有问题,您这边在浏览器中输入这个是没有问题的
您用curl 的话,您不需要到参数,直接拿 ...

辛苦,谢谢星期天也给解答,我不清楚为什么你让我用ip请尝试,因为宝塔不是设置域名后ip就会被禁用吗?不过我还是给你操作了一下,我觉得这个地方和这个部分没有太大关系。主要还是宝塔内部nginx走的规则被拒绝了。

ping不通是因为我给ping口关了。
屏幕截图 2024-08-03 181327.png

PS:阿闯哥,我觉得是这么个事,为了不浪费你们的时间,你可以在你们那边部署试一下,如果你们那边没有这个问题,我觉得大概率是我这边自己问题导致的,我就自己继续再折腾折腾了。如果你们出现了,你可以排查下,如果本身风险规则这么设置的,告诉我怎么解开就行,因为内网确实不需要考虑这个风险,如果不是,就看看怎么修改这么bug。

测试用例:linux部署一个宝塔最新面板,设置域名和SSL,用宝塔面板中的控制台curl -X POST 任意接口链接,就可以还原问题了。
使用道具 举报 回复 支持 反对
发表于 2024-8-3 18:26:34 | 显示全部楼层
阿枫大帅比 发表于 2024-8-3 18:18
辛苦,谢谢星期天也给解答,我不清楚为什么你让我用ip请尝试,因为宝塔不是设置域名后ip就会被禁用吗?不 ...

您好,应该是跟配置有关,"curl: (56) Recv failure: Connection reset by peer",这种现象通常发生在网络连接中,一端在数据传输过程中突然关闭了连接,导致另一端无法接收数据而出现该错误。
一般排查的话从网络,防护墙,端口映射,容器,资源情况,docker,代码等方面
使用道具 举报 回复 支持 反对
发表于 2024-8-3 18:31:29 | 显示全部楼层
运维技术阿闯 发表于 2024-8-3 18:26
您好,应该是跟配置有关,"curl: (56) Recv failure: Connection reset by peer",这种现象通常发生在网 ...

我不理解了,这句话难道不针对api吗?宝塔面板的地址端口和api的地址端口不是共用的一套路由规则?难道设置域名后面板如果用ip进就会被拒绝,api接口就不会被拒绝???
我现在有点搞不太明白了。。。

屏幕截图 2024-08-03 182856.png
使用道具 举报 回复 支持 反对
发表于 2024-8-5 09:56:40 | 显示全部楼层
阿枫大帅比 发表于 2024-8-3 18:31
我不理解了,这句话难道不针对api吗?宝塔面板的地址端口和api的地址端口不是共用的一套路由规则?难道设 ...

您好,您这边取消域名访问吧
rm -f/www/serve/panel/data/domain.conf即可关闭访问限制!
使用道具 举报 回复 支持 反对
12下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

普通问题处理

论坛响应时间:72小时

问题处理方式:排队(仅解答)

工作时间:白班:9:00 - 18:00

紧急运维服务

响应时间:3分钟

问题处理方式:宝塔专家1对1服务

工作时间:工作日:9:00 - 18:30

宝塔专业团队为您解决服务器疑难问题

立即付费处理

工作时间:09:00至24:00

快速回复 返回顶部 返回列表