Hur man öppnar portar i Linux
Linux Ubuntu Ubuntu Grunder Hjälte / / March 02, 2022

Senast uppdaterad den

Om du vill tillåta externa anslutningar till en PC eller server måste du öppna rätt port. Linux-användare kan öppna portar med hjälp av denna användbara guide.
Behöver du ansluta till en extern PC eller server – eller behöver du en annan PC eller server för att ansluta till dig? Om du kör Linux måste du se till att rätt port är öppen.
Medan andra operativsystem vanligtvis har något grafiskt verktyg för detta, är Linux inte så enkelt. Vi går igenom hur du öppnar portar i Linux nedan.
Vad är en port och varför skulle jag behöva öppna den?
En port är en slutpunkt på nätverket. Tänk på det som en dörr som leder till ett visst rum eller omvärlden, men på din dator. Allt du gör på internet använder en viss port eller serie av portar.
Låt oss till exempel säga att du vill köra din egen Minecraft-server. För att göra det måste du öppna en port för användare att ansluta till den via. Detsamma skulle gälla för att köra din egen webb-, e-post- eller FTP-server.
Hamnar är standardiserad över alla nätverksanslutna enheter. De första 1 024 portarna (från 0 till 1023) kallas välkända portnummer. De är reserverade för de mest använda tjänsterna, som HTTP och HTTP (port 80 respektive 443) och SSH (port 22).
Portnummer över 1024 kallas tillfälliga hamnar, och är vanligtvis tillgängliga för dig att använda för ditt onlinespel, privata webbservrar och så vidare. Portnummer 1024 till 49151 anropas registrerad eller användarportar, medan de från 49152 till 65535 är kända som dynamisk eller privata hamnar.
Lista öppna portar på Linux
Innan du börjar försöka öppna en port på Linux bör du se till att den inte redan används. Du kan åstadkomma detta med hjälp av netstat kommando, inkluderat i de flesta Linux-distributioner. Om din distribution inte har netstat, du kan använda ss istället.
netstat -lntu.

Detta kommer att skriva ut alla lyssningsuttag (-l), tillsammans med portnumret (-n). Den inkluderar TCP-portar (-t) samt UDP (-u). Om ditt system inte har netstat, använd bara ss med samma parametrar.
ss -lntu.

Hur man öppnar portar i Linux
För det här exemplets skull antar vi att vi vill öppna port 4000 för TCP-anslutningar. Vi måste först se till att porten inte redan används. Vi gör detta genom netstat eller ss.
netstat -na | grep :4000. ss -na | grep :4000.
Förutsatt att utgången är tom, kan vi lägga till lämpliga portregler till systemets brandvägg. Metoderna för detta kommer att variera beroende på din distribution och om den använder den nyare ufw brandvägg eller brandvägg. Ubuntu favoriserarufw, medan CentOS använder vanligtvisbrandvägg istället. Naturligtvis finns det fortfarande några Linux-distributioner som använder den äldre iptables brandvägg.
För Ubuntu-användare och andra ufw-brandväggsbaserade system
Snarare än att använda den äldre iptables brandvägg, Ubuntu och vissa andra distributioner ufw. Under dessa system kommer följande kommando att öppna porten.
sudo ufw tillåter 4000.
Hoppa förbi de kommande stegen och testa din nyöppnade port för att se till att den fungerar.
Hur man öppnar portar i Linux med CentOS och andra brandväggsbaserade system
Om ditt system använder brandvägg, det bästa alternativet är att använda brandvägg-cmd kommando för att uppdatera reglerna.
sudo firewall-cmd --add-port=4000/tcp.
Detta kommer inte att vara en permanent förändring, men vi kommer att täcka hur man får reglerna att bestå efter omstart när vi testar porten.
För andra Linux-distributioner
Om ditt Linux-system inte har ufw eller brandvägg, du måste använda iptables. Om det inte är installerat, fortsätt och skaffa det med hjälp av din valda pakethanterare. När det är installerat öppnar dessa kommandon port 4000:
sudo iptables -A INPUT -p tcp --dport 4000 -j ACCEPTERAR. sudo tjänsten iptables startas om.
Om ditt system använder systemctl, ersätt det andra kommandot med:
sudo systemctl starta om iptables.
Testar nyöppnade portar för anslutningar
Därefter bör vi testa porten för att se till att den accepterar anslutningar. Vi gör detta genom att använda netcat (nc) för att lyssna på porten och sedan försöka telnet till den.
Öppna först ett terminalfönster och utfärda detta kommando:
sudo ls | nc -l -p 4000.
Låt den vara igång (lyssnar) och öppna ett andra terminalfönster. I det fönstret använder du telnet för att testa anslutningen. Om telnet inte är installerat, gör det med din pakethanterare.
telnet [värdnamn/IP-adress] [portnummer]
Byta ut [värdnamn/IP-adress] med ditt systems IP-adress och [portnummer] med portnumret du öppnade.
telnet localhost 4000.
Du bör se utdata som nedan, vilket indikerar en öppen anslutning med nc.

