• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

nc sagt immer usage

tomycat

Member
hi,
ich will einfach nc als server starten.
Code:
tomycat@linux-a4gd:~/test> nc -v -l -p 31337
usage: nc [-46DdhklnrStUuvzC] [-i interval] [-P proxy_username] [-p source_port]
          [-s source_ip_address] [-T ToS] [-w timeout] [-X proxy_protocol]
          [-x proxy_address[:port]] [hostname] [port[s]]
tomycat@linux-a4gd:~/test>

l = listen
p = port
v = ?

Das ist ein test tut.
Was macht v genau? Warum kommt die usage auch ohne -v ?
 
OP
T

tomycat

Member
ja,habe ich.
-v Have nc give more verbose output.
aber ich werde nicht daraus schau.

terminal 2
nc -l 1234 > test.txt

terminal 3
nc 127.0.0.1 1234 < test.txt
bash: test.txt: Datei oder Verzeichnis nicht gefunden

Auf terminal 2 tut sich nichts.
 

framp

Moderator
Teammitglied
tomycat schrieb:
...terminal 3
nc 127.0.0.1 1234 < test.txt
bash: test.txt: Datei oder Verzeichnis nicht gefunden

Auf terminal 2 tut sich nichts.
Wenn keine Eingabedatei fuer den Sender gefunden wird kann natuerlich auch nichts gesendet werden :roll: Auch solltst Du nicht unbedingt dieselbe Datei als Aus- und Eingabedatei benutzen wenn Du Dich mit beiden Konsolen im selben Verzeichnis befindest.
 
A

Anonymous

Gast
tomycat schrieb:
terminal 2
nc -l 1234 > test.txt

terminal 3
nc 127.0.0.1 1234 < test.txt
bash: test.txt: Datei oder Verzeichnis nicht gefunden

mit diesem blödsinnigem Test dürfte wohl auch nichts gehen. Mal abgesehen, was ist das für ein "nc" bzw was hast du für ein System. die Dinger sind auf verschieden Systemen mit verschieden Optionen kompiliert und mal heißen sie "nc" und mal "netcat". Suse bevorzugt immer "netcat" und hat die Option "-e" komplett deaktiviert.

hier mal dein Test mit sauberen Optionen und logisch richtig für das Suse-netcat
Code:
rob@rob-linux:/tmp> netcat -l -p 1234 > test.txt &
[1] 7773
rob@rob-linux:/tmp> echo -en "hallo netcat test\ndas ist ein Test \nund so sollte es gehen\n" | netcat 127.0.0.1 1234
[1]+  Fertig                  netcat -l -p 1234 > test.txt
rob@rob-linux:/tmp> more test.txt
hallo netcat test
das ist ein Test
und so sollte es gehen
eventuelle Firewall natürlich vorher überprüfen ob sie das überhaupt zulassen würde.

robi
 
OP
T

tomycat

Member
hi,
firewall habe ich mal abgeschalten.
ich will NUR ein test machen mit nc und die -v Funktion verstehen.
Bin einfach zu blöd dazu.
Code:
tomycat@linux-a4gd:~/Dokumente> netcat -l -p 1234 > test.txt &
[1] 2977
usage: nc [-46DdhklnrStUuvzC] [-i interval] [-P proxy_username] [-p source_port]
          [-s source_ip_address] [-T ToS] [-w timeout] [-X proxy_protocol]
          [-x proxy_address[:port]] [hostname] [port[s]]
[1]+  Exit 1                  netcat -l -p 1234 > test.txt
tomycat@linux-a4gd:~/Dokumente> echo -en "hallo netcat test\ndas ist ein Test \nund so sollte es gehen\n" | netcat 127.0.0.1 1234
tomycat@linux-a4gd:~/Dokumente> more test.txt
tomycat@linux-a4gd:~/Dokumente>
 

framp

Moderator
Teammitglied
man nc schrieb:
-p source_port
Specifies the source port nc should use, subject to privilege
restrictions and availability. It is an error to use this option
in conjunction with the -l option.
Wenn Du das -p weglässt wird es funktionieren.
 
OP
T

tomycat

Member
thx, tatsächlich es geht.
wann muss ich dann-p eingeben? Oder brauche ich bei suse kein -p ? Source ist ja quelle?
Ich fühle mich gerade blöd?!?!
 

framp

Moderator
Teammitglied
-p macht nur Sinn wenn nc ein Sender ist (also kein -l), denn dann kannst Du damit den SourecPort definieren. Beim Listener wird der Port als normaler Parameter mitgegeben -> man nc :roll:
 
sorry,
bin auf dem schlauch.
aber der server kann doch nur listen sein, oder nicht :???:
der server muss doch ein port haben sonst kann ist nicht zugreifen. :???:
man nc kenne ich schon fast auswendig.:)
ich habe halt tcp/ip server( z.b. daytimeserver )client im hinterkopf als muster.
 

framp

Moderator
Teammitglied
tomycat2012 schrieb:
...aber der server kann doch nur listen sein, oder nicht :???:
Ja
der server muss doch ein port haben sonst kann ist nicht zugreifen. :???:
Ja

Aber der Server hat nur einen Port: Den auf den er listened. Der Client hat zwei Ports: Einen auf dem er sendet und einem wohin er sendet. -l ist der Quellport des Clients. Wenn das nicht angegeben wird sucht sich der Client einen beliebigen freien Port. Das ist eigentlich das Normalfall. Aber manchmal möchte man eben einen bestimmten Port beim Client benutzen - und das bewirkt der -l :roll:
 
OP
T

tomycat

Member
hi,
thx all,
ich habe mitlerweile alles über netcat gelesen :) und habe einen Überblick.
WARUM MUSS ICH DAS -p bei mir IMMER weglassen?

2.Frage:
manche Leute schreiben z.b. netcat -ltp darf man überhaupt die paramter zusammennehmen?
 
A

Anonymous

Gast
tomycat schrieb:
ich habe mitlerweile alles über netcat gelesen :) und habe einen Überblick.
WARUM MUSS ICH DAS -p bei mir IMMER weglassen?

ich glaube einfach mal das ist Versionsabhängig oder es gibt 2 verschiedene Tools mit dem selben Namen in meiner Manpage (netcat-1.10-1008.2.i586) steht zB
netcat [-options] hostname port [ports] ...
netcat -l -p port [-options] [hostname] [port]

-p port local port number (port numbers can be individual or ranges:
lo-hi [inclusive])


dort muss auch -p angegeben werden sonst gehts nicht
und in der REDAME die dazu im Paket ist dann auch ganz klar "nc" und nicht mehr "netcat" ;-)
nc -l -p 1234 | uncompress -c | tar xvfp -

and then on the other side

tar cfp - /some/dir | compress -c | nc -w 3 othermachine 1234

laut dem Manpageauszug von framp passt das überhaupt nicht zusammen.

Auf dieses Problem sind wir aber früher schon mal gestoßen nur eben dort genau anders herum.

robi
 
Oben