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

如何将Android应用与XAMPP本地服务器及Ubuntu端口4212服务连通?

解决Android应用访问WSL Ubuntu中4212端口服务的问题

这个问题我做跨设备调试时也碰到过,核心原因是WSL的localhost和Android设备的localhost不属于同一网络节点,而且默认情况下WSL里的服务只绑定了本地回环地址,外部设备根本没法访问。下面一步步给你解决:

1. 修改WSL服务的监听地址

首先得让Ubuntu里的服务监听0.0.0.0而非127.0.0.1。127.0.0.1只能接受WSL内部的请求,改成0.0.0.0就允许局域网内的其他设备(包括你的Android手机)连接了。

给你几个常见语言的修改示例:

  • Python Socket:
    import socket
    server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    # 把这里的'127.0.0.1'替换成'0.0.0.0'
    server_socket.bind(('0.0.0.0', 4212))
    server_socket.listen(1)
    
  • Node.js:
    const http = require('http');
    const server = http.createServer((req, res) => {
      res.end('Hello from WSL!');
    });
    // 监听0.0.0.0:4212
    server.listen(4212, '0.0.0.0', () => {
      console.log('Server running on port 4212');
    });
    

修改完记得重启你的服务。

2. 获取WSL的局域网IP地址

在Ubuntu终端里执行这条命令,就能拿到WSL在当前局域网中的IP:

hostname -I

输出会是类似192.168.3.15的地址,把这个IP记下来。

3. 配置Windows防火墙允许4212端口入站

Windows防火墙默认会阻止外部设备访问WSL的端口,得添加一条放行规则:

  • 打开「Windows Defender防火墙」→「高级设置」→「入站规则」→「新建规则」
  • 选择「端口」,点击下一步
  • 选中「TCP」,指定特定本地端口为4212,点击下一步
  • 选择「允许连接」,点击下一步
  • 勾选「域」「专用」(如果用的是公用网络也可以按需勾选),点击下一步
  • 给规则起个好记的名字(比如「WSL 4212端口访问」),完成配置

4. 确保Android设备和主机在同一局域网

你的手机必须和运行WSL的电脑连同一个WiFi(用USB共享网络也行,但WiFi更方便),这样两者才能在同一个局域网内通信。

5. 修改Android应用的请求地址

把App里原来的127.0.0.1:4212替换成刚才获取的WSL局域网IP,比如192.168.3.15:4212,重新打包测试就行。

额外排查小技巧

  • 先在主机浏览器里访问WSL_IP:4212,如果能正常响应,说明服务和防火墙配置没问题;
  • 如果还是不行,检查WSL的网络模式:WSL2默认是NAT模式,上面的步骤完全适用;要是WSL1,网络和主机共享,只要服务绑定0.0.0.0就基本没问题;
  • 注意Android 9及以上默认禁止明文HTTP请求,要是你的服务用的是HTTP,得在AndroidManifest.xml里添加android:usesCleartextTraffic="true",或者直接配置HTTPS。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:54:19