Access dsh web on your LAN: binding, firewall and TLS

Configuration & UsagePublished 2026-10-17Author: DeepSeek Plugin Market
DeepSeek Harnessdsh webLANbind addressself-signed certificatefirewall
Open DeepSeek Harness dsh web to phones and computers on your LAN: three bind-address choices, firewall rules, certificate trust and an SSH tunnel option.

Sharing DeepSeek Harness dsh web with phones or another computer on the LAN requires three things at once: a bind address, an allowed port, and device trust. Changing only the bind or only the firewall always fails; the order is bind externally, allow the port, then solve certificates. Binding all interfaces turns a local tool into a LAN service, so be careful on untrusted networks.

Three things LAN access to DeepSeek Harness dsh web requires

Bottom line: the bind address decides who can connect, the firewall decides whether packets pass, and the certificate decides whether browsers trust it. All three must hold.

LayerFailure symptomFix
Bind addressWorks locally, times out elsewhereBind an external or all-interfaces address
FirewallPing works, port does notAllow the port, restricted to your subnet
Certificate trustConnects but reports insecureTrust the self-signed cert or use a trusted CA

Three DeepSeek Harness LAN access options

Bottom line: bind externally for temporary sharing on a trusted segment, proxy for the smallest exposure, or tunnel when no port may be opened.

OptionApproachBest forCost
A. Bind to all interfacesListen externally and allow the portHome or office LAN sharingAnyone on the segment can reach it; restrict sources
B. Loopback plus proxyService stays local, proxy faces the LANWhen you need HTTPS and authOne more component to maintain
C. SSH tunnelService stays local, clients forwardTemporary single-user accessSSH setup per device

Option A: bind DeepSeek Harness dsh web to all interfaces

Bottom line: change the bind address and allow the port. Two steps; the shortest path for trusted LAN use.

  1. Start with an explicit bind address and port (flag names per dsh web --help):
bash
dsh web --host 0.0.0.0 --port 3080
# expected: startup reports listening on 0.0.0.0:3080
  1. Verify locally first to rule out service problems:
bash
curl -I http://127.0.0.1:3080      # expected: HTTP response headers
  1. Find the machine's LAN address:
bash
# macOS / Linux
ipconfig getifaddr en0 2>/dev/null || hostname -I
# Windows (PowerShell)
# (Get-NetIPAddress -AddressFamily IPv4).IPAddress
  1. Open http://<lan-ip>:3080 from the other device.
  2. If unsure, use the three-step diagnostic in the last section.

Option B: loopback plus reverse proxy for DeepSeek Harness dsh web

Bottom line: keep dsh web on loopback and let a proxy serve the LAN. This centralizes HTTPS and authentication and suits sharing with a few people.

  1. Leave the service on loopback; the proxy listens externally.
  2. Satisfy the three hard requirements — WebSocket upgrade, no buffering, long timeouts. See dsh web behind a reverse proxy.
  3. Add source restrictions at the proxy — your subnet only, optionally with basic auth.
  4. Use a trusted certificate — an internal CA certificate means each device trusts it once.
  5. Apply the same three-step diagnostic if access fails.

Option C: SSH tunnel to DeepSeek Harness dsh web

Bottom line: the service stays local and clients forward the port. No external port is opened, which suits temporary single-user use.

  1. Start the service normally (loopback is enough).
  2. Forward a local port from the phone or another device (illustrative; the exact command depends on your SSH client):
bash
ssh -N -L 3080:127.0.0.1:3080 user@your-computer-ip
# expected: local port 3080 forwards to the remote dsh web
  1. Open http://127.0.0.1:3080 locally.
  2. Trade-off: you establish the tunnel each time and sharing with several people is awkward, but the service exposure and firewall never change.

Bind address choices for DeepSeek Harness dsh web

Bottom line: loopback is local only, a specific interface IP is subnet-limited, and all interfaces is everything the machine can reach. Choose by who should connect, not by whether they can.

  1. 127.0.0.1 (loopback): the default; safest and most often mistaken for a broken service.
  2. A specific interface IP (such as 192.168.1.20): limits listening to one interface, useful on machines attached to multiple networks.
  3. 0.0.0.0 (all interfaces): listens everywhere, so risk equals every network the machine can reach. Always pair with firewall source restrictions.
  4. Switch back after use: treating all-interfaces binding as a permanent default is unnecessary exposure.

Firewall and certificate trust for DeepSeek Harness dsh web

Bottom line: allow exactly port plus source subnet; certificate trust is a one-time action per device, and self-signed means trusting on every device.

  1. Pick a high port to avoid reserved ranges and collisions with common services.
  2. Allow precisely (illustrative):
