Uvod
Jedna od najvećih prednosti korištenja Linux je mnoštvo korisnih alata koje pruža. Značajke unutar programa obično su dovoljne većini programera za obavljanje posla. To znači da većinu vremena nećete morati preuzimati vanjske programe i softver. Ugrađeni alati pružit će vam dovoljno korisnosti. Među tim korisnim značajkama je i alat netcat.
Kada je riječ o svijetu mrežnih alata, netcat je svojevrsno premoćno oružje. To je nevjerojatno svestrana naredba koju možete koristiti u više svrha. Na primjer, možete koristiti ovaj jedinstveni alat za praćenje, testiranje, kao i prijenos svih vrsta datoteka i podataka preko veza vašeg sustava. U ovom vodiču istražit ćemo kako izvesti sve ove radnje na VPS koristeći netcat.
Pronalaženje Netcata
Netcat je obično dostupan na svim modernim Linux distribucijama. Što znači da ga najvjerojatnije već imate i ne morate se truditi instalirati ga. U našem vodiču koristit ćemo Ubuntu 12.04 VPS. Možete instalirati vlastiti Ubuntu poslužitelj prateći naš vodič. Ubuntu obično dolazi s BSD varijantom alata netcat. Imajte na umu da ako imate drugu verziju, ona može raditi malo drugačije.
Pregled osnovne sintakse
Počinjemo s učenjem o općoj sintaksi koja radi u alatu netcat. Možete upravljati netcatom pokretanjem TCP veze. Veza se mora uspostaviti s udaljenim računalom. Evo osnovne sintakse za netcat:
|
1 |
netcat [options] host port |
Ova naredba će pokušati pokrenuti TCP vezu s udaljenim računalom. S kojim će se računalom povezati ovisi o broju porta koji navedete u naredbi. Veza će biti nešifrirana. Kao što vidite, ova naredba radi slično kao i naredba telnet.
S druge strane, također možete pokrenuti UDP vezu. Za slanje UDP paketa umjesto TCP-a, morate koristiti opciju -u. Evo kako bi to izgledalo:
|
1 |
netcat -u host port |
Ako želite, možete odrediti i raspon portova. Da biste to učinili, trebate staviti crticu između prvog i zadnjeg porta. Evo primjera:
|
1 |
netcat host startport-endport |
Tome možete dodati i više zastavica. Još jedna stvar koju treba napomenuti je da možete naizmjenično koristiti netcat i nc. Pokrenut će istu naredbu, što znači da su oni međusobni pseudonimi.
Korištenje Netcata za skeniranje portova
Za početak, istražimo jednu od najčešćih upotreba netcata. Saznat ćemo kako ga koristiti kao skener portova. U većini situacija bolje je koristiti alat poput nmap. Međutim, ako samo trebate izvršiti jednostavna skeniranja portova, netcat je koristan. Može vam pomoći da s lakoćom identificirate otvorene portove.
Da biste koristili netcat kao skener portova, morate navesti raspon portova. To ćete učiniti pomoću opcije -z. Tako će sustav skenirati raspon portova umjesto da pokušava uspostaviti vezu. Recimo da želimo skenirati port 1 do porta 1000:
|
1 |
netcat -z -v domain.com 1-1000 |
Uz naredbu -z, koristili smo i opciju -v. Potonja nam omogućuje davanje više informacija naredbi. Omogućuje nam da budemo detaljniji ('verbose').
Zauzvrat ćete dobiti ovakav izlaz:

