it-swarm-tr.com

Ubuntu 8.04'te bir portun bulunup bulunmadığını nasıl öğrenebilirim?

Bir bağlantı noktasının zaten açık olup olmadığını söyleyen bash'den çalıştırabileceğim herhangi bir komut var mı?

28
Codebeef

Şu anda bağlantı noktalarını kullanarak "netstat" kullanın.

netstat -antp 
 
 Proto Recv-Q Gönder-Q Yerel Adres Yabancı Adres Durum PID/Program adı 
 tcp 0 0 xxx.xxx.xxx.xxx 0.0.0.0:* DİNLE 16297/adlı 
 Tcp 0 0 xxx.xxx.xxx.xxx:53 0.0.0.0:* LISTEN 16297/adlı 
 Tcp 0 0 xxx.xxx.xxx.xxx:53 0.0.0.0: * DİNLE 16297/adlı 
 Tcp 0 0 127.0.0.1:53 0.0.0.0:* DİNLE 16297/adlı 
37
Caterpillar

Bu (netstat) en hızlı çözümdür ...

netstat -lnt

... ama bu size daha fazla kontrol sağlar (hız pahasına (bazen çok fazla hızda)) ...

lsof -n -i -a -u www-data

Yukarıdaki örnekte size TCP bağlantı noktaları açık ve LISTEN durumunda, AND (-a) Apache'ye ait (www-data) kullanıcı.

13
Xerxes

Tüm iyi cevaplar.

Ancak söz konusu bilgisayarda oturum açıp açmadığınızı söylemezsiniz. P

Değilse, nmap arkadaşınızdır.

yeni başlayanlar için deneyin:

nmap -Otarget

amap ayrıca afiş sayfalarını kaparak sunucu yazılımını tahmin etmeye çalışacak iyi bir seçimdir.

yeni başlayanlar için deneyin:

amaptarget1-6000

8
Matthew

Deneyin

lsof -i :<port number>

Herhangi bir sonuç alırsanız, bir şey dinliyor ve bağlı, örn.

# lsof -i :80
COMMAND   PID   USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
nginx    1833 nobody    3u  IPv4 51091229      0t0  TCP odessa.cheney.net:http->79.173.188.214:52918 (ESTABLISHED)
nginx    1833 nobody    5u  IPv4 46221856      0t0  TCP odessa.cheney.net:http->66.36.243.182:37876 (CLOSE_WAIT)
nginx    1833 nobody    9u  IPv4 34733048      0t0  TCP localhost.localdomain:http (LISTEN)
nginx    1833 nobody   10u  IPv4 34733049      0t0  TCP odessa.cheney.net:http (LISTEN)
nginx    1833 nobody   14u  IPv4 46221857      0t0  TCP odessa.cheney.net:http->66.36.243.182:37880 (CLOSE_WAIT)
nginx    1833 nobody   15u  IPv4 51091030      0t0  TCP odessa.cheney.net:http->msnbot-65-55-106-132.search.msn.com:51708 (ESTABLISHED)
nginx   11832   root    9u  IPv4 34733048      0t0  TCP localhost.localdomain:http (LISTEN)
nginx   11832   root   10u  IPv4 34733049      0t0  TCP odessa.cheney.net:http (LISTEN)
7
Dave Cheney
netstat -tlnp  

tistening olan lcp portlarını göster, sadece numbers göster (isimleri çözme - daha hızlı yapar) ve bunu yapan pişlemini göster dinleme (p yalnızca root iseniz çalışır)

netstat -ulnp  

uistening olan ldp bağlantı noktalarını göster, yalnızca numbers göster (adları çözme - daha hızlı hale getirir) ve bunu yapan pişlemini göster dinleme (p yalnızca root iseniz çalışır)

netstat -unp  

Açık olan ancak dinlemeyen udp bağlantı noktalarını göster, yalnızca numbers göster (adları çözme - daha hızlı olmasını sağlar) ve dinlemeyi yapan pişlemini göster ( p yalnızca root iseniz çalışır)

netstat -an

Kullanımda olan all portlarını göster, sadece numbers göster - isimleri çözme

lsof -i <proto>@<Host>:<port>

örneğin

lsof -i [email protected]:25

