ñòàòüèGNU Free Documentation License ìàòåðèàëû âçÿòû èç Âèêèïåäèè Ñòàòüÿ áûëà èçìåíåíà. Îðèãèíàë ñòàòüè.

Netcat

Ìàòåðèàë èç Ýíöèêëîïåäèè â ñâîáîäíîé ýíöèêëîïåäèè
Ïåðåéòè ê: íàâèãàöèÿ, ïîèñê
netcat (NetCat)
Òèï

ñåòåâàÿ óòèëèòà (TCP, UDP)

Ðàçðàáîò÷èê
  • Hobbit*
Íàïèñàíà íà

C

Îïåðàöèîííàÿ ñèñòåìà

UNIX

Ïîñëåäíÿÿ âåðñèÿ

0.7.1 (11 ÿíâàðÿ 2004)

Ëèöåíçèÿ

GPL

Ñàéò

http://netcat.sourceforge.net

netcat (àíãë. net ñåòü + cat) â óòèëèòà Unix, ïîçâîëÿþùàÿ óñòàíàâëèâàòü ñîåäèíåíèÿ TCP è UDP, ïðèíèìàòü îòòóäà äàííûå è ïåðåäàâàòü èõ. Íåñìîòðÿ íà ñâîþ ïîëåçíîñòü è ïðîñòîòó, äàííàÿ óòèëèòà íå âõîäèò íè â êàêîé ñòàíäàðò (íàïðèìåð, POSIX).

Ñîäåðæàíèå

[ïðàâèòü] Äåéñòâèå

 ïðîñòîì ñëó÷àå NetCat âûçûâàåòñÿ êàê:

nc host port

Ýòî ïðèâîäèò ê ñîçäàíèþ TCP-ïîäêëþ÷åíèÿ ñ óêàçàííûìè ðåêâèçèòàìè è çàìûêàíèåì ñòàíäàðòíîãî ââîäà íà ñåòåâîé âûâîä è íàîáîðîò, ñòàíäàðòíîãî âûâîäà íà ñåòåâîé ââîä. Òàêàÿ ôóíêöèîíàëüíîñòü íàïîìèíàåò êîìàíäó cat, ÷òî îáóñëîâèëî âûáîð èìåíè «netcat». Ïðè íåâîçìîæíîñòè ïîäêëþ÷åíèÿ ïðîãðàììà âûâîäèò ñîîáùåíèå îá îøèáêå íà stderr.

Óòèëèòà ðàñïîçíà¸ò ñëåäóþùèå êëþ÷è:

 -h Ñïðàâêà; íè÷åãî íå äåëàåòñÿ
 -v Äîïîëíèòåëüíàÿ äèàãíîñòèêà (verbose)
 -o âûõîäíîé_ôàéë Âûâîäèòü äàìïû äàííûõ
 -i ÷èñëî Çàäåðæêà ìåæäó îòïðàâëÿåìûìè äàííûìè (â ñåêóíäàõ)
 -t Ñîâìåñòèìîñòü ñ Telnet
 -z Íå ïîñûëàòü äàííûå (ñêàíèðîâàíèå ïîðòîâ)
 -u Ïîäêëþ÷àòüñÿ ïî UDP (âìåñòî TCP)
 -l Ïàññèâíûé ðåæèì (ïðîñëóøèâàíèå ïîðòà)
 -p ÷èñëî * Ëîêàëüíûé íîìåð ïîðòà (äëÿ -l)
 -s host Èñïîëüçîâàòü çàäàííûé ëîêàëüíûé («ñâîé») IP-àäðåñ
 -n Îòêëþ÷èòü DNS è ïîèñê íîìåðîâ ïîðòîâ ïî /etc/services
 -w ÷èñëî Çàäàòü òàéì-àóò (â ñåêóíäàõ)
 -q ÷èñëî Çàäàòü âðåìÿ îæèäàíèÿ ïîñëå EOF íà âõîäå (â ñåêóíäàõ) **
 -e èñïîëíÿåìûé_ôàéë ! Çàïóñòèòü óêàçàííóþ ïðîãðàììó äëÿ îáìåíà äàííûõ ñ ñåòüþ (âìåñòî ñòàíäàðòíûõ ââîäà è âûâîäà)
 -ñ êîìàíäà ! Òî æå, â âèäå êîìàíäû äëÿ /bin/sh

! â òðåáóåòñÿ ñïåöèàëüíàÿ ñáîðêà, â ïîñòàâëÿåìûõ èñïîëíÿåìûõ ôàéëàõ îòêëþ÷åíî (ëåãêî ñîçäà¸ò ñåòåâóþ óÿçâèìîñòü).
* â â íåêîòîðûõ ðåàëèçàöèÿõ íîìåð ïîðòà äëÿ ïðîñëóøèâàíèÿ çàäà¸òñÿ ÷åðåç -l, à êëþ÷ -p îòñóòñòâóåò.
** â èìååòñÿ íå âî âñåõ âåðñèÿõ.

[ïðàâèòü] Ïðèìåíåíèå

  • Òåñòèðîâàíèå è ðó÷íàÿ ðàáîòà ñ ñåòåâûìè ïðîòîêîëàìè;
  • Ïðîâåðêà äîñòóïíîñòè ïîðòîâ;
  • Ñåòåâîé èíòåðôåéñ äëÿ êîìàíäíîãî èíòåðïðåòàòîðà UNIX (âïðî÷åì, íåêîòîðûå âåðñèè bash óìåþò ïîäêëþ÷àòüñÿ ê TCP è UDP ñàìîñòîÿòåëüíî);
  • (Ñ êëþ÷îì -l) ñîçäàíèå ïðîñòûõ ñåðâåðîâ, îáû÷íî òåñòîâûõ;
  • (Ñîâìåñòíî ñ inetd) ïåðåíàïðàâëåíèå ïîðòîâ.

[ïðàâèòü] Ïðèìåðû

Äëÿ ubuntu óäàëèòå èç êëþ÷åé "-p ".

Îòîáðàæåíèå òåñòîâîé HTML-ñòðàíè÷êè êëèåíòó ñ îáû÷íûì áðàóçåðîì îäíîé êîìàíäîé (ïîðò 8080):

(echo -e "HTTP/1.1 200 OK\nContent-Type: text/html\n\n Hello World";) | nc -vv -l -p 8080

Ïåðåäà÷à ôàéëà êëèåíòó ñ îáû÷íûì áðàóçåðîì îäíîé êîìàíäîé (ïîðò 8080):

(echo -e "HTTP/1.1 200\nContent-Disposition: attachment; filename=öåëåâîå-èìÿ-êîòîðîå-óâèäèò-êëèåíò\nContent-Type: application/octet-stream\nConnection: close\n"; cat èìÿ-ôàéëà-íà-äèñêå ) | nc -vv -l -p 8080

[ïðàâèòü] Èìåíà êîìàíäû

nc, netcat, ncat, pnetcat (â ðàçíûõ ñèñòåìàõ).

[ïðàâèòü] Ñì. òàêæå

[ïðàâèòü] Ññûëêè

Ïðîñòðàíñòâà èì¸í

Âàðèàíòû
Äåéñòâèÿ