152 lines
4.5 KiB
Markdown
152 lines
4.5 KiB
Markdown
|
|
# NPMplus Correct IP Address Found
|
||
|
|
|
||
|
|
**Date**: 2026-01-21
|
||
|
|
**Discovery**: NPMplus is accessible on **192.168.11.167**, not 192.168.11.166
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Critical Finding
|
||
|
|
|
||
|
|
### ✅ NPMplus IS Accessible
|
||
|
|
|
||
|
|
**Correct IP**: `192.168.11.167`
|
||
|
|
**Status**: ✅ **WORKING** (HTTP 308 redirect)
|
||
|
|
|
||
|
|
**Wrong IP**: `192.168.11.166`
|
||
|
|
**Status**: ❌ Connection refused
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Container Network Configuration
|
||
|
|
|
||
|
|
The NPMplus container (VMID 10233) has **two network interfaces**:
|
||
|
|
|
||
|
|
1. **eth0** (net0): `192.168.11.166/24` ❌ Not accessible
|
||
|
|
2. **eth1** (net1): `192.168.11.167/24` ✅ **Accessible**
|
||
|
|
|
||
|
|
NPMplus is listening on `0.0.0.0:80/443`, which should work on both interfaces, but:
|
||
|
|
- Connections to 192.168.11.166 → **Connection refused**
|
||
|
|
- Connections to 192.168.11.167 → **HTTP 308** (working!)
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Root Cause
|
||
|
|
|
||
|
|
**Docker host network mode** in LXC containers can cause issues with multiple network interfaces. NPMplus appears to be binding to `eth1` (192.168.11.167) instead of `eth0` (192.168.11.166).
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Solution Options
|
||
|
|
|
||
|
|
### Option 1: Update NPMplus Configuration to Use 192.168.11.167 (Quick Fix)
|
||
|
|
|
||
|
|
**Update NPMplus proxy host configuration** to forward to VMID 5000 using the correct IP:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Check current configuration
|
||
|
|
ssh root@192.168.11.10 "ssh root@r630-01 'pct exec 10233 -- docker exec npmplus node -e \"const Database = require(\\\"better-sqlite3\\\"); const db = new Database(\\\"/data/npmplus/database.sqlite\\\"); const host = db.prepare(\\\"SELECT * FROM proxy_host WHERE domain_names LIKE \\\\\\\"%explorer.d-bis.org%\\\\\\\"\\\").get(); console.log(JSON.stringify(host, null, 2)); db.close();\"'"
|
||
|
|
|
||
|
|
# Update forward_host to 192.168.11.140 (VMID 5000) - this should already be correct
|
||
|
|
# The issue is NPMplus itself is on 192.168.11.167, not 192.168.11.166
|
||
|
|
```
|
||
|
|
|
||
|
|
**Note**: The proxy host configuration (forwarding to VMID 5000) should already be correct. The issue is that external connections need to reach NPMplus on 192.168.11.167.
|
||
|
|
|
||
|
|
### Option 2: Update UDM Pro Port Forwarding (Recommended)
|
||
|
|
|
||
|
|
**Change port forwarding rules** to forward to **192.168.11.167** instead of 192.168.11.166:
|
||
|
|
|
||
|
|
1. Access UDM Pro Web UI
|
||
|
|
2. Go to: Settings → Firewall & Security → Port Forwarding
|
||
|
|
3. Find rules for `76.53.10.36:80/443`
|
||
|
|
4. Change destination IP from `192.168.11.166` to `192.168.11.167`
|
||
|
|
5. Save and wait 30 seconds
|
||
|
|
|
||
|
|
### Option 3: Fix Container Network (Long-term Fix)
|
||
|
|
|
||
|
|
**Remove duplicate network interface** or configure NPMplus to use eth0:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
ssh root@r630-01
|
||
|
|
|
||
|
|
# Check current network config
|
||
|
|
pct config 10233 | grep net
|
||
|
|
|
||
|
|
# Option A: Remove net1 (if not needed)
|
||
|
|
pct set 10233 --delete net1
|
||
|
|
|
||
|
|
# Option B: Or ensure NPMplus binds to eth0
|
||
|
|
# This may require recreating Docker container with bridge network
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Immediate Action Required
|
||
|
|
|
||
|
|
### Step 1: Update UDM Pro Port Forwarding
|
||
|
|
|
||
|
|
**Change destination IP from 192.168.11.166 to 192.168.11.167**
|
||
|
|
|
||
|
|
1. UDM Pro Web UI → Settings → Firewall & Security → Port Forwarding
|
||
|
|
2. Edit rules for `76.53.10.36:80/443`
|
||
|
|
3. Change destination: `192.168.11.166` → `192.168.11.167`
|
||
|
|
4. Save
|
||
|
|
|
||
|
|
### Step 2: Verify NPMplus Proxy Host Configuration
|
||
|
|
|
||
|
|
**Ensure explorer.d-bis.org forwards to VMID 5000 (192.168.11.140)**:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
ssh root@192.168.11.10 "ssh root@r630-01 'pct exec 10233 -- docker exec npmplus node -e \"const Database = require(\\\"better-sqlite3\\\"); const db = new Database(\\\"/data/npmplus/database.sqlite\\\"); const host = db.prepare(\\\"SELECT domain_names, forward_host, forward_port FROM proxy_host WHERE domain_names LIKE \\\\\\\"%explorer.d-bis.org%\\\\\\\"\\\").get(); console.log(JSON.stringify(host, null, 2)); db.close();\"'"
|
||
|
|
```
|
||
|
|
|
||
|
|
**Expected**: Should show `forward_host: "192.168.11.140"` (VMID 5000)
|
||
|
|
|
||
|
|
### Step 3: Test External Access
|
||
|
|
|
||
|
|
After updating port forwarding:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# From external network (tethering)
|
||
|
|
curl -I https://explorer.d-bis.org
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Verification Commands
|
||
|
|
|
||
|
|
### Test NPMplus Direct Access
|
||
|
|
```bash
|
||
|
|
# Should work
|
||
|
|
curl -I http://192.168.11.167:80
|
||
|
|
|
||
|
|
# Should fail
|
||
|
|
curl -I http://192.168.11.166:80
|
||
|
|
```
|
||
|
|
|
||
|
|
### Test NPMplus → VMID 5000
|
||
|
|
```bash
|
||
|
|
ssh root@r630-01
|
||
|
|
pct exec 10233 -- curl -H "Host: explorer.d-bis.org" http://192.168.11.140:80
|
||
|
|
```
|
||
|
|
|
||
|
|
### Test External Access
|
||
|
|
```bash
|
||
|
|
# From external network
|
||
|
|
curl -v https://explorer.d-bis.org
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Summary
|
||
|
|
|
||
|
|
**Problem**: NPMplus was configured to use 192.168.11.166, but it's actually accessible on 192.168.11.167
|
||
|
|
|
||
|
|
**Solution**: Update UDM Pro port forwarding rules to use 192.168.11.167
|
||
|
|
|
||
|
|
**Status**: ✅ **FIX IDENTIFIED** - Update port forwarding destination IP
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
**Next Step**: Update UDM Pro port forwarding to use 192.168.11.167 instead of 192.168.11.166
|