Server oluşturmak için NAT ayarları

Doradeniz

Centipat
Katılım
28 Temmuz 2019
Mesajlar
7
Benim amacım python programlama dilini kullanarak evdeki eski bir bilgisayarı basit hobi amaçlı bir servera dönüştürmek. Kendi local ağımdaki (aynı modeme bağlı ) bilgisaylar ile python socket programlamayı kullanarak bilgisayarlar arasında veri gönderip alabiliyorum(not: Sever bilgisayarımda antivirus programı yok ayrıca haberleştirme yapacağım portu Windows Defender güvenlik duvarından açıyorum). Ama iş farklı ağdaki bilgisayarları haberleştirmeye gelince problem yaşıyorum. Farklı ağdaki bilgisayarların benim server a bağlanabilmesi için modem arayüzünden NAT (network addres translation) yapmam gerektiğini öğrendim. Maalesef DMZ yapamıyorum çümkü aynı modeme birden fazla bilgisayar bağlı. Aşığıda yaptığım NAT ayarının fotoğrafı var. Bu arada TCP ile haberleşme yapıyorum.


tecnopat2.png


Analadığım kadarıyla bilgisayar(client) benim public IP adresimden 50007 numaralı servis portuma ulaşmak isterse. Modem bu bağlantıyı benim server (192.168.1.107 local IP'li) bilgisayarımın 50007 numaralı dahili portuna gönderiyor. Umarım tüm bunları doğru anlamışımdır yanlışım varsa düzeltin lütfen. Şimdi buraya kadar her şey tamam. Test aşamasına geçince doğru çalışmıyor.

test aşaması:
Başka bir ağdaki (mobil veriyi kullanıyorum Turkcell) bilgisayardan(client) benim public IP adresmim 50007 numaralı portuna bağlanmaya çalıştığım zaman timeout hatası alıyorum. İlk önce pythonda yazdığım basit bir server client ile denedim olamadı sonra HERCULES_3-2-8 isimli programı denedim.

HERCULES_3-2-8 isimli program linki :Hercules SETUP utility | HW-group.com
Not: Yazdığım python kodu ve HERCULES_3-2-8 isimli program kendi ağımdaki bilgisayarlar ile iletişim kurarken sorunsuz çalışıyor.
Hercules isimli programı bilgisayarda (client) çalıştırdım. Server tarafı 50007 numaralı portu dinliyor fakat client tarafı timeout hatası veriyor.

technopat3.png


Python kodlarımı çalıştırdığımda da client tarafında karşı bilgisayarın cevap vermesi çok uzun sürdü diyor ve timeout hatası veriyor. Client bilgisayarında antivirus programını kapatıp denedim bir işe yaramadı.

python kodlarım
---server. Py---

<code>
İmport socket.
İmport OS.
İmport time.

S = socket. Socket(socket. AF_INET, socket. SOCK_STREAM)

S. Bind(("",50007))

S. Listen(5)

While true:
Print("dinleniyor")
d,adres=s.accept()
Print(adres,"ten bağlanıldı")

D. Send(bytes("mesaj","utf-8"))
<code>

----client. Py----

<code>

İmport socket.
İmport OS.
İmport time.

S = socket. Socket(socket. AF_INET, socket. SOCK_STREAM)

s.connect(("88.230.55.xxx",50007))

Msg=s. Recv(100)

print(msg.decode("utf-8"))

<code>
 
Son düzenleme:
Portu açtın ve mobil ağdan 192.168.1.107 ağına bağlanmaya çalışıyorsun yanlış anlamadıysam. Eğer ki doğru anladıysam yapman gereken şey dış IP adresine bağlanmaya çalışmak.
Mobil ağdan dış ağaya açılacaksın dış ağ seni modeme götürecek modem de diğer PC'ye doğru düzen böyle olmalı.
 
Portu açtın ve mobil ağdan 192.168.1.107 ağına bağlanmaya çalışıyorsun yanlış anlamadıysam. Eğer ki doğru anladıysam yapman gereken şey dış IP adresine bağlanmaya çalışmak.
Mobil ağdan dış ağaya açılacaksın dış ağ seni modeme götürecek modem de diğer PC'ye doğru düzen böyle olmalı.
zaten dış ip ye (public ip) adresine bağlanmaya çalışıyorum python kodumdan ve hercules setup isimli programdaki görselden de anlaşılacağa üzere. [ connection to 88.230.x.xx]
 
Hangi alt yapıyı kullanıyorsun? Superonline kullanırken başıma gelmişti. Modemde gözüken ip adresim ile ipsorgu.comda gözüken ip adresim farklıydı. Müşteri hizmetlerinden düzeltmiştim. Kontrol et istersen sende de aynı sorun obilir.

Edit : Port tetiklemeyi denedin mi?
 
Hangi alt yapıyı kullanıyorsun? Superonline kullanırken başıma gelmişti. Modemde gözüken ip adresim ile ipsorgu.comda gözüken ip adresim farklıydı. Müşteri hizmetlerinden düzeltmiştim. Kontrol et istersen sende de aynı sorun obilir.
server bilgisayarımda turktelekom altyapısını kullanıyorum. Servera bağlantı yapmaya çalıştığım bilgisayarda (client) mecburan turkcell alyapısı kullanıyorum. Ama client ın ip adresi önemli değil ben servera bağlanmaya çalışıyorum. Yani önemli olan serverın public ip (dış ip ) adresini doğru bilmem
 
server bilgisayarımda turktelekom altyapısını kullanıyorum. Servera bağlantı yapmaya çalıştığım bilgisayarda (client) mecburan turkcell alyapısı kullanıyorum. Ama client ın ip adresi önemli değil ben servera bağlanmaya çalışıyorum. Yani önemli olan serverın public ip (dış ip ) adresini doğru bilmem

Public ipni vermiş olduğum siteden ya da modem arayüzünden öğrenebilirsin. Sorun devam ederse port tetiklemeden port açmayı deneyebilirsin.
 
Hangi alt yapıyı kullanıyorsun? Superonline kullanırken başıma gelmişti. Modemde gözüken ip adresim ile ipsorgu.comda gözüken ip adresim farklıydı. Müşteri hizmetlerinden düzeltmiştim. Kontrol et istersen sende de aynı sorun obilir.

Edit : Port tetiklemeyi denedin mi?

vermiş olduğunuz linkten ve birkaç web sitesinden public ip adresimi kontol ettim hepsinde server bilgisayarımın public ip adresim aynı gözüküyor. Tekrar HERCULES_3-2-8 isimli programı kullanarak denedim olmadı sonra sanal sunucuyu devre dışı bırakıp sizin dediğiniz gibi port tetiklemeyi etkinleştirdim. Sonra tekrar bağlanmayı denedim yine timeout hatası verdi. Port tetikleme yaparken server bilgisayarımın local ip adresini istemedi nasıl yönlendirme yapacak anlamadım. Acaba yanlış bilgasayara mı yönlendirme yapıyor?

birde sizin dediğiniz gibi web sitelerindeki public ip adresim hatalı olabilir o yüzden modem arayüzünden bulmaya çalıştım bulamadım.
Acaba başka etkisizleştirmem gereken güvenlik duvarı falan mı var
Ben server bilgisayarımdaki güvenlik duvarı izinleri bu şekilde ayarlıyorum atladığım bir bir şey olabilir mi?
Adsız.png
 
Uyarı! Bu konu 5 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Geri
Yukarı