Bir portun açılıp açılmadığını nasıl öğrenebilirim?


22

Windows 7 bilgisayarıma Apache sunucusunu kurdum. Tarayıcımın adres satırına http: // localhost / yazarak varsayılan index.php dosyasını gösterebildim .

Ancak, bu sayfayı bilgisayarımın IP adresini yazarak (ne yerel olarak (aynı bilgisayardan) genel olarak (İnternete bağlı başka bir bilgisayardan)) yazarak göremiyorum.

80 numaralı bağlantı noktasını açmam gerektiği söylendi. Bunu ( burada açıklanan şekilde ) yaptım ancak sorunu çözmedi.

Öncelikle hangi portların açıldığını ve hangilerinin açılmadığını kontrol etmek istiyorum. Örneğin açmaya çalışmadan önce 80 numaralı portumun kapalı olduğundan emin değilim. Ayrıca açmaya çalıştıktan sonra açıldığından da emin değilim.

Python ile yazılmış çok basit bir web sunucusu çalıştırmaya çalıştım. Bunun için 81 numaralı bağlantı noktasını kullandım ve işe yaradı! Ve 81 numaralı bağlantı noktasını açmayı denemedim. Bu yüzden varsayılan olarak açıldı. Öyleyse, 81 varsayılan olarak açılırsa, neden 80 değil? Yoksa öyle mi?

EK BILGILER:
1. httpd.conf dosyamda "Listen 80" var.
2. Bu site bilgisayarımdaki 80 numaralı bağlantı noktasının açıldığını söyledi.
3. http: // myip: 80 ve http: // myip: 81'i denerseniz farklı yanıtlar alırım . Son durumda tarayıcı (Chrome) bana bu bağlantının koptuğunu yazıyor. İlk durumda alıyorum: Yasak Bu sunucuya erişim izniniz yok.
4. IE "Web sitesi bu sayfayı göstermeyi reddetti" yazıyor.


3
İlk durumda "Yasak" yazıyorsa, kök dizininiz ya da sanal ana makineniz doğru kurulmamış.
Urda

Bir yönlendirici arkasında olduğunuzu varsayarak, yönlendirici üzerinde bağlantı noktası iletmeyi ayarladınız mı? Yönlendiriciniz (çoğu) muhtemelen kendi web tabanlı yönetici arayüzü için zaten 80 numaralı bağlantı noktasını kullanır. Her durumda, istekleri ortak IP adresinize (yönlendirici) bilgisayarınızın yerel IP adresine, 80 numaralı bağlantı noktasında (veya her neyse) iletmeniz gerekir.
Jongosi

Yanıtlar:


16

Sadece limanlarınızı dışarıdan kontrol ediyorsanız. Bu aracı kullanın:

http://www.yougetsignal.com/tools/open-ports/

IP adresinize, belirli bir bağlantı noktasında bağlanmaya çalışacak ve dış dünyaya açık veya kapalı olduğunu size bildirecektir.

Yerel sorunlar da mı? Windows 7 güvenlik duvarı sizi kesiyor gibi görünüyor. Bu öğreticiye bir istisna ekleyin ...

http://www.sevenforums.com/tutorials/542-windows-firewall-add-remove-exception.html


Bağlantı noktalarımı yougetsignal.com/tools/open-ports ile kontrol ettim . Bu site 80 numaralı limanımın açıldığını yazıyor (79 ve 81 kapalı iken).
Roman,

Windows 7 Güvenlik Duvarı istisnalarınızı kontrol ettiniz mi? Neden localhostdiğer bilgisayarlardan erişip erişemeyeceğinizi açıklar .
Urda

Urda, 80 numaralı bağlantı noktasını bu şekilde açtım: maximumpcguides.com/windows-7/… . Bu nedenle, tüm IP'ler için açılmalıdır. Ayrıca bana verdiğiniz site 80 numaralı limanın açık olduğunu söylüyor.
Roman,

1
İlk durumda "Yasak" yazıyorsa, kök dizininiz ya da sanal ana makineniz çoğu durumda doğru şekilde kurulmamıştır. Bir bağlantı kopar çünkü 81 çözülmez.
Urda

1
@Kirk, sonuçta harika bir web sitesi!
Urda

13

Komut isteminden çalıştırmak netstat -a -nveya ss -a -nbu komut isteminden, tüm ağ bağlantılarının açık olduğunu ve makinenizdeki dinleme bağlantı noktalarını gösterir. 0.0.0.0:80o bağlantı noktasında dinleme kıldığı anlamına gelir 80olarak tüm ip adreslerinin (localhost ve kamu / özel IP adresleri) 127.0.0.1:80yalnızca localhost üzerinde dinliyor anlamına gelecektir. -bKomuta ekleyebilir ve hangi portun o portu kullandığını gösterir. Ağ İzleyicisi'nin Dinleme Bağlantı Noktaları bölümünün altındaki Windows 7'deki Kaynak İzleyicisi'ni kullanarak aynı bilgileri alabilirsiniz.


