You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在无静态IP的Debian服务器搭建ejabberd,实现家庭WiFi内访问?

在Debian笔记本部署ejabberd并实现局域网访问

1. 安装ejabberd

先更新系统包列表,再安装ejabberd:

sudo apt update
sudo apt install ejabberd

安装完成后,用以下命令确认服务运行状态:

systemctl status ejabberd

2. 修改ejabberd配置以允许局域网访问

编辑主配置文件/etc/ejabberd/ejabberd.yml:

  • 找到listen段落,将绑定地址从127.0.0.1改为0.0.0.0(允许所有IP访问),示例:
    listen:
      -
        port: 5222
        ip: "0.0.0.0"
        module: ejabberd_c2s
        ...
      -
        port: 5280
        ip: "0.0.0.0"
        module: ejabberd_http
        ...
    
  • 找到hosts配置,添加笔记本的局域网IP或自定义本地域名(比如local.ejabberd):
    hosts:
      - "localhost"
      - "192.168.x.x"  # 替换为你的笔记本局域网IP
      - "local.ejabberd"
    

保存配置后,重启ejabberd生效:

sudo systemctl restart ejabberd

3. 获取笔记本的局域网IP

执行以下命令查看WiFi接口的IP地址(通常为wlan0):

ip a show wlan0

找到inet字段后的地址(如192.168.1.100),这就是局域网内访问ejabberd的核心地址。

4. 配置防火墙开放端口

ejabberd常用端口需开放给局域网:

sudo ufw allow 5222/tcp  # XMPP客户端连接端口
sudo ufw allow 5269/tcp  # 服务器间通信端口(测试环境可选跳过)
sudo ufw allow 5280/tcp  # HTTP管理界面端口

5. 局域网内访问设置

方式1:直接用IP访问

同一WiFi下的设备,在XMPP客户端(如Pidgin、Gajim)中,将服务器地址设为笔记本的局域网IP即可连接。

方式2:自定义域名访问(模拟localhost体验)

为了接近localhost的访问便捷性,可在客户端设备的hosts文件中添加映射:

  • Windows:编辑C:\Windows\System32\drivers\etc\hosts
  • Linux/macOS:编辑/etc/hosts

添加一行:

192.168.x.x  local.ejabberd

替换192.168.x.x为你的笔记本局域网IP。之后客户端即可用local.ejabberd作为服务器地址,操作体验和访问localhost一致。

注意事项

  • 检查家中modem的AP隔离设置,若开启该功能,同一WiFi下设备无法互相访问,需关闭。
  • 测试环境无需配置公网IP,仅局域网内访问即可满足开发测试需求。

内容的提问来源于stack exchange,提问作者MR AR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 16:57:09