6 Nätverksanvändningar för Linux nc-kommandot

6 Nätverksanvändningar för Linux nc-kommandot
Index
  1. 6 Etablera nätverksanslutningar
  2. 5 Portskanning
  3. 4 Filöverföring
  4. 3 Skapa en webbserver
  5. 2 Skapa en Enkel Chattapplikation
  6. 1 Nätverksfelsökning

Netcat (nc) är ett mångsidigt verktyg för Linux-användare, som möjliggör nätverksanslutningar, portskanning, filöverföring, webbserver- och chattapplikationer, samt nätverksfelsökning.

Netcat-verktyget är ganska populärt bland nätverksadministratörer. Men det kan också ha andra syften för dig som en vanlig Linux-användare i din vardag. Under min forskning har jag hittat några utmärkta användningsområden för att leka med nc-kommandot.

6 Etablera nätverksanslutningar

Jag börjar med den enklaste och mest grundläggande funktionen som nc kan utföra. Det är att skapa en direkt TCP- eller UDP-anslutning mellan två maskiner. Detta är byggstenarna för många mer avancerade användningar.

Anta att du har två Linux-system. För demonstration använder jag en Ubuntu-maskin och en Linux Mint-maskin. Ubuntu fungerar som server eller lyssnare medan Linux Mint fungerar som klient eller anslutare.

Först, starta lyssnaren.

nc -l -p 12345

-l-flaggan är för lyssnarläget. -p-flaggan används för att definiera porten. Här använder vi port 12345, men du kan välja en annan så länge den inte redan används. Efter att du har kört det här kommandot kommer din terminal att vänta på en anslutning.

[enlazatom_show_links]

Nu, från anslutningsmaskinen, kör:

nc ip_address port_number

Ersätt ip_address med IP-adressen till din server. Portnumret är detsamma som du använde för din lyssnare. I mitt fall:

nc 192.168.100.4 12345

Detta etablerar en TCP-anslutning mellan de två maskinerna. Dessutom är det inte en envägs kommunikation där endast servern kan skicka. Båda parter kan skicka och ta emot.

Om du vill etablera en UDP-anslutning istället kan du göra det med -u-flaggan. På lyssnarmaskinen kör:

nc -u -l -p 12345

På klientmaskinen, kör:

nc -u 192.168.100.4 12345

UDP-anslutningar är mindre tillförlitliga än TCP. Men de är att föredra när hastighet är kritisk och lite databulk är acceptabelt.

5 Portskanning

Bortsett från att ansluta till en enskild port kan nc kontrollera ett helt spann av portar för att se vilka som är öppna. Detta kan hjälpa med felsökning eller uppräkning av tjänster. Det är också därför nc ibland kallas "teknikernas schweiziska armékniv".

Låt oss säga att du vill ta reda på vilka TCP-portar som är öppna på din servermaskin från din klientmaskin. Skapa en lyssnare på servern som tidigare.

nc -l -p 12345

Därefter, från klienten, kör:

nc -z -v 192.168.100.4 20-130

-z-flaggan instruerar netcat att använda Zero-I/O-läget. Detta innebär att netcat bara ska skanna efter lyssnande demoner istället för att skicka någon data. -v-flaggan aktiverar verbose-läget, vilket visar resultaten på ett bättre sätt. Vi definierar också spannet av portar från 20 till 130 som vi är intresserade av.

Scanna endast system som du äger eller har uttryckligt tillstånd att skanna. Obehörig skanning kan vara olagligt eller uppfattas som fientligt.

I demonstrationerna vägrade nästan alla portar att ansluta eftersom de var stängda, utom port 80. På samma sätt kan du också skanna UDP-portar.

4 Filöverföring

Netcat kan skicka filer direkt över TCP eller UDP utan att behöva FTP, SCP eller delade mappar. Detta gör det idealiskt för snabba överföringar, särskilt när andra metoder inte är tillgängliga. Låt oss skicka en fil från min Linux Mint till min Ubuntu-maskin.

Jag har redan en fil som heter test.txt, vilket innebär "Fil för att testa nc filöverföring." Först, skapa en lyssnare på den maskin som du vill överföra filen till. När du gör det, omdirigera anslutningsutdata till en fil, på följande sätt.

nc -l -p 12345 > received.txt

Därefter, på avsändarmaskinen, omdirigera filens innehåll till din nc-anslutning så här.

nc 192.168.100.4 12345

För att kontrollera om överföringen var framgångsrik, använd ls-kommandot för att se om filen finns där och sedan cat-kommandot för att läsa dess innehåll. Du kan också göra omvänt och skicka filer den andra vägen. Allt du behöver göra är att vända på rollerna genom att använda de kommandon jag visade ovan.