Izlaz prikazuje puno informacija za svaki pojedini port. Znate status veze svakog porta. S druge strane, možete koristiti IP adresu umjesto naziva domene ako je znate. To čini proces puno bržim. Evo primjera:
|
1 |
netcat -z -n -v 198.51.100.0 1-1000 |
Koristili smo zastavicu -n kako bismo naznačili da sustav treba koristiti DNS za razlučivanje IP adrese.
Obično se povratne poruke šalju na standardni izlaz za pogreške. Kako biste brže filtrirali rezultate, možete ih preusmjeriti na standardni izlaz. Za to ćemo koristiti bash sintaksu 2>&1. Nakon toga ćemo filtrirati rezultate pomoću grepa. Primijenimo to na naš primjer:
|
1 |
netcat -z -n -v 198.51.100.0 1-1000 2>&1 | grep uspješno |
Izlaz će izgledati slično ovome:
![]()
Izlaz pokazuje da je samo port 22 otvoren za povezivanje u zadanom rasponu. Port 22 je inače tradicionalni SSH port.
Komunikacija putem Netcata: Kako radi?
Zatim ćemo vidjeti kako možete koristiti netcat za slanje TCP i UDP paketa. Ne samo to, već može i primati pakete na različitim portovima. Kao rezultat ove mogućnosti, možete koristiti dvije instance netcata za stvaranje klijent-poslužitelj odnosa. Na početku ćete odrediti klijenta i poslužitelj. Nakon početne konfiguracije, oba klijenta mogu slati i primati pakete u bilo kojem smjeru.
Naravno, morat ćete konfigurirati netcat na jednom sustavu da sluša veze na jednom portu. Da biste to učinili, morate koristiti parametar -l. Pomoću njega možete odabrati željeni port ovako:
|
1 |
netcat -l 4444 |
Sada će TCP na ovom računalu slušati veze na portu 4444. Važno je napomenuti da ako niste root ili ste običan korisnik, nećete moći pristupiti portovima ispod 1000.
Zatim morate konfigurirati drugo računalo za uspostavljanje veze. Koristit ćete isti broj porta i navesti određeni naziv domene ovako:
|
1 |
netcat domain.com 4444 |
Pokretanje ove naredbe neće vam dati nikakav izlaz. Međutim, uspostavit će vezu. To znači da možete početi slati poruke s bilo kojeg od poslužitelja na onaj drugi. Da biste to učinili, sve što trebate učiniti je upisati poruku i pritisnuti ENTER. Poruka će se prikazati na oba zaslona.
Kada završite, možete zatvoriti TCP vezu pritiskom na CTRL+D.
Možete li slati datoteke pomoću Netcata?
Zatim ćemo vam pokazati kako možete slati datoteke putem netcata. S TCP vezom možete slati poruke kao i druge vrste podataka. Za početak morate odabrati jedno računalo koje će slušati veze. Međutim, umjesto upisivanja informacija u naredbu, smjestit ćemo ih u datoteku ovako:
|
1 |
netcat -l 4444 > received_file |
Na drugom računalu morat ćete stvoriti novu tekstualnu datoteku. Evo naredbe koju treba koristiti:
|
1 |
echo "Pozdrav, ovo je datoteka" > original_file |
Za prijenos datoteke koristit ćete je kao ulaz za vezu na računalu koje sluša:
|
1 |
netcat domain.com 4444 < original_file |
Drugo računalo će prikazati novu datoteku pod nazivom ‘receieved_file.’ Sadržavat će sve informacije koje smo upisali:
|
1 |
cat received_file |
Možete koristiti ovaj alat i pretvoriti ga u program za prijenos datoteka. Recimo da želite prenijeti sadržaj direktorija. To ćemo učiniti stvaranjem neimenovane tar arhive (tarball) koju ćemo prenijeti na sustav i raspakirati u udaljeni direktorij. Na drugom računalu moramo se pripremiti za primanje datoteke. Znamo da ćemo je morati raspakirati i ekstrahirati. Da biste to učinili, izdajte ovu naredbu:
|
1 |
netcat -l 4444 | tar xzvf - |
Crtica označava da će tar raditi na standardnom ulazu. To dolazi iz netcata na početnom poslužitelju kada smo uspostavili početnu vezu.
Na kraju, možemo staviti sadržaj cijelog direktorija u tar arhivu i poslati ga putem netcata ovako:
|
1 |
tar -czf - * | netcat domain.com 4444 |
Crtica u naredbi tar pokazuje da govorimo sustavu da arhivira i komprimira sadržaj direktorija. Također mu nalaže da zapiše rezultat na standardni izlaz. Datoteka će proći kroz TCP vezu na drugi kraj. Poslužitelj primatelj će je dekomprimirati i spremiti u trenutni udaljeni direktorij.
Baš ovako, možete prenositi i druge vrste podataka putem netcata. Mnogi ljudi koriste naredbu dd za izradu slika diskova i njihov prijenos. Za drugi način prijenosa podataka i datoteka pogledajte naš vodič koji pokazuje kako osigurati sigurnost pri prijenosu datoteka pomoću SFTP-a.
Korištenje Netcata kao web poslužitelja
Još jedna korisna funkcija netcata je ta što ga možete koristiti za testiranje svojih stranica. Recimo da koristimo poslužitelj za izradu HTML datoteke poput ove:
|
1 |
nano index.html |
Ovo je HTML kod koji datoteka sadrži:
|
1 2 3 4 5 6 7 8 9 10 |
<html> <head> <title>Testna stranica</title> </head> <body> <h1>Zaglavlje razine 1</h1> <h2>Podnaslov</h2> <p>Normalan tekst ovdje</p> </body> </html> |
Unesite ovo u datoteku, zatim je spremite i zatvorite. Obično je port 80 zadani web port. Kao običan korisnik koji nije root, odabrat ćemo port 8888. Pod pretpostavkom da želite poslužiti i provjeriti stranicu jednom, upotrijebit ćete ovu naredbu:
|
1 |
printf 'HTTP/1.1 200 OK\n\n%s' "$(cat index.html)" | netcat -l 8888 |
Kako biste vizualizirali sadržaj datoteke, idite u svoj preglednik. Posjetite sljedeće:
|
1 |
http://server_IP:8888 |
Moći ćete vidjeti stranicu koju ste kodirali pomoću HTML datoteke:

Nakon što dobijete stranicu, netcat veza će se zatvoriti. To znači da će vam osvježavanje stranice dati pogrešku umjesto sadržaja. To je zato što smo je konfigurirali da posluži stranicu samo jednom. Ako želite nastaviti primati veze kako biste vidjeli stranicu unedogled, koristit ćete drugačiji kod:
|
1 |
while true; do printf 'HTTP/1.1 200 OK\n\n%s' "$(cat index.html)" | netcat -l 8888; done |
Ovdje smo omotali posljednju naredbu u beskonačnu petlju. Ako želite zaustaviti petlju, sve što trebate učiniti je pritisnuti CTRL-C. Sada možete nastaviti pregledavati svoju stranicu i njezin prikaz čak i nakon što se prva veza zatvori. Međutim, ovo je maksimalna funkcionalnost koju možete izvući iz korištenja uslužnog programa netcat kao web poslužitelja. Nemojte ga pokušavati koristiti za posluživanje stvarnih web stranica jer ne pruža nikakvu sigurnost. Umjesto toga, možete pogledati naše vodiče o tome kako instalirati softver za web poslužitelj kao što je Nginx ili Apache.
Conclusion
U ovom smo vodiču pokrili uslužni program netcat i istražili njegovu svestranost kao alata na Ubuntu. Kao što smo obradili u gornjim odjeljcima, možete ga koristiti za komunikaciju, prijenos podataka i posluživanje stranica. Savršeno radi za brze interakcije između poslužitelja putem TCP/UDP veza. To je vrlo korisna značajka za mnoštvo osnovnih funkcionalnosti i dijagnostike.
Sretno s radom!
Komentari
Još nema komentara. Budite prvi.