localhost 25/TCP'de bir şey dinleyip dinlemediğini görmek için veya

lsof -i [email protected]:636 

herhangi bir Ana Bilgisayar/arabirim için dinleyen (yerel) veya bağlı (yerel veya uzak) herhangi bir soket olup olmadığını görmek için

4
Jason Tan

lsof (açık dosyaları listele), bir işlemin bir bağlantı noktasında dinleyip dinlemediğini görmek için iyi bir araçtır

lsof -P | grep: <port- sayı>

netstat, aktif bağlantı olup olmadığını görmek için iyi bir araçtır.

netstat -n | grep: <port- sayı>

2
Jamie

kaynaştırıcı (psmisc paketinde) kullanıyorum:

kaynaştırıcı -n tcp LİMANI

Bu bağlantı noktasına bağlı işlemin pid değerini geri getirir.

Bu, bir portun dinleyip dinlemediğini bilmekse, iyi eski telnet hile yapar :)

telnet 127.0.0.1 BAĞLANTI NOKTASI

2
Oct

Hangi protokolü kullanmak istediğinizden bahsetmezsiniz, yani TCP veya UDP -) ve “port” un, sistemin soketleri ayırmak için desteklediği kadar ayrıntılı olmadığını fark etmek de önemlidir. sisteminizde birden fazla IP adresi varsa, 80 numaralı bağlantı noktası tüm IP adreslerinde kullanımda olabilir (uygulama "0.0.0.0" veya "::" veya art arda her bir IP adresine bağlanmıştır) veya kullanımda olabilir yalnızca bu IP adreslerinin bir alt kümesinde.

Bir bağlantı noktasının/adresin ücretsiz ve kullanılabilir olup olmadığını belirlemenin en iyi ve en kesin yolu, ona bağlanmaya çalışmaktır. Netcat bunun için kullanışlıdır.

nc -l [-s a.b.c.d] -p NN

TCP port NN açık (isteğe bağlı, varsayılan tüm adresler olacaktır)) bağlanmaya çalışır. a.b.c.d. UDP'de de aynısını yapmak için -u seçeneğini ekleyin.

Ardından, bağlantı noktasının sorduğunuzda gerçekten "açık" olup olmadığını söylemek için - potansiyel güvenlik duvarı kurallarına bakmaya başlamanız gerekir. Yine en kolay şey limana bağlanmaya çalışmaktır. Netcat'i yukarıdaki gibi, sunucuda kullanın ve bir istemciden açtığınız bağlantı noktasına bağlanmayı denemek için netcat'i kullanın.

nc [-u] a.b.c.d NN

-u bayrağı belirtilirse UDP kullanarak a.b.c.d üzerindeki NN bağlantı noktasına bağlanır. Daha sonra input'u client end'e yazabilirsiniz ve sunucuda görünmelidir. Başlamazsa, sistem ve ağa özgü araçlara bakmanız gerekir.

2
colmmacc

Bu tek astar size kullanılan tüm TCP bağlantı noktalarının bir listesini alır.

netstat -ant | sed -e '/^tcp/ !d' -e 's/^[^ ]* *[^ ]* *[^ ]* *.*[\.:]\([0-9]*\) .*$/\1/' | sort -g | uniq

Listede ek bilgi olmadan hat başına bir bağlantı noktası olacaktır.

2
Josiah Johnston

Bunu yapmanın birçok yolu bana linux ve osx üzerinde çalışmadığı ve/veya docker tarafından kullanılan portları veya kökün sahip olduğu işlemleri göstermedikleri için sorunlar verdi. Şimdi sadece bu javascript programını kullanıyorum:

(düğümün kurulu olduğundan ve yalnızca node ile değil nodejs ile çalıştığından emin olun veya programı uygun şekilde değiştirin)

aşağıdakileri check-port yolunuzda veya projenizde

#!/usr/bin/env node
var http = require('http');
var app = new http.Server();
app.listen(process.argv[2], () => {
  process.exit(0)
});

izinleri ayarla

chmod +x path/to/check-port

yolundan koş

check-port 8080

veya aynı dizinden çalıştır

./check-port 8080

şu ana kadar gayet iyi çalışıyor.

0
Alex028502