Skip to main content
Mole reading FAQ

Frequently Asked Questions

General

What is Muti Metroo?

Muti Metroo is a userspace mesh networking agent that creates virtual TCP tunnels across different transport protocols. It enables multi-hop routing with SOCKS5 proxy ingress and CIDR-based exit routing.

Do I need root to run Muti Metroo?

No. Muti Metroo runs entirely in userspace. However, you may need root for:

  • Ports below 1024
  • Installing as a system service
  • Setting capabilities

What platforms are supported?

  • Linux (amd64, arm64)
  • macOS (amd64, arm64)
  • Windows (amd64)

What Go version is required?

Go 1.23 or later for building from source.

Networking

What transport should I use?

Use CaseRecommended
Best performanceQUIC
Corporate firewallHTTP/2 or WebSocket
Through HTTP proxyWebSocket
Maximum compatibilityWebSocket

See Transports for details.

How many hops can I have?

Theoretically, up to 255 (max_hops). Practically, limit to:

  • 8-12 for interactive use (SSH)
  • 6-10 for streaming
  • 4-6 for high-latency WAN

Can I mix transport types?

Yes. Each peer connection can use a different transport:

peers:
- transport: quic
address: "direct-peer:4433"
- transport: ws
address: "wss://proxy-peer:443/mesh"

Does Muti Metroo support IPv6?

Yes. IPv6 is supported for:

  • Listener addresses
  • Peer addresses
  • Exit routes

Security

How is traffic encrypted?

All peer connections use TLS 1.3 with:

  • AES-256-GCM or ChaCha20-Poly1305 encryption
  • ECDHE key exchange
  • Perfect forward secrecy

Is mutual TLS (mTLS) required?

No, but it's recommended for production. Without mTLS, any client can connect if they can reach the port.

Can I use Let's Encrypt certificates?

Yes, for listeners. However, you'll also need:

  • A CA for signing client certificates (for mTLS)
  • Agent certificates signed by your CA

How do I rotate certificates?

  1. Generate new certificates before old ones expire
  2. Deploy new certificates
  3. Restart agents
  4. Remove old certificates

See TLS Certificates for details.

SOCKS5

What SOCKS5 features are supported?

  • CONNECT command: Yes
  • BIND: No
  • UDP ASSOCIATE: No
  • IPv4/IPv6: Yes
  • Domain names: Yes
  • No auth: Yes
  • Username/password: Yes

Can I use SOCKS5 with browsers?

Yes. Configure your browser's proxy settings:

  • SOCKS Host: localhost (or agent address)
  • Port: 1080 (or configured port)
  • SOCKS version: 5

How do I use SOCKS5 with SSH?

ssh -o ProxyCommand='nc -x localhost:1080 %h %p' user@host

Or in ~/.ssh/config:

Host myhost
ProxyCommand nc -x localhost:1080 %h %p

Performance

How much memory does Muti Metroo use?

Base memory plus:

  • 256 KB per stream per hop (default buffer)

Example: 1000 streams x 3 hops x 256 KB = 768 MB

How fast is Muti Metroo?

Throughput depends on:

  • Network speed between hops
  • Number of hops
  • Transport type (QUIC is fastest)
  • Buffer size

Latency overhead:

  • LAN: 1-5ms per hop
  • WAN: 50-200ms per hop

Can I run multiple agents on one machine?

Yes. Use different:

  • Data directories
  • Port numbers
  • Agent IDs

Configuration

Can I reload configuration without restart?

Currently, no. Restart the agent to apply configuration changes.

How do I use environment variables?

agent:
log_level: "${LOG_LEVEL:-info}"

socks5:
auth:
users:
- username: "${USER}"
password_hash: "${PASS_HASH}"

Where should I put the configuration file?

  • Development: ./config.yaml
  • Production: /etc/muti-metroo/config.yaml
  • Docker: /app/config.yaml

Deployment

How do I run Muti Metroo as a service?

# Linux
sudo ./muti-metroo service install -c /etc/muti-metroo/config.yaml
sudo systemctl enable --now muti-metroo

# Windows (as Administrator)
muti-metroo.exe service install -c C:\config\config.yaml

Can I run Muti Metroo in Docker?

Yes. See Docker Deployment.

Can I run Muti Metroo in Kubernetes?

Yes. See Kubernetes Deployment.

Troubleshooting

How do I enable debug logging?

agent:
log_level: "debug"

Or at runtime:

./muti-metroo run -c config.yaml --log-level debug

How do I check if agents are connected?

curl http://localhost:8080/healthz | jq '.peers'

How do I check routes?

curl http://localhost:8080/healthz | jq '.routes'

Where are the logs?

  • Foreground: stderr
  • systemd: journalctl -u muti-metroo
  • Docker: docker logs <container>

How do I get help?

  1. Check this documentation
  2. Enable debug logging and review logs
  3. Search existing issues
  4. Open a new issue with:
    • Configuration (redacted)
    • Logs
    • Steps to reproduce

Features

Can I execute commands on remote agents?

Yes, using RPC:

muti-metroo rpc agent-id whoami

RPC must be enabled and configured. See RPC.

Can I transfer files?

Yes:

# Upload
muti-metroo upload agent-id ./local.txt /remote/path.txt

# Download
muti-metroo download agent-id /remote/path.txt ./local.txt

File transfer must be enabled. See File Transfer.

Is there a web interface?

Yes. Access the dashboard at:

http://localhost:8080/ui/

See Web Dashboard.

Can I get Prometheus metrics?

Yes. Metrics are available at:

http://localhost:8080/metrics

See Metrics.

Next Steps