dsh-port-map
只读的 Linux 端口、服务与 Caddy 路由地图:监听套接字及其所属 unit 或容器、反向服务视图,以及 reverse_proxy 存活检查。需要 iproute2(ss),docker 与 Caddyfile 可选。
安装
dsh plugin --profile web add dsh-port-map
沙箱测试
这个插件还没测过。提交测试 →
README
dsh-port-map
DeepSeek Harness için port,
servis ve Caddy route haritası.
dsh-port-map, yoğun bir sunucunun sürekli sorduğu soruları yanıtlar: *9094'te
ne var? bu portu hangi unit tutuyor? her Caddy route'u hâlâ canlı bir şeye mi
bakıyor? internete ne açık?*
Bütün araçlar salt-okunurdur. Hiçbir şey açılmaz, kapatılmaz, yeniden
yapılandırılmaz.
Araçlar
Araç · Tür · Ne yapar
listening_ports · salt-okunur · TCP dinleyen soketler: port, bağlı adres, erişilebilirlik kapsamı (public / localhost / interface), süreç ve sahibi olan systemd unit veya docker konteyneri. Filtre: scope, port.
service_map · salt-okunur · Ters görünüm: her unit/konteyner ve dinlediği portlar; ayrıca sahibi olmayan portlar.
caddy_routes · salt-okunur · Caddyfile'ı site → yol → reverse_proxy hedefi olarak ayrıştırır, her hedefi dinleyen soketlerle karşılaştırır.
url_check · salt-okunur · İzin listesindeki host için HTTP durum kodu, gecikme ve içerik tipi. Yönlendirme raporlanır, takip edilmez.
Örnek çıktı
Listening TCP sockets (39): port address scope owner 8790 127.0.0.1 localhost dsh-web.service 1933 127.0.0.1 localhost docker:openviking 9090 0.0.0.0 public map-service.service Bound to all interfaces: 22, 443, 8642, 8799, 9090, 9091, 9094, 11434
Caddy routes (11) from /etc/caddy/Caddyfile: example.org /panel → 127.0.0.1:8788 · up (vps-panel.service) example.org /gone → 127.0.0.1:9999 · DOWN
Kurulum
dsh plugin --profile web add dsh-port-map systemctl restart dsh-web # veya DSH sürecinizi yeniden başlatın
- id: port-map
config:
caddyfile: /etc/caddy/Caddyfile
urlCheck:
hosts:
- 127.0.0.1
- localhost
- example.org
timeoutMs: 10000
docker: true
safety:
timeoutMs: 15000
maxOutputBytes: 65536
Ayarlar
Anahtar · Varsayılan · Anlamı
caddyfile · /etc/caddy/Caddyfile · caddy_routes tarafından okunan dosya.
urlCheck.hosts · ["127.0.0.1", "localhost"] · url_check'ın istek atabileceği host'lar; diğerleri reddedilir.
urlCheck.timeoutMs · 10000 · İstek başına zaman aşımı.
docker · true · Yayınlanan portlar için konteyner adlarını çözer.
safety.timeoutMs · 15000 · Varsayılan komut zaman aşımı.
safety.maxOutputBytes · 65536 · Çağrı başına çıktı sınırı.
Sahip nasıl bulunur
1. ss -tlnpH soketi, bağlı adresi ve sahibi PID'i verir.
2. PID'in cgroup'u systemd unit'ini verir (/proc/<pid>/cgroup).
3. docker-proxy soketi, yayınlanan port üzerinden konteynerle eşleştirilir
(docker ps --format '{{.Names}}\t{{.Ports}}'), böylece haritada
docker.service değil docker:openviking görünür.
Hiçbir şey tahmin edilmez: sahibi bulunamayan soket unowned:<süreç> olarak
raporlanır.
Dürüst sınırlar
- Salt-okunur: raporlar, düzeltmez. Güvenlik duvarı değiştirmez, servis
yeniden başlatmaz.
- Caddyfile ayrıştırıcısı site bloklarını,
handle/handle_pathve
reverse_proxy (opsiyon bloğuyla birlikte) anlar. !!js ifadeleri, import
edilen snippet'ler veya php_fastcgi benzeri direktifler modellenmez ve
raporlanmaz.
- Docker ad çözümü
docker ps'in çalışmasına bağlıdır; çalışmazsa soket yine
docker:<id> işaretiyle listelenir.
url_checkyönlendirmeyi takip etmez; zincir tek adım olarak raporlanır.
Gereksinimler
- DSH
>= 0.2.1-rc.4(Node^22.19.0 || >=24.0.0). - Soket araçları için
ss(iproute2);dockeropsiyonel; Caddyfile opsiyonel.
Geliştirme
npm run link-peers node --test
Lisans
MIT
以上内容来自 npm 上的 README,我们只做格式化,不改内容。
版本
npm 上共发布:2,最后更新 2026-11-01