GNU/Linux >> Znalost Linux >  >> Linux

Zkontrolujte, zda je port otevřený nebo uzavřený na serveru Linux?

Řešení 1:

Pomocí netstat -tuplen můžete zkontrolovat, zda proces naslouchá na portu TCP nebo UDP .

Chcete-li zkontrolovat, zda jsou některé porty přístupné zvenčí (to je pravděpodobně to, co chcete), můžete použít skener portů, jako je Nmap z jiného Systém. Spuštění Nmapu na stejném hostiteli, který chcete zkontrolovat, je pro váš účel docela zbytečné.

Řešení 2:

Nejrychlejší způsob, jak otestovat, zda je otevřený port TCP (včetně jakýchkoli hardwarových firewallů, které máte), je napsat ze vzdáleného počítače (např. z plochy):

telnet myserver.com 80

Který se pokusí otevřít připojení k portu 80 na tomto serveru. Pokud vám vypršel časový limit nebo odepřete, port není otevřený :)

Řešení 3:

OK, shrnuto, máte server, ke kterému se můžete přihlásit. Chcete zjistit, zda na nějakém portu něco poslouchá. Jako root spusťte:

netstat -nlp

zobrazí se seznam procesů, které naslouchají na portech TCP a UDP. Můžete jej naskenovat (nebo grep) pro proces, který vás zajímá, a/nebo čísla portů, která očekáváte.

Pokud proces, který očekáváte, neexistuje, měli byste tento proces spustit a znovu zkontrolovat netstat. Pokud proces existuje, ale naslouchá na rozhraní a portu, které jste neočekávali, došlo k problému s konfigurací (např. mohl naslouchat, ale pouze na rozhraní zpětné smyčky, takže byste viděli 127.0.0.1:3306 a žádné další řádky pro port 3306, v případě výchozí konfigurace pro MySQL).

Pokud proces běží a naslouchá na očekávaném portu, můžete zkusit spustit „telnet“ k tomuto portu z vašeho Macbooku ve vaší kanceláři/doma, např.

 telnet xxxxxxxxxxxx.co.uk 443

To otestuje, zda (za předpokladu standardních portů) existuje webový server nakonfigurovaný pro SSL. Všimněte si, že tento test pomocí telnetu bude fungovat pouze v případě, že proces naslouchá na portu TCP. Pokud se jedná o port UDP, můžete to také zkusit s jakýmkoli klientem, kterého jste se k němu chystali připojit. (Vidím, že jste použili port 224. Toto je masqdialer a nemám ponětí, co to je).

Pokud tam služba je, ale nemůžete se k ní dostat externě, pak vás blokuje firewall. V takovém případě spusťte:

 iptables -L -n

Zobrazí se všechna pravidla brány firewall, jak jsou definována ve vašem systému. Můžete to zveřejnit, ale obecně platí, že pokud nepovolujete vše v řetězci INPUT, pravděpodobně budete muset explicitně povolit provoz na dotyčném portu:

 iptables -I INPUT -p tcp --dport 224 -j ACCEPT

nebo něco v tomto smyslu. Nespouštějte příkazy brány firewall slepě na základě toho, co vám řekl někdo cizí na internetu. Zvažte, co děláte.

Pokud váš firewall na krabici umožňuje provoz, který chcete, pak vaše hostitelská společnost možná používá firewall (např. povoluje pouze SSH (22/tcp), HTTP (80/tcp) a HTTPS (443/tcp). a zakázat veškerý další příchozí provoz). V tomto případě budete muset otevřít lístek helpdesku s nimi, abyste tento problém vyřešili, i když předpokládám, že ve vašem cPanelu může být něco, co to umožňuje.

Řešení 4:

Používám kombinaci netstat a lsof :

netstat -an | grep <portnumber>
lsof -i:<portnumber>

Chcete-li zjistit, zda je port používán a co jej používá.

Řešení 5:

Pokud jste připojeni k systému a můžete spustit příkaz jako root, můžete zkontrolovat výstup iptables

iptables -L -vn

toto zobrazí pravidla brány firewall a porty, které jsou otevřené cíl ACCEPT a všechny explicitně uzavřené porty cílí na REJECT .


Linux
  1. Zkontrolujte připojení k síti na serveru Linux

  2. Zkontrolujte použití portu v Linuxu

  3. Zkontrolujte připojení otevřené nebo zavřené? (v C v Linuxu)

  1. Zkontrolujte, která služba na daném portu linux naslouchá

  2. Zkontrolujte limit otevřeného FD pro daný proces v Linuxu

  3. Efektivně otestovat, zda je port otevřený v Linuxu?

  1. Jak zkontrolovat otevřený port na vzdáleném systému Linux

  2. Jak otevřít port v Linuxu

  3. Který proces požírá ptys na mém linuxovém serveru?