3 Skapa en webbserver

Netcat kan fungera som en enkel HTTP-server genom att lyssna på en port och skicka rå HTML till alla som ansluter. Det kommer naturligtvis inte att ersätta Apache eller Nginx. Men för snabba demonstrationer, felsökning eller lärande om HTTP-förfrågningar är det perfekt.

Först, skapa en statisk HTML-fil (jag kallar den page.html) på din servermaskin. För mig är det Ubuntu.

echo -e "HTTP/1.1 200 OK"

Hej från Netcat

I den här filen har jag inkluderat en HTTP-statusrad, en innehållstypheader och en enkel HTML-kropp. \r\n-sekvenserna är avgörande i HTTP för att separera headers från kroppen.

Nu, starta en netcat-webbserver på samma maskin:

while true; do nc -l -p 8080

Vi använder en while-loop här så att servern förblir aktiv även efter varje begäran. Vi lyssnar på port 8080 och skickar HTML-filen som svar. Öppna nu en webbläsare från klientmaskinen (Linux Mint i mitt fall) och besök den statiska HTML-sidan genom att ange IP och port.

http://192.168.100.4:8080

Du kan också använda curl-kommandot för att hämta HTML-sidan.

curl http://192.168.100.4:8080

2 Skapa en Enkel Chattapplikation

Netcat kan koppla ihop två terminaler, så allt du skriver på en dyker omedelbart upp på den andra. Med lite skalfuskartrick kan du göra det till ett realtidschattverktyg. Ingen anledning till några tredjeparts chattappar.

För att göra detta behöver du skapa en nätverksanslutning precis som visat i den första sektionen. Skapa en lyssnare på en maskin:

nc -l -p 12345

Anslut sedan till den från en annan maskin.

nc 192.168.100.4 12345

När du har etablerat anslutningen kan du skriva vad som helst i en terminal. Det kommer att dyka upp på den andra terminalen. Sedan kan du skriva något på den andra terminalen, och det kommer att visas i den första.

Nu kan du skriva fram och tillbaka i terminalen för att skicka meddelanden från en dator till en annan. Jag försökte vara lite kreativ och se om jag kunde lägga till avsändarnamn med motsvarande meddelanden. På så sätt är det enklare att spåra vem som skickade vilket meddelande.

Du kan göra detta genom att lägga till avsändarnamnet med hjälp av echo och en while-loop. Här är inställningen. Kör detta på servermaskinen:

while read msg; do echo "Ubuntu: $msg"; done | nc -l -p 12345

Och detta på anslutningsmaskinen:

while read msg; do echo "LM: $msg"; done | nc 192.168.100.4 12345

Ovanstående kommando väntar på input, lägger till prefix och skickar det. På mottagningssidan dyker prefixet upp exakt som det skickades. Även om det finns mer än två användare kan du spåra meddelanden på detta sätt.

1 Nätverksfelsökning

Slutligen kan du använda nc-kommandot för att åtgärda några vanliga nätverksproblem. När något är fel på ett nätverk kan det hjälpa till att bekräfta om det är ett anslutningsproblem, ett tjänsteproblem eller ett brandväggsproblem. Det kan testa portar, simulera tjänster och kontrollera råsvar.

Anta att en applikation inte svarar. Du kan använda nc för att se om du ens kan ansluta till dess port.

nc -zv 192.168.100.4 22

Om det hänger sig eller säger "Anslutning vägrad" är porten stängd eller filtrerad.

Du kan manuellt prata med en tjänst för att se om den svarar som förväntat. Till exempel, kontrollera om en lokal HTTP-tjänst svarar.

nc 192.168.100.4 8080

Om tjänsten fungerar kommer den att skicka tillbaka en HTTP-responsheader och eventuellt lite HTML. Detta är bra för att felsöka webappar som beter sig konstigt utan en webbläsare.

Om du misstänker att en app kan ansluta till en port men inte skickar rätt data kan du låtsas vara tjänsten och fånga vad appen skickar. Detta är användbart för att debugga anpassade klient/server-protokoll. Med netcat kan du snabbt utföra dessa små tester och ta reda på var ditt nätverk misslyckas och hur du åtgärdar det.

Det finns mycket mer du kan göra med netcat. Om du är intresserad kan du kolla in den officiella manualen för nc. Det finns många fler Linux-nätverkskommandon som du bör utforska.

Nu när du har läst klart 6 Nätverksanvändningar för Linux nc-kommandot, inbjuder vi dig att utforska kategorin Linux ytterligare. Där hittar du fler intressanta artiklar som kommer att utöka dina kunskaper och hålla dig informerad. Sluta inte läsa och upptäcka mer!

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *

Go up