Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
Discussion options

大家好,

我在 Azure 平台上的 Debian 虚拟机部署 1Panel 时遇到了一个棘手的网络问题,希望在这里和大家探讨一下。

问题描述 (Question)

我按照官方脚本在 Azure 的 Debian 虚拟机上成功安装了 1Panel。安装过程顺利,日志显示服务已正常启动并监听在指定端口。

[1Panel 2025-10-08 07:57:17 install Log]: =================Thank you for your patience, installation is complete==================
[1Panel 2025-10-08 07:57:17 install Log]: 
[1Panel 2025-10-08 07:57:17 install Log]: Please access the panel using your browser: 
[1Panel 2025-10-08 07:57:17 install Log]: External address: http://4.241.xxx.xxx:35463/xxx 
[1Panel 2025-10-08 07:57:17 install Log]: Internal address: http://10.0.0.4:35463/xxx

然而,当我尝试从外部网络(我的本地电脑)访问 `http://4.241.xxx.xxx:35463/xxx 时,访问失败。

  • 浏览器表现: 报错 502 Bad Gateway 或 "该网站无法提供安全连接" / "连接已重置"。
  • 本地 curl 表现: 收到 curl: (52) Empty reply from server 错误。

这表明 TCP 连接似乎已建立,但在接收 HTTP 响应时被异常中断。


已执行的排查步骤与分析 (Answer & Analysis)

为了定位问题,我进行了以下一系列详细的检查,但均未能解决问题,这让问题变得非常奇怪。

1. 确认 1Panel 服务状态正常

在服务器内部,1Panel 服务本身是健康且可访问的。

  • 端口监听正常: ss -tlpn | grep 35463 命令显示 1panel 进程确实在 0.0.0.0:35463 上监听,允许所有网络接口的连接。

    LISTEN 0      4096         0.0.0.0:35463      0.0.0.0:*    users:(("1panel",pid=3036,fd=17))
  • 内部访问成功: 在服务器上,通过 curl 访问公网地址是完全成功的,能够返回 HTTP/1.1 200 OK 和完整的 HTML 页面内容。

    azureuser@self-hosted:~$ curl -v http://4.241.xxx.xxx:35463/xxx
    *   Trying 4.241.xxx.xxx:35463...
    * Connected to 4.241.xxx.xxx (4.241.xxx.xxx) port 35463 (#0)
    > GET /xxx HTTP/1.1
    > Host: 4.241.xxx.xxx:35463
    > ...
    < HTTP/1.1 200 OK
    < Content-Type: text/html; charset=utf-8
    ...
    (成功返回 HTML 内容)

    结论: 1Panel 应用本身没有问题,Web 服务工作正常。

2. 检查云平台防火墙 (Azure NSG)

我仔细检查了 Azure 的网络安全组 (Network Security Group, NSG) 配置。

  • 已经为端口 35463 添加了一条入站规则。
  • 规则配置为:允许任何源 (Any)、任何源端口 (*) 通过 TCP 协议访问目标端口 35463
  • 该规则优先级很高,且没有其他更高优先级的规则会阻止此流量。
  • NSG 已正确关联到虚拟机的网络接口上。

结论: 云平台的网络防火墙已经正确放行了 35463 端口的流量。curl: (52) 错误也侧面印证了 TCP 握手可能已经成功,流量到达了机器。

3. 检查服务器系统防火墙

我确认了 Debian 虚拟机内部没有防火墙在阻挡连接。

  • 系统没有安装 ufwfirewalld 等常见的防火墙管理工具。
  • 通过 sudo iptables -L -n -v 检查了 iptables 规则,确认 INPUT 链的默认策略为 ACCEPT,且没有任何 DROPREJECT 规则会影响到 35463 端口的通信。

结论: 服务器操作系统层面的防火墙也被排除了。


问题总结

目前的情况是:

  • 服务本身: 正常运行并监听。
  • 服务器内部: 无论是访问内网还是公网地址,均可正常通信。
  • 云端防火墙: 配置正确,已放行端口。
  • 系统防火墙: 已确认无任何阻拦规则。
  • 外部访问: 失败,表现为 Empty reply from server,暗示数据在返回给客户端的途中被某种机制中断。

这个问题非常特殊,似乎问题既不在应用层,也不在常见的防火墙配置层。我怀疑这可能是 Azure 平台特定的网络机制、其底层 SDN (软件定义网络) 的某些策略,或者 1Panel (或其使用的 Go Web 框架) 与 Azure 网络环境之间存在某种不兼容性导致的。

我已尝试重装 1Panel,问题依旧。希望有在 Azure 上部署经验的朋友或者官方开发人员能提供一些新的排查思路。谢谢!

You must be logged in to vote

Replies: 1 comment · 1 reply

Comment options

同为Azure服务器,安装系统为Ubuntu 24.04,在未开启云平台防火墙时确实存在类似的面板无法访问的问题,在添加端口规则后可以正常访问,或许可以更换Debian为Ubuntu解决此问题。
Screenshot 2025-10-12 220533

You must be logged in to vote
1 reply
@catwinee
Comment options

感谢你的帮助!
目前已经解决问题, 我这边的防火墙没有问题. 主要问题是外面访问的时候不能挂梯子 xD. 把梯子关了就能访问了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
🙏
Q&A
Labels
None yet
2 participants
Morty Proxy This is a proxified and sanitized view of the page, visit original site.