Windows komut satırından belirli bir bağlantı noktasının durumunu incelemenin bir yolu var mı? Tüm portları incelemek için netstat kullanabileceğimi biliyorum ama netstat yavaş ve belirli bir porta bakmak muhtemelen değil.
Windows komut satırından belirli bir bağlantı noktasının durumunu incelemenin bir yolu var mı? Tüm portları incelemek için netstat kullanabileceğimi biliyorum ama netstat yavaş ve belirli bir porta bakmak muhtemelen değil.
Yanıtlar:
İşte liman bulmanın kolay çözümü ...
Cmd cinsinden:
netstat -na | find "8080"
Bash'da:
netstat -na | grep "8080"
PowerShell'de:
netstat -na | Select-String "8080"
-o
bayraktan (yani -nao
burada) bahsetmeye değer .
Sen kullanabilirsiniz netstat
ile kombine -np
etmek bayraklar ve bir boru find
veya findstr
komutlar.
Temel Kullanım şöyledir:
netstat -np <protocol> | find "port #"
Örneğin, TCP'de 80 numaralı bağlantı noktasını denetlemek için şunları yapabilirsiniz: netstat -np TCP | find "80"
Bu, aşağıdaki tür çıktılar verir:
TCP 192.168.0.105:50466 64.34.119.101:80 ESTABLISHED
TCP 192.168.0.105:50496 64.34.119.101:80 ESTABLISHED
Gördüğünüz gibi, bu yalnızca TCP protokolü için 80 numaralı bağlantı noktasındaki bağlantıları gösterir.
Kullanırım:
netstat –aon | find "<port number>"
burada o süreç kimliğini temsil eder. şimdi işlem kimliğiyle her şeyi yapabilirsiniz. Süreci sonlandırmak için, örneğin şunu kullanın:
taskkill /F /pid <process ID>
WAMP apache ile sorunum olduğunda, hangi kodu bağlantı noktası 80 kullandığını bulmak için bu kodu kullanın.
netstat -o -n -a | findstr 0.0:80
3068
PID, bu yüzden görev yöneticisinden bulabilir ve bu işlemi durdurabilirim.
Başka bir yerde belirtildiği gibi: netstat'ı uygun anahtarlarla kullanın ve sonuçları find [str] ile filtreleyin
En temel:
netstat -an | find ":N"
veya
netstat -a -n | find ":N"
Yabancı bir liman bulmak için şunları kullanabilirsiniz:
netstat -an | findstr ":N[^:]*$"
Yerel bir bağlantı noktası bulmak için şunları kullanabilirsiniz:
netstat -an | findstr ":N.*:[^:]*$"
Nerede N ilgilendiğiniz noktası numarasıdır.
-n
tüm bağlantı noktalarının sayısal olmasını, yani hizmet adlarına çevrilmiş olarak döndürülmemesini sağlar.
-a
tüm bağlantıları aramanızı sağlar (TCP, UDP, dinleme ...)
Gelen find
dize Eğer liman ön eleme olarak, aksi numara ya yerli ya da yabancı adresleri eşleşebilir, iki nokta üst üste içermelidir.
Gerekirse diğer netstat anahtarlarını kullanarak aramayı daha da daraltabilirsiniz ...
İlave okumalar (^ 0 ^)
netstat /?
find /?
findstr /?
netstat -a -n | find /c "10.240.199.9:8080"
size belirli bir IP ve bağlantı noktasında etkin olan soket sayısı verecektir (Sunucu bağlantı noktası numarası)
FIND: Parameter format not correct
Windows 8 Kullanıcısı için: Komut İstemi'ni açın, netstat -an | "port numaranızı" bulun , girin.
Yanıt LISTENING gibi geliyorsa , bağlantı noktası kullanımdadır, aksi takdirde ücretsizdir.
@ EndUzr yanıtını iyileştirmek için :
Yabancı bir bağlantı noktası (IPv4 veya IPv6) bulmak için şunları kullanabilirsiniz:
netstat -an | findstr /r /c:":N [^:]*$"
Yerel bir bağlantı noktası (IPv4 veya IPv6) bulmak için şunları kullanabilirsiniz:
netstat -an | findstr /r /c:":N *[^ ]*:[^ ]* "
N, ilgilendiğiniz bağlantı noktası numarasıdır. "/ R" anahtarı ona regexp olarak işlemesini söyler. "/ C" anahtarı findstr komutunun, bir boşluğu arama dizesi sınırlayıcısı olarak ele almak yerine, arama dizelerine boşluk eklemesine olanak tanır. Bu ek alan daha uzun portlara kötü muamele yapılmasını önler - örneğin, ": 80" vs ": 8080" ve diğer port munging sorunları.
Yerel RDP sunucusuna uzak bağlantıları listelemek için, örneğin:
netstat -an | findstr /r /c:":3389 *[^ ]*:[^ ]*"
Veya DNS'inize kimin dokunduğunu görmek için:
netstat -an | findstr /r /c:":53 *[^ ]*:[^ ]*"
Yalnızca yerel bağlantı noktalarını hariç tutmak istiyorsanız, "/ v" ile bir dizi istisna kullanabilir ve ters eğik çizgiyle karakterlerden kaçabilirsiniz:
netstat -an | findstr /v "0.0.0.0 127.0.0.1 \[::\] \[::1\] \*\:\*" | findstr /r /c:":80 *[^ ]*:[^ ]*"
80 numaralı bağlantı noktası için komut şöyle olur: netstat -an | find "80" n bağlantı noktası için komut şu olurdu: netstat -an | "n" bul
Burada, netstat makinenize talimattır
-a: Tüm bağlantıları ve dinleme bağlantı noktalarını görüntüler -n: Tüm adresleri ve yönergeleri sayısal biçimde görüntüler (-a'dan gelen çıktı makine adları içerebileceğinden bu gereklidir)
Ardından, önceki komutun çıktısını "Pattern Match" için bir find komutu.
RHEL 7'de, LISTEN Durumunda birkaç bağlantı noktasını filtrelemek için bu komutu kullanıyorum:
sudo netstat -tulpn | grep LISTEN | egrep '(8080 |8082 |8083 | etc )'
Bu komut tüm bağlantı noktalarını ve hedef adreslerini gösterir:
netstat -f
"Lsof -i tcp: port #" lsof komutunu kullanın, işte bir örnek.
$ lsof -i tcp:1555
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 27330 john 121u IPv4 36028819 0t0 TCP 10.10.10.1:58615->10.10.10.10:livelan (ESTABLISHED)
java 27330 john 201u IPv4 36018833 0t0 TCP 10.10.10.1:58586->10.10.10.10:livelan (ESTABLISHED)
java 27330 john 264u IPv4 36020018 0t0 TCP 10.10.10.1:58598->10.10.10.10:livelan (ESTABLISHED)
java 27330 john 312u IPv4 36058194 0t0 TCP 10.10.10.1:58826->10.10.10.10:livelan (ESTABLISHED)
netstat
yalnızca-n
anahtarı kullanmazsanız yavaştır , yani çok sayıda DNS araması yapmak zorundadır.