offene Ports über Terminal ermitteln

A

a|s

Neues Mitglied
Thread Starter
Dabei seit
05.02.2007
Beiträge
9
Reaktionspunkte
0
Hi alle zusammen,

Ich versuch gerade herauszufinden, wie ich mir mit dem Terminal offene Ports und die dazugehörigen Programme anzeigen lassen kann. Kann mir jemand vielleicht einen ähnlichen Befehl posten wie netstat –nlp (dieser geht nicht unter Mac), bzw sagen wie es anders geht?

Danke

a|s
 
1) man netstat
2) lsof

Alex
 
lsof listet, wie man den Manpages ja entnehmen kann, die offenen Files. Die offenen Ports findet man am ehesten (Router hat auch ne FW) durch einen Portscan auf sich selbst heraus. nmap würde sich da nahezu aufdrängen.
 
lsof listet, wie man den Manpages ja entnehmen kann, die offenen Files. Die offenen Ports findet man am ehesten (Router hat auch ne FW) durch einen Portscan auf sich selbst heraus. nmap würde sich da nahezu aufdrängen.
lsof -i [46][protocol][@hostname | hostaddr][:service | port]
merke: "everything is a file"
Damit kann man anzeigen welcher Dienst an welchem port lauscht.

Code:
for PORT in `seq 1 65535`; do lsof -i :$PORT ;done
sollte in der bash alle offen Ports inklusive zugehörigem Dienst anzeigen
dann weiss man auch gleich welchen Dienst man abschalten muss um einen Port zu schliessen und kann sich die Filtergeschichten sparen.
Magnus
 
Eher nicht. Ich nutze auch eher z-shell. Der Befehl jedenfalls ist falsch. seq ist irgendein Identifier?
 
Und wo kriege ich ihn her?
 
Alternativ, mit Standardmitteln:

Code:
PORT=1
while [ $PORT -le 65535 ]
do
  lsof -i :$PORT

  PORT=`expr $PORT + 1`
done

am besten in ein File kopieren und als Skript ausfuehren.
 
lsof |grep IPv4
lsof |grep IPv6
 
Netzwerk Dienstporgramm, netstat, Status der aktuellen Socket Verbindungen anzeigen
 
Alternativ, mit Standardmitteln:

Code:
PORT=1
while [ $PORT -le 65535 ]
do
  lsof -i :$PORT

  PORT=`expr $PORT + 1`
done

am besten in ein File kopieren und als Skript ausfuehren.
so gehts aucch in der zsh wenn man seq hat:
Code:
for PORT in $(seq 79 81); do lsof -i :$PORT ;done

das geht in der zsh und der bash.
Ist in meinen Augen bisher das eleganteste, einfach weils ein klassischer Einzeiler ist :):
Code:
for PORT in {1..65535}; do lsof -i :$PORT ;done

abgesehen von sgmelin Vorschlag den man noch ganz leicht vereinfachen kann zu
Code:
lsof -i
zumindest unter linux
 
Zuletzt bearbeitet:
Sehr interessant :)

Nur... wie hole ich auf meinen Mac seq. Per portage gibts dazu erst mal nichts, was kompatibel ist; per MacPorts auch nicht. Hmmh...
 
Sehr interessant :)

Nur... wie hole ich auf meinen Mac seq. Per portage gibts dazu erst mal nichts, was kompatibel ist; per MacPorts auch nicht. Hmmh...
Im Zweifelsfall von gnu.org:
list.apple.com
Code:
tar xzvf sh-utils-2.0.tar.gz
cd sh-utils-2.0
./configure --host=powerpc
make
Für intelmacs muss man natürlich --host=powerpc weglassen

I wouldn't advise doing a make install, just copy seq to somewhere in your path.
Code:
cp src/seq /usr/local/bin

Aber wie gesagt
Code:
for i in {1..65535}
geht auch. Das ist zsh, ksh, bash kompatibel. zumindest auf meiner linuxbüchse hier. Da apple auch nur mit Wasser kocht sollte das auch auf osx gehen. Hab grad leider keine Gelegenheit es auszuprobieren.

Magnus
 
Zuletzt bearbeitet:
Zurück
Oben Unten