-
启动开发服务器:
npm run dev
-
查看网络地址:
- 启动日志会显示 Network 地址,例如:
- Local: http://localhost:3000 - Network: http://192.168.31.141:3000
- 启动日志会显示 Network 地址,例如:
-
从其他设备访问:
- 确保设备在同一局域网
- 使用 Network 地址访问:
http://192.168.31.141:3000
使用 ngrok 进行内网穿透:
-
安装 ngrok:
# macOS brew install ngrok # 或下载:https://ngrok.com/download
-
启动 ngrok:
ngrok http 3000
-
获取公网地址:
- ngrok 会显示一个临时的公网 URL,例如:
https://xxx.ngrok-free.app
- ngrok 会显示一个临时的公网 URL,例如:
-
使用公网地址访问:
- 在任意设备上使用该 URL 访问
如果需要稳定的公网访问,可以使用 FRP:
-
安装 FRP 客户端:
# 下载对应平台的 FRP 客户端 wget https://github.com/fatedier/frp/releases/download/v0.52.3/frp_0.52.3_darwin_amd64.tar.gz tar -xzf frp_0.52.3_darwin_amd64.tar.gz -
配置 FRP(frpc.ini):
[common] server_addr = your-frp-server.com server_port = 7000 token = your-token [web] type = http local_port = 3000 custom_domains = your-domain.com
-
启动 FRP:
./frpc -c frpc.ini
推荐使用以下托管服务:
-
Vercel(推荐 Next.js):
npm install -g vercel vercel
-
Netlify:
npm install -g netlify-cli netlify deploy --prod
-
自建服务器:
npm run build npm start
-
环境变量:
JWT_SECRET=your-production-secret-key NODE_ENV=production
-
使用 HTTPS:
- 推荐使用 Nginx 反向代理 + Let's Encrypt
- 或使用云服务提供的 SSL 证书
-
使用域名:
- 购买域名并配置 DNS
- 配置 Nginx 反向代理
server {
listen 80;
server_name your-domain.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name your-domain.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}-
检查防火墙:
# macOS sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /usr/local/bin/node sudo /usr/libexec/ApplicationFirewall/socketfilterfw --unblock /usr/local/bin/node # Linux sudo ufw allow 3000
-
检查端口占用:
lsof -i :3000
-
测试端口连接:
# 在其他设备上测试 curl http://192.168.31.141:3000 -
查看服务器日志:
- 检查是否有错误信息
- 确认服务器正在监听正确的端口
-
清除浏览器 Cookie:
- 打开开发者工具 → Application → Cookies
- 删除所有 Cookie 后重新登录
-
检查 Cookie 设置:
- Cookie 已配置为
sameSite: "lax"以支持跨设备登录 - 确保浏览器没有禁用 Cookie
- Cookie 已配置为
-
使用隐私模式:
- 某些浏览器扩展可能影响 Cookie
- 尝试在隐私模式下访问
-
检查上传目录权限:
chmod 755 public/uploads
-
检查文件大小限制:
- 默认限制:5MB
- 可在
app/api/upload/route.ts中修改
-
查看服务器日志:
- 检查上传 API 的错误信息
- 确认文件已正确保存
- 生产环境必须使用 HTTPS
- 使用强密码和随机的 JWT_SECRET
- 定期更新依赖包
- 配置防火墙规则
- 启用速率限制
- 定期备份数据
- 监控访问日志