Vi kan också visa att porten är öppen med hjälp av nmap. Återigen, om kommandot inte redan är installerat, använd din pakethanterare för att hämta det.
nmap localhost -p 4000.

Anteckna det nmap kommer bara att lista öppna portar som lyssnar efter anslutningar. Det är därför vi använder netcat för att testa, för att lyssna på den porten. Annars registreras inte porten som öppen.
Jag kan inte ansluta till porten jag just öppnade, vad nu?
Om du går igenom alla stegen ovan och inte kan få en anslutning till porten, dubbelkolla hur du skriver. Om du är säker på att du har skrivit in allt korrekt, är chansen stor att du måste konfigurera om din nätverksrouter för att tillåta trafiken.
Eftersom varje nätverksrouter har olika konfigurationsskärmar bör du konsultera supportsidorna eller användarmanualen för just din utrustning. Du måste kontrollera portvidarebefordran eller portmappningsinställningar, såväl som eventuell inbyggd brandvägg som routern kan använda.
Hur man permanent öppnar en port i Linux
När du har testat din öppna port och sett till att den fungerar, vill du förmodligen göra ändringen permanent. Annars kanske ändringarna inte stannar kvar efter en omstart. Om du är en Ubuntu-användare eller på annat sätt använder ufw brandvägg, du behöver inte oroa dig för detta. De ufw reglerna återställs inte vid omstart.
För användare av brandvägg
Att få en portregel att stanna kvar efter en omstart är lätt med brandvägg. Lägg bara till -permanent flagga till ditt första kommando, och det kommer att inkluderas i ditt Linux-systems brandväggsregler vid start.
sudo firewall-cmd --add-port=4000/tcp --permanent.
Om du fortfarande använder iptables
De iptables brandväggen är mycket mer besvärlig (kanske en bra anledning att uppgradera till brandvägg eller ufw). För att "permanent" öppna en port i iptables, kan du installera iptables-beständig paket till hjälp.
När du först installerar iptables-beständig på ett Debian-baserat system kommer det att spara dina nuvarande regler till endera /etc/iptables/rules.v4 eller /etc/iptables/rules.v6. För att lägga till nya regler, utfärdar du följande kommando:
sudo iptables-save > /etc/iptables/rules.v4.
ELLER
sudo iptables-save > /etc/iptables/rules.v6.
För de som kör RPM-baserade Linux-distributioner är det lite annorlunda. Paketet heter iptables-tjänster, och spara filerna är /etc/sysconfig/iptables och /etc/sysconfig/ip6tables.
På RPM-baserade distributioner finns det också ett annat kommando som används för IPv6-portar. Att spara dina regler görs med ett av dessa två kommandon:
sudo iptables-save > /etc/sysconfig/iptables. sudo ip6tables-save > /etc/sysconfig/iptables.
Se till att övervaka din portanvändning
Allt eftersom tiden går kan dina serverbehov förändras. Precis som du borde hålla sig à jour med användarkontona på din Linux-maskin bör du också granska dina öppna portar regelbundet. Stäng alla öppna portar som inte längre behövs. Tillsammans med regelbundet Ändrar ditt lösenord, detta är en bra säkerhetspraxis som hjälper dig att undvika systemintrång och säkerhetsmissbruk.