Konstas.Engineering Notes
Networking · Cybersecurity · Infrastructure
Systems

Bitcoin LXD Sandbox — Network Isolation Analysis

Articles · 2026 · Ioannis (John) Konstas

Analysis of a Bitcoin node running inside an LXD container (bitcoin-sandbox) on Ubuntu 24.04, confirming correct network isolation from the host LAN.


Container Status

lxc list
+-----------------+---------+--------------------+-----------------------------------------------+
|      NAME       |  STATE  |        IPV4        |                     IPV6                      |
+-----------------+---------+--------------------+-----------------------------------------------+
| bitcoin-sandbox | RUNNING | 10.76.85.28 (eth0) | fd42:378b:51f4:dbd1:216:3eff:fea5:503c (eth0)|
+-----------------+---------+--------------------+-----------------------------------------------+

Listening Ports

lxc exec bitcoin-sandbox -- ss -tuln
PortProtocolService
8333TCP (0.0.0.0 + [::])Bitcoin P2P — accepts inbound connections
8332TCP (127.0.0.1 only)Bitcoin RPC — localhost only, not exposed externally
8334TCP (127.0.0.1 only)ZMQ / internal Bitcoin service
22TCPSSH — container management
53UDP/TCPLocal DNS resolver

Key finding: RPC (8332) is bound to 127.0.0.1 only — it cannot be reached from outside the container.


LAN Isolation Test

lxc exec bitcoin-sandbox -- ping -c 3 192.168.1.1
# Result: 100% packet loss

The container cannot reach your internal LAN. Isolation is confirmed.


LXD Bridge Configuration

name: lxdbr0
config:
  ipv4.address: 10.76.85.1/24
  ipv4.nat: "true"
  ipv6.address: fd42:378b:51f4:dbd1::1/64
  ipv6.nat: "true"

Security Assessment

CheckResult
Container isolated from LAN✅ Confirmed (100% packet loss to 192.168.1.1)
RPC port externally accessible✅ No — bound to 127.0.0.1 only
Only expected ports open✅ 8333 (P2P), 8332 (RPC local), 22 (SSH)
Internet access for P2P✅ Enabled via NAT
IPv6 ULA (not publicly routable)✅ fd42::/7 prefix — unique local only

Useful Commands

# Enter the container
lxc exec bitcoin-sandbox -- bash

# Check container network
lxc exec bitcoin-sandbox -- ip addr show eth0

# Monitor open ports
lxc exec bitcoin-sandbox -- ss -tuln

# Check Bitcoin node status from host
lxc exec bitcoin-sandbox -- bitcoin-cli getblockchaininfo

# Stop the container
lxc stop bitcoin-sandbox

# Start the container
lxc start bitcoin-sandbox

Conclusion

The sandbox is operating correctly. Bitcoin P2P traffic flows through NAT to the Internet while the internal LAN remains fully protected. All RPC endpoints are localhost-only. The container cannot be used as a pivot point to reach internal network devices.


← All articles

Research and direction by Ioannis (John) Konstas; compiled and finalized with AI assistance.

👁· views