bash
# Linux (ufw example)
sudo ufw allow from 192.168.1.0/24 to any port 3080 proto tcp
# expected: your subnet connects, other sources remain blocked
  1. Self-signed trust in three steps: generate the certificate, enable HTTPS on the service, then install and trust it on each device (iOS requires enabling trust in certificate settings; Android installs it as a user certificate). Verify after installing.
  2. Easier alternative: an internal CA or public-domain certificate removes per-device trust work.
  3. Encryption is not authorization: keep source restrictions after trust is established.

Three-step verification for DeepSeek Harness LAN access

Bottom line: curl on the host, ping from the other device, then probe the port. These isolate service, network and firewall problems in that order.

  1. Service: curl -I http://127.0.0.1:<port> on the host. Failing here means the service (port taken or permission), not the LAN.
  2. Network: ping <lan-ip> from the other device. Failing means the devices are not on the same segment (guest networks and AP isolation are common).
  3. Port: ping succeeds but the port does not — a firewall block. Probe the port, then allow it as above.
  4. Then check the bind: confirm the startup output shows an external address rather than loopback.
  5. Read service logs: whether requests arrive is the fastest way to separate "never connected" from "connected but errored."

DSH plugin troubleshooting for LAN sharing

Bottom line: confirm reachability first, then plugin behavior. They belong to different layers.

  1. Network layer first using the three steps above.
  2. Application layer next: if the page opens but plugin features fail, treat it as a plugin-side problem such as container or permission prerequisites — see installing DeepSeek Harness in Docker and fixing dsh web port conflicts.
  3. Write down the plugin list when sharing, and align it through the installed list in DSH Plugin Hub so "it works here but not there" does not happen.
  4. Clean up afterwards: restore the loopback bind and remove temporary firewall rules.
  5. LAN and internet are different problems: internet exposure needs a proxy with TLS and auth, not the LAN recipe.
  6. Repair status, stated honestly: bind flags and commands follow the official CLI notes; firewall, certificate and SSH tunnel specifics vary by operating system and device. Confirm exact dsh web flag names with --help.

Sources: apps/cli/README.md, Microsoft Learn · WSL networking, nginx Docs · WebSocket proxying.

FAQ

Why can only my own machine open DeepSeek Harness dsh web by default?

In DeepSeek Harness, dsh web binds to the loopback address by default because the single-machine case is its design premise. Sharing it with other devices on the same LAN requires two changes: bind to an external interface (for example all interfaces) and allow the port through the host firewall. Both are needed; either alone fails.

What are the risks of binding DeepSeek Harness dsh web to 0.0.0.0?

In DeepSeek Harness, binding 0.0.0.0 listens on every interface, so beyond your LAN, anyone on an untrusted network — a cafe Wi-Fi, for example — may reach it if the machine has a routable address. Use it only on trusted segments, restrict sources with a firewall, and add authentication when needed. For internet exposure, use a reverse proxy with TLS and auth rather than binding all interfaces directly.

A phone shows an untrusted certificate when opening DeepSeek Harness dsh web. How do I handle it?

In DeepSeek Harness, self-signed certificates are not trusted by default and must be installed manually per device: iOS requires installing the profile and enabling trust in certificate settings, Android requires installing it as a user certificate. The easier route is a certificate from a trusted source, such as an internal CA or a public domain, or plaintext confined to an isolated trusted network.

Can I use DeepSeek Harness dsh web on my phone without opening a firewall port?

Yes: an SSH tunnel forwards a local port to the DeepSeek Harness dsh web port on your computer, so the service never listens externally. The cost is configuring an SSH client and key on the phone and establishing the tunnel each time, which suits temporary single-user access rather than shared long-term use.

What is the fastest order to debug DeepSeek Harness dsh web being unreachable on the LAN?

Three steps: curl the port on the host to confirm DeepSeek Harness itself is fine, ping the host from the other device to confirm basic connectivity, then probe the port to see whether a firewall blocks it. The three steps isolate service, network and firewall problems — faster than repeatedly changing the bind address.

Related Terms

bind address
A bind address is the local network interface a service listens on. DeepSeek Harness dsh web binds loopback by default, so only the local machine can connect until you bind an external or all-interfaces address.— https://github.com/deepseek-ai/deepseek-harness/blob/master/apps/cli/README.md
loopback address
The loopback address (127.0.0.1) is only valid inside the local machine; packets never leave the network interface. It is the default bind target for dsh web and the most common reason others cannot connect.— https://learn.microsoft.com/windows/wsl/networking
self-signed certificate
A self-signed certificate is a TLS certificate signed with its own private key rather than by a certificate authority. It can encrypt LAN traffic to dsh web, but each device must trust it manually.— https://nginx.org/en/docs/http/websocket.html
SSH tunnel
An SSH tunnel forwards ports over an established SSH connection, letting you reach a remote service without listening externally. It is a common way to use dsh web from a phone when the service runs on your computer.— https://learn.microsoft.com/windows/wsl/networking

Sources