5

Başka bir sunucudan açık olup olmadığını görmek istiyorsanız, sadece telnet serverName 80oturumun açılıp açılmadığını görebilirsiniz. Bunu yapmazsa, sunucu dinlemiyorsa veya bağlantı noktası bir güvenlik duvarı tarafından engelleniyorsa.

Hemen açılıyor ve hemen kapanıyorsa, en azından Windows 2003'te, yazılım (Exchange gibi) belirli bir arayüzü veya IP'yi dinleyecek şekilde yapılandırılmamış olabilir, ancak diğer portlarda dinliyordur. Apache'nin IIS'nin aptal olduğu için bu şekilde davrandığını gördüm.


2

Sen yazdın:

İlk durumda alıyorum: Yasak Bu sunucuya erişim izniniz yok.

Her ne kadar bu garip gelse de, aslında açık portlarla (Apache config ile) bir probleminiz yok .

Bu "Yasak" mesajı Apache sunucunuzdan geliyor; sizin web sunucusu demektir olan internetten erişilebilir.

Apache'yi tüm ana bilgisayarlara sunmaya izin verecek şekilde yapılandırmanız gerekir - aksi takdirde "Yasak" sayfasını alırlar. IIRC, Apache başlangıçta yalnızca yerel bilgisayardan gelen isteklere izin verecek şekilde ayarlandı.

Apache yapılandırmanızın bir yerinde, muhtemelen bunun gibi bir bölüm var (gerçek dizin farklı olabilir):

<Directory "/home/piskvor/www">
    Allow from 127.0.0.1
    Deny from all
(...)

Eğer herhangi bir bilgisayar sayfalarınızı görmesine izin vermek istiyorsanız, değiştirmek gerekir Deny from alliçin Allow from all. Daha fazla bilgi için erişim modülü belgelerine bakın .


1

Açık portları görmek için muhtemelen nmap kullanmanız gerekir Windows sürümleri vardır: http://nmap.org/dist/nmap-5.21-setup.exe

Eğer 80 nolu bağlantı noktanızın localhost'tan açık olduğunu görmeniz yeterli değildir - belki başka bir yerden denerseniz bir şekilde ayakta durabilirsiniz, bu yüzden nmap'ı tavsiye ederim.

Yazdığınız istemciden: nmap sunucunuzun ipi



0

Sunucu bağlantı noktaları tek bir IP adresine veya kullanılabilir her IP adresine bağlanabilir. Apache kurulumunuz sadece 127.0.0.1 'e bağlanmak üzere ayarlanmış gibi görünüyor ve bunu * olarak ayarlamak için ayarlamanız gerekiyor. Httpd.conf dosyanızda (Apache'nin dizininde), gibi bir satır arayın Listen localhost:80ve değiştirin Listen 80.


1
Httpd.conf dosyamı buldum. Dosyada "Dinle 80" var.
Roman,

0

telnet <host> <port>senin arkadaşın. Dünyadaki hemen hemen her bilgisayara kuruluyor.

Soruyu yeniden okuduktan sonra yapılan düzenlemeler:

İşte bazı yararlı tanı ipuçları

  1. siteye localhost üzerinden erişebiliyorsanız, ancak sitenizdeki yerel IP adresinizle (192.168. *) ağınızdaki diğer ana bilgisayarlardan erişemiyorsanız, bu muhtemelen bir Windows güvenlik duvarı sorunudur.

  2. siteye diğer yerel yerel makinelerden erişebilir, ancak internetten genel IP'nize erişemezseniz, bu bir yönlendirici / bağlantı noktası yönlendirme yapılandırma sorunudur.


0

Komut isteminden şunu yazın:

netstat -ano, look for 0.0.0.0:80 

... veya IP’niz: 80. Bu, makinenizde 80 numaralı bağlantı noktasının açık olup olmadığını size söyleyecektir. Şimdi, kontrol edip görmek isterseniz, ağınızın dışından erişip erişemediğinizi, bir tür güvenlik duvarının olup olmadığını belirleyecektir. Bunu yaparsanız, 80 numaralı bağlantı noktasını web sunucunuza yönlendirmeniz gerekir.


0

Windows kullanıyorsanız, SysInternals TCPView kullanın . Hangi programın hangi portu kullandığını söyleyebilir.

Screenshto


Teşekkürler Dio Phung. Bu windows yardımcı programı gerçekten yararlıdır.

-2

DOS komutunda:

C:\Windows\system32>netstat -a -b

使用中連線

  協定   本機位址               外部位址               狀態
  TCP    0.0.0.0:80             801781-N1:0            LISTENING     [Skype.exe]
  TCP    0.0.0.0:135            801781-N1:0            LISTENING      RpcSs      [svchost.exe]
  TCP    0.0.0.0:443            801781-N1:0            LISTENING     [Skype.exe]
...
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.