Bir portun Linux sunucusunda dinlenip dinlenmediğini nasıl kontrol edebilirim?
netstat -an | grep PORTNUMBER | grep -i listen
Çıkış boşsa, port kullanımda değildir.
Bir portun Linux sunucusunda dinlenip dinlenmediğini nasıl kontrol edebilirim?
netstat -an | grep PORTNUMBER | grep -i listen
Çıkış boşsa, port kullanımda değildir.
Yanıtlar:
Bir işlemin TCP veya UDP bağlantı noktası ile dinlenip dinlenmediğini kontrol edebilirsiniz netstat -tuplen
.
Bazı portlar Eğer böyle bir port tarayıcı kullanabilirsiniz (istediğin bu muhtemelen) dışarıdan erişilebilir olup olmadığını kontrol etmek için Nmap dan başka sisteme. Nmap'ı kontrol etmek istediğiniz aynı ana bilgisayarda çalıştırmak, amacınız için oldukça işe yaramaz.
-t
, -u
, -p
, -l
, -e
, ve -n
. Seçenekler ayrıştırıcı sayesinde şu şekilde ifade edilebilir -tuplen
. linux.die.net/man/8/netstat
telnet
komut genellikle yalnızca TCP'yi destekler, bu nedenle kontrol etmek istediğiniz servis başka bir protokolde çalışıyorsa, şansınız kalmaz.
sudo netstat -tuplen
. Bu, size yalnızca size değil, başkalarına da ait olan işlemleri sunacak ve daha önce root olmayan bir kullanıcı olarak gösterilmiyorsa ek bilgiler (PID / Program Adı gibi) yazacaktır.
Bir TCP portunun açık olup olmadığını test etmenin en hızlı yolu (sahip olabileceğiniz tüm donanım güvenlik duvarları dahil), uzaktaki bir bilgisayardan (örneğin masaüstünüz) yazmaktır:
telnet myserver.com 80
Bu sunucudaki 80 numaralı bağlantı noktasına bir bağlantı açmaya çalışır. Bir mola veya inkar ederseniz, liman açık değildir :)
if you get a time out or deny, the port is not open
Tamam, özet olarak, giriş yapabileceğiniz bir sunucunuz var. Bazı portlarda bir şey dinleyip dinlemediğini görmek istiyorsun. Kök olarak, koş:
netstat -nlp
Bu, TCP ve UDP portlarını dinleyen işlemlerin bir listesini gösterecektir. İlgilendiğiniz işlem ve / veya görmeyi beklediğiniz bağlantı noktası numaraları için tarayabilir (veya grep).
Beklediğiniz süreç orada değilse, bu süreci başlatmalı ve netstat'ı tekrar kontrol etmelisiniz. Süreç oradaysa, ancak beklemeyeceğiniz bir arayüz ve bağlantı noktasını dinliyorsa, o zaman bir yapılandırma sorunu var demektir (örneğin dinliyor olabilir, ancak yalnızca geridöngü arayüzü üzerinde, bu yüzden 127.0.0.1:3306 ve MySQL için varsayılan yapılandırma durumunda, 3306 bağlantı noktası için başka bir satır yoktur).
İşlem devam ederse ve beklediğiniz bağlantı noktasını dinliyorsa, ofisinizde / evinizde Macbook'unuzdan o bağlantı noktasına bir "telnet" çalıştırmayı deneyebilirsiniz, örneğin,
telnet xxxxxxxxxxxx.co.uk 443
Bu (standart portlar varsayarsak) SSL için yapılandırılmış bir web sunucusu olup olmadığını test eder. Telnet kullanan bu testin yalnızca işlem bir TCP portunu dinliyorsa işe yarayacağını unutmayın. Bu bir UDP bağlantı noktasıysa, bağlanmak için hangi müşteriyi kullanacağınızı deneyebilirsiniz. (Limanı 224 kullandığını görüyorum. Bu maskaracı ve ne olduğu hakkında hiçbir fikrim yok).
Servis varsa, ancak harici olarak erişemiyorsanız, sizi engelleyen bir güvenlik duvarı vardır. Bu durumda, koş:
iptables -L -n
Bu, sisteminizde tanımlandığı şekilde tüm güvenlik duvarı kurallarını gösterecektir. Bunu gönderebilirsiniz, ancak genel olarak, INPUT zincirindeki her şeye izin vermiyorsanız, muhtemelen söz konusu limandaki trafiğe açıkça izin vermeniz gerekir:
iptables -I INPUT -p tcp --dport 224 -j ACCEPT
veya bu çizgiler boyunca bir şey. Güvenlik duvarı komutlarınızı, bazı yabancıların Internet'te söylediklerine bağlı olarak, kör bir şekilde çalıştırmayın. Ne yaptığını bir düşün.
Kutudaki güvenlik duvarınız istediğiniz trafiğe izin veriyorsa, barındırma şirketiniz bir güvenlik duvarı kullanıyor olabilir (örneğin, yalnızca SSH (22 / tcp), HTTP (80 / tcp) ve HTTPS'ye (443 / tcp) izin veriyorlar. ve gelen diğer tüm trafiği reddetmek). Bu durumda, bu sorunu çözmek için onlarla bir yardım masası bileti açmanız gerekecek, ancak sanırım cPanel'inizde buna izin verebilecek bir şeyler olabilir.
Combo kullanıyorum netstat
ve lsof
:
netstat -an | grep <portnumber>
lsof -i:<portnumber>
Bağlantı noktasının kullanılıp kullanılmadığını ve ne kullandığını görmek için.
Sisteme bağlıysanız ve bir komutu root olarak çalıştırabilirseniz iptables çıkışını kontrol edebilirsiniz.
iptables -L -vn
Bu, güvenlik duvarı kurallarını ve hangi portların açık hedef olduğunu ACCEPT
ve açıkça kapatılmış portların hedefini listeler REJECT
.
firewall-cmd --query-port=port/protocol
, örneğin firewall-cmd --query-port=80/tcp
.
lsof -i :ssh
hem dinleyen hem de aktif bağlantılar olan ssh portu açık olan tüm işlemleri listeler.
sudo
Herhangi bir çıktı döndürmezse önek .