Bent u ooit een situatie tegengekomen waarin u een proces dat op een specifieke poort op uw Linux-machine draait, moet stoppen?
U maakt zich misschien zorgen dat een toepassing die u gebruikt zich niet goed gedraagt of uw netwerkbronnen of lokale CPU-kracht overbelast. Zo’n applicatie kan zelfs een beveiligingsbedreiging zijn die u wilt elimineren.
Inhoudsopgave
Wat de reden ook is, je kunt de commando’s fuser, lsof en netstat van de terminal gebruiken (samen met kill) om je te helpen bij het vinden en doden van elk Linux-proces dat een poortnummer gebruikt. Deze opdrachten werken op de meeste Linux-besturingssystemen, inclusief Ubuntu.
Een Linux-proces beëindigen met behulp van de fuseropdracht
Een van de gemakkelijkste manieren om een proces te beëindigen met behulp van een poortnummer is het fuser-commando. Deze Linux-terminalopdracht kan processen weergeven of beëindigen die toegang hebben tot bestanden of sockets. Als een app wordt uitgevoerd met netwerkactiviteit (en dus een open poort gebruikt), doet deze waarschijnlijk een van deze twee dingen.
Voordat u verder gaat, moet u ervoor zorgen dat u vertrouwd bent met het gebruik van een opdrachtregelterminal op uw Linux-pc.
Als u een lijst wilt weergeven van de processen die een poortnummer gebruiken met behulp van fuser, kunt u de volgende syntaxis gebruiken:
fuser-n protocolpoort
In dit voorbeeld kan protocol tcp of udp zijn, terwijl poort het poortnummer is dat u wilt controleren. Om bijvoorbeeld te zien welke processen TCP-poort 80 gebruiken, kunt u het volgende uitvoeren:
fuser-n tcp 80
Hiermee worden de proces-ID’s (PID’s) afgedrukt van de processen die dat gebruiken haven.
Om die processen af te breken, kunt u de optie-k aan de fuser toevoegen. Dit zal een SIGTERM-signaal naar elk proces sturen, waarin hen wordt gevraagd netjes te beëindigen. Bijvoorbeeld:
fuser-k-n tcp 80
Dit doodt alle processen die TCP-poort 80 gebruiken.
Als sommige processen niet reageren op SIGTERM , kunt u-KILL gebruiken in plaats van-k. Dit stuurt een kill-signaal (SIGKILL), wat kan helpen om de momenteel actieve processen die u hebt geïdentificeerd, te forceren om onmiddellijk te beëindigen. Dit kan echter gegevensverlies of corruptie veroorzaken, dus gebruik het voorzichtig. Bijvoorbeeld:
fuser-KILL-n tcp 80
Dit zal alle processen forceren die TCP-poort 80 gebruiken. Als u problemen tegenkomt, voert u deze opdrachten uit als de supergebruiker (met behulp van de sudo-opdracht) of door in plaats daarvan de rootgebruiker te gebruiken.
Een Linux-proces afbreken met het lsof-commando
Een andere manier om een proces af te breken met behulp van een poortnummer op een Linux-pc is het gebruik van het lsof-commando. Deze opdracht kan open bestanden en sockets op uw systeem weergeven.
Om een lijst te maken van de processen die een specifiek poortnummer gebruiken, kunt u de volgende syntaxis gebruiken:
lsof-i protocol:port
Net als voorheen kan het protocol tcp of udp zijn, terwijl poort het poortnummer is dat u wilt controleren. Om bijvoorbeeld te zien welke processen TCP-poort 53 gebruiken (meestal gebruikt voor DNS-verzoeken), kunt u deze opdracht uitvoeren:
lsof-i tcp:53
Hierdoor worden enkele informatie over elk proces dat die poort gebruikt, inclusief de PID.
Om die processen af te breken, kunt u de optie-t gebruiken met lsof. Hiermee worden alleen de PID’s van de processen afgedrukt zonder enige andere informatie. U kunt deze uitvoer vervolgens doorsturen naar het kill-commando met elke signaaloptie. Bijvoorbeeld:
kill $(lsof-t-i tcp:53)
Hierdoor worden SIGTERM-signalen (standaard) naar alle processen verzonden die TCP-poort 53 gebruiken.
Als sommige processen niet zoals voorheen reageren op SIGTERM-signalen, kunt u na kill-9 gebruiken in plaats van niets. Hierdoor worden SIGKILL-signalen verzonden zoals voorheen, waardoor ze gedwongen worden onmiddellijk te beëindigen, maar dit kan ook leiden tot gegevensverlies of corruptie. Bijvoorbeeld:
kill-9 $(lsof-t-i tcp:53)
Dit zal geforceerd SIGKILL-signalen (de standaard) naar alle processen sturen die TCP-poort 53 gebruiken.
Een Linux-proces stoppen met het netstat-commando
U kunt ook het netstat-commando gebruiken om lopende processen op uw Linux-pc op te sporen met behulp van actieve en open netwerkpoorten. met netstat kunt u netwerkverbindingen en statistieken op uw systeem bekijken, zodat u problematische processen kunt lokaliseren.
Om de processen die een poortnummer gebruiken samen met hun PID’s weer te geven, moet u twee opties toevoegen:-p, die PID’s toont, en-l, die alleen luisterende sockets toont.
U moet ook het protocol specificeren (tcp, udp, etc.) en optioneel filteren op status (LISTEN, etc.). Om bijvoorbeeld te zien welke TCP-processen luisteren op welke poort dan ook, kunt u het volgende uitvoeren:
netstat-p tcp-l
Hiermee wordt informatie afgedrukt over elke TCP-socket die luistert op welke poort dan ook , inclusief de PID.
Om op specifieke poorten te filteren, moet u een andere optie toevoegen:-n, die numerieke adressen toont in plaats van namen. U moet ook het exacte adresformaat specificeren: [protocol][@hostnaam|hostaddr][:service|poort].
Om bijvoorbeeld te zien welke TCP-processen luisteren op poort 80, kunt u het volgende uitvoeren:
netstat-p tcp-l-n 80
Dit zal druk informatie af over elke TCP-socket die luistert op poort 8080, inclusief de PID.
Om die processen te beëindigen, kunt u het kill-commando gebruiken met elke gewenste signaaloptie en de PID’s die u van netstat hebt verkregen. Bijvoorbeeld:
kill 1234 5678
Hierdoor worden SIGTERM-signalen (standaard) verzonden naar processen met PID’s 1234 en 5678.
Als sommige processen dat niet doen reageren op SIGTERM-signalen zoals voorheen, u kunt-9 gebruiken in plaats van niets na doden. Dit zal SIGKILL-signalen verzenden zoals voorheen, waardoor ze gedwongen worden onmiddellijk te beëindigen, maar kan zoals voorheen gegevensverlies of corruptie veroorzaken. Bijvoorbeeld:
kill-9 1234 5678
Hierdoor worden SIGKILL-signalen krachtig verzonden naar processen met bijvoorbeeld PID’s 1234 en 5678. Vervang 1234 door de juiste PID voor uw lopende proces.
Controleer uw Linux-applicaties
Dankzij de hierboven beschreven stappen kunt u snel een lopend Linux-proces beëindigen met behulp van een poortnummer met behulp van de Linux opdrachtregel. Vergeet niet om voorzichtig te zijn bij het doden van processen, vooral met SIGKILL-signalen, omdat deze ongewenste bijwerkingen kunnen veroorzaken-u wilt tenslotte geen systeeminstabiliteit veroorzaken.
Wilt u uw systeemprestaties op Linux nader bekijken? Misschien wil je hierna je geheugengebruik op Linux controleren. Als u zich zorgen maakt over een mogelijk beveiligingsrisico, wilt u misschien ook uw wachtwoord op Linux wijzigen.
Wilt u overschakelen naar een nieuwe Linux-distributie? Als je een beginner bent, beschouw Linux Mint dan als een veilig en stabiel alternatief.