127.0.0.1:49342: Yerel Sunucu IP Adresi, Port ve Hata Ayıklama Kılavuzu

127.0.0.1:49342: Yerel Sunucu IP Adresi, Port ve Hata Ayıklama Kılavuzu

Belki bir şeye tıkladınız. Belki bir terminal penceresi kaydı. Belki bir günlük dosyası gözünüze çarptı. Her ne olursa olsun, şu dize belirdi: `127.0.0.1:49342`. Tarayıcınız internette hiçbir yerde olmayan bir sayfaya yönlendirildi. Geliştirici araçları bunu işaretledi. Bir giriş açılır penceresi belirdi ve kayboldu. Görünürde hiçbir şey bozulmadı. Yine de bir şeyler biraz tuhaf geliyordu.

Rahat olun, hiçbir şey bozuk değil. Bu küçük dize aslında bir bilgisayar kullanırken göreceğiniz en yaygın şeylerden biridir ve iki yarısını anladığınız anda, bundan sonraki her `127.0.0.1:` sıradan bir cümle gibi okunacaktır. Soldaki IP adresi, dokunduğunuz her makinede aynı olan evrensel geri döngü adresidir. Sağdaki port ise işletim sisteminin yerel bir hizmete, bir web uygulamasına veya kendi donanımınızda çalışan programlar arasında kısa bir iletişim için bazı ağ hizmetlerine verdiği belirli bir porttur. Bunların hiçbiri harici ağa dokunmaz. Hepsi önünüzdeki tek kutuda kalır.

İşte plan şu: Bir açıklama ve bir sorun giderme kılavuzu, bir araya getirilmiş. Adresin tarihsel olarak nereden geldiği. Bir port numarasının aslında neyi temsil ettiği. Özellikle 49342'nin neden hiç de özel bir şey olmadığı. Bir Windows kullanıcısının bunu nasıl gördüğü, Linux veya macOS kullanan birinin ise nasıl gördüğü. Özellikle 2026'da güvenlik tablosunun nasıl göründüğü. Kripto geliştiricilerinin aynı deseni Hardhat, Anvil, Ganache ve Bitcoin Core ile Web3 geliştirme ortamında nasıl kullandığı. Baştan sona okuyun veya sizi aramaya yönlendiren bölüme doğrudan geçin.

127.0.0.1 Nedir: Geri Döngü Adresi Açıklaması

Önce IP kısmına bakalım. 127.0.0.1, günümüzde çevrimiçi olarak kullandığınız çoğu adresten daha eski. Ekim 1989'da, ticari internetin henüz ortada olmadığı zamanlarda, IETF, RFC 1122'yi yayınladı. 3.2.1.3 bölümünün içinde, ağ iletişimi alanında kağıda dökülmüş en açık kurallardan biri yer alıyordu: "Bu biçimdeki adresler bir ana bilgisayarın dışında görünmemelidir." Telefonunuzun işletim sistemi bunu bugün de uyguluyor. Ev yönlendiriciniz de öyle. O zamandan beri piyasaya sürülen her işletim sistemi bunu sessizce uygulamaya devam ediyor.

Ölçek insanları yanıltıyor. Bu kural 16.777.216 adres için geçerli. Hepsi için. 16 milyon adres rezervde tutuluyor, böylece bunlardan biri, 127.0.0.1, dünyanın herhangi bir yerinde "tam burada bulunan bu makine" anlamına güvenilir bir şekilde gelebiliyor. Biraz israf mı? Evet, şikayetler on yıllardır yüksek sesle dile getiriliyor. IANA'nın küresel IPv4 havuzu 3 Şubat 2011'de sıfıra indi. ARIN 24 Eylül 2015'te sıfıra indi. RIPE NCC son /22 bloğunu 25 Kasım 2019'da dağıttı. `draft-schoen-intarea-unicast-127` adlı bir IETF taslağı, 127 alanının çoğunun aslında tek noktaya yayın kullanımına geri dönebileceğini öne sürüyor. Kimse buna dokunmak istemiyor. Mevcut yazılımların çoğu 127'nin asla değişmeyeceğini varsayıyor.

Yeni başlayanları her zaman şaşırtan bir nokta var: paket kelimenin tam anlamıyla fiziksel ağ kartına asla ulaşmıyor. Yaklaşmıyor bile. 127.xxx hedefli herhangi bir paket, işletim sisteminin TCP/IP yığını tarafından 3. katmanda yakalanır ve sanal bir arayüzden (Linux ve macOS buna `lo` diyor) geçirilir. Çekirdek yine de gerçek iş yapar - TCP segmentini oluşturur, sağlama toplamını çalıştırır, alma yolunu izler. Gerçek, sıfır olmayan bir ek yük. Ancak yerel ağınızdaki hiçbir anahtar bu trafiği görmez. Hiçbir yönlendirici görmez. Hiçbir internet omurgası görmez.

"Localhost" kelimesi, şu anda açabileceğiniz düz metin bir dosyada eşlenmiş, insan dostu bir takma addır. Linux ve macOS'ta: `/etc/hosts`. Windows'ta: `C:\Windows\System32\drivers\etc\hosts`. Çözümleyici, herhangi bir DNS sunucusuna sormadan önce bu dosyaya erişir; bu nedenle `localhost`, Wi-Fi kapalıyken bile uçakta sorunsuz bir şekilde çözümlenir. IPv6, Şubat 2006'da RFC 4291 ile tanımlanan kendi sürümünü, `::1/128`'i getirir. Klasik bir Cuma baş ağrısı: modern bir tarayıcı `localhost`'u önce `::1` olarak çözümler, ancak Python uygulaması yalnızca 127.0.0.1'e bağlanır. Farklı soketler, kesişme yok, sessiz hata. Her hafta birilerinin iş akışını bozuyor.

127.0.0.1:49342 nedir?

49342 Numaralı Portu Neden Görüyorsunuz: Geçici Portlar ve IANA Aralıkları

Şimdi ikinci kısma geçelim. Port numaraları, IP adreslerinden daha çok kafa karıştırıyor ve bunun da geçerli bir sebebi var. IANA hizmet adı ve taşıma protokolü port kayıt defteri, 16 bitlik alanı (0'dan 65535'e kadar) üç bölüme ayırıyor ve 49342'nin hangi bölüme düştüğü tüm hikayeyi oluşturuyor.

Menzil Sayılar Amaç
Sistem (iyi bilinen) 0–1023 Standart hizmetler (HTTP 80, HTTPS 443, SSH 22, SMTP 25). Bağlantı kurmak için yönetici hakları gereklidir.
Kayıtlı Kullanıcı 1024–49151 Tedarikçilere atanan hizmetler (PostgreSQL 5432, MySQL 3306, RDP 3389)
Dinamik / Özel / Geçici 49152–65535 Kısa süreli tahsisler; hizmet rezervasyonu yapılamaz.

49342 numaralı port, dinamik aralık içinde yer almaktadır. Bu porta hiçbir şey "kayıtlı" değildir ve asla da olmayacaktır, çünkü IANA, işletim sistemlerinin geçici kullanım için burada port numaralarını serbestçe dağıtabilmesi için bu aralıkta hizmet atamayı reddetmektedir. Geçici port, bir uygulamanın belirli bir port numarasıyla talep etmediği, dinamik olarak atanan bir porttur. İşletim sistemine "bana herhangi bir boş port ver, sadece bu oturum için ihtiyacım var" demiştir. İşletim sistemi 49342'yi döndürmüş, uygulama bir dinleme soketi bağlamış ve kısa süreli bir adres ve port kombinasyonuna ihtiyaç duyan akış bunu elde etmiştir. 49342 numaralı port, bu tür geçici bağlama kullanılarak geçici yerel sunucu için sıklıkla kullanılır.

Varsayılan geçici aralık, işletim sistemine göre değişiklik gösterir.

İşletim sistemi Varsayılan geçici aralık Kaynak
Linux 32768–60999 `/proc/sys/net/ipv4/ip_local_port_range`, çekirdek belgeleri
Windows (Vista / Server 2008+) 49152–65535 Microsoft Learn
macOS (Darwin / BSD) 49152–65535 `sysctl net.inet.ip.portrange.first/hifirst`
FreeBSD 49152–65535 sysctl varsayılanları

Windows veya macOS'ta 49342, varsayılan aralığın tam içinde yer alır. İşletim sistemi ayırıcısı neredeyse kesinlikle bunu tahsis etmiştir. Linux'ta durum farklıdır; 49342, varsayılan 32768 ila 60999 aralığının üzerindedir, bu nedenle çekirdeğe `bind(('127.0.0.1', 0))` komutunu veren ve boş olan herhangi bir portu alan bir uygulama tarafından seçilmiştir. Ocak 2011'de IETF tarafından yayınlanan RFC 6056, güvenlik nedenleriyle yığınların 1024 ila 65535 arasındaki tüm aralıkta geçici port seçimini rastgele yapmasını söyler. Tahmin edilebilir portlar, akışların ele geçirilmesini kolaylaştırır. Bu nedenle aynı geliştirme sunucusu bugün 49342'ye, yarın 54871'e ve ertesi gün 33200'e yerleşebilir.

127.0.0.1:49342 adresinin bilgisayarınızda nerede göründüğü

Peki bu durum normal bir günde ne zaman ortaya çıkar? 49342 portunda çalışan yerel bir sunucu, geliştiricilerin uygulamaları yerel bir loopback soketine karşı test ettiği, geliştiriciler için araç kategorilerinin uzun bir listesinden herhangi bir şey olabilir. Aşağıdaki tablo, 49342 gibi portların günlük hayatta ortaya çıktığı ve belirtilen portta her seferinde bağlantı kabul eden servislerin çalıştığı durumları kapsamaktadır.

Yazılım Tipik liman Gördüğünüz şey
OAuth CLI oturum açma (gh, aws, gcloud) Rastgele geçici Tarayıcı 127.0.0.1 adresini açar, onaylar ve kapatır.
Jupyter Notebook 8888, sonra geçici Çekirdek soketleri 49152 aralığında rastgele portlar kullanır.
Vite geliştirme sunucusu 5173 Ön uç hızlı yeniden yükleme
React / webpack-dev-server 3000 Aynı aile
VS Code / JetBrains hata ayıklama Rastgele geçici Hata ayıklama adaptörü yerel bir sunucuya bağlanır.
Electron uygulamaları (Slack, Discord, Spotify) Rastgele geçici Dahili IPC köprüsü
Baret düğümü 8545 Ethereum JSON-RPC
Örs (Dökümhane) 8545 Ethereum JSON-RPC
Ganaj GUI'si 7545 Ethereum test zinciri
Bitcoin Core regtest 18443 RPC v0.16'dan beri

Tarayıcı adres çubuğuna kelimenin tam anlamıyla `127.0.0.1:49342` yazan tek durum nedir? Neredeyse her zaman OAuth. IETF'nin "Yerel Uygulamalar için OAuth 2.0" başlıklı RFC 8252'si Ekim 2017'de yayınlandı ve yerel uygulamalara geri döngü yönlendirme akışını kullanmalarını söylüyor; tek bir kural kesin olarak belirlenmiş: yetkilendirme sunucusu "herhangi bir port numarasına izin vermelidir." `gh auth login` veya `gcloud auth login` komutunu çalıştırın. CLI, rastgele geçici bir portta küçük bir http sunucusu başlatır, kimlik sağlayıcısına bir tarayıcı gönderir, bu geri döngü adresindeki geri çağrıyı yakalar ve kendini kapatır. 127.0.0.1:49342 gibi localhost adreslerinden birinin iki saniye kadar göründüğünü ve sonra kaybolduğunu görürsünüz. Bir hata değil. Bir izleyici değil. Bir dolandırıcılık değil. Sadece çok kısa bir el sıkışma, tamamen yerel, hiçbir noktada harici ağa ulaşmıyor.

127.0.0.1:49342 Hataları ve Bağlantı Noktası Çakışmaları Giderme

Tecrübelerime göre, localhost sorunları beş farklı şekilde karşımıza çıkıyor. Gece 11'de sizi arama yapmaya iten her şey bir şekilde bu kategorilerden birine giriyor.

Port zaten kullanımda. Node `EADDRINUSE` diye bağırıyor. Python size `OSError: [Errno 98] Address already in use` hatasını veriyor, gayet kötü. Windows ise sadece `WinSock 10048` yazıp gidiyor. Her durumda aynı temel gerçek var: makinenizdeki başka bir işlem 49342 portunu önce almış. Sizin göreviniz onu bulmak, sonlandırmak ve geri almak.

  • Linux'ta: `ss -tulpn | grep :49342` veya eski usul `sudo lsof -i :49342` komutunu kullanın.
  • Mac'te: `lsof -nP -iTCP:49342 -sTCP:LISTEN`
  • Windows'ta PowerShell'de: `netstat -ano | findstr :49342` komutunu çalıştırın, ardından bu PID'yi bir program adına dönüştürmek için `tasklist /fi "PID eq "` komutunu çalıştırın.

Sunucu çalışıyor, hiçbir şey bağlanamıyor. Bunu sandığınızdan daha sık yaşıyorsunuz. IPv4 ve IPv6 sessizce birbirine karıştı. Sunucunuz kendini 127.0.0.1'e bağladı. Tarayıcınız hiçbir sebep yokken `localhost`'u `::1` olarak çözümledi. Bunlar iki farklı soket olduğundan, elbette hiçbir şey bağlanmıyor. Bunu düzeltmek için her iki aileyi aynı anda bağlayın (çoğu yığında `::` üzerinde dinleme, IPv4 eşlenmiş adresleri de yakalama eğilimindedir) veya doğrudan URL'ye 127.0.0.1 yazın.

VPN'ler loopback trafiğini tüketiyor. Cloudflare WARP, açık ara en büyük suçlu. Cloudflare, bilinen sınırlamalar dokümantasyon sayfasında bunu kendisi de kabul ediyor: özellikle macOS'ta, WARP bağlantısını kesmek 127.0.0.1 rotasını doğrudan silebilir. VPN'i açıp kapattıktan hemen sonra localhost'unuz devre dışı kaldıysa, bunun nedeni neredeyse kesinlikle budur. WARP'ı yeniden bağlayın veya `sudo ifconfig lo0 127.0.0.1 alias` komutuyla rotayı manuel olarak geri getirin. Proton VPN, Mullvad ve NordVPN'in bu soruna neredeyse hiç neden olmadığı biliniyor. Kurumsal antivirüs ve EDR ürünleri farklı bir hikaye; bazıları loopback trafiğini garip şekillerde yakalayıp proxy'liyor.

HSTS, unuttuğunuz HTTPS testlerini hatırlıyor. Aylar önce, `localhost` üzerinde kendi imzaladığınız bir sertifikayı test ettiniz. Chrome, her zamanki gibi HSTS başlığını önbelleğe aldı. Şimdi her düz `http://localhost` isteği sessizce https'ye yönlendiriliyor. Hata ayıklaması çok eğlenceli. İki dakikalık çözüm: `chrome://net-internals/#hsts` adresini açın ve ilgili girdiyi silin.

Güvenlik duvarı kuralları. Loopback varsayılan olarak çoğu güvenlik duvarından geçer. Çoğu. Bazı kurumsal dizüstü bilgisayar imajları, kötü amaçlı yazılımlara karşı koruma önlemlerinin bir parçası olarak localhost'u kasıtlı olarak filtreler ve bunu uzun bir Perşembe gününün sonunda keşfedersiniz. Windows Defender Güvenlik Duvarı gelişmiş gelen kuralları kontrol edilmesi gereken yerdir. Linux'ta, `sudo ufw status verbose` komutunu kullanın. Gerçekten açılması gereken bir şey varsa, yalnızca söz konusu belirli bağlantı noktasına izin verin; tüm güvenlik duvarını devre dışı bırakmayın.

Ancak beni her zaman kurtaran bir alışkanlığım var. Herhangi bir güvenlik duvarı kuralına veya yönlendirmeye dokunmadan önce `lsof` veya `netstat` komutunu çalıştırın. Çoğu zaman, bunun nedeni, bugün daha önce çöken bir geliştirme çalışmasından kalan ve inatla portu meşgul eden bir zombi işlemi oluyor. PID'yi `kill -9` ile sonlandırın. Sorun saniyeler içinde ortadan kalkıyor.

Geliştirme Amaçlı Yerel Sunucu ve Sunucu Yapılandırmasının Ayarlanması

Hata ayıklamak yerine derleme mi yapıyorsunuz? Birkaç sunucu yapılandırma alışkanlığı edinin ve kendinize bir sürü öğleden sonrayı kurtarın. Bunların hiçbiri süslü püslü şeyler değil. Sıkıcı bir şeyin peşindeyiz: tek bir dizüstü bilgisayarda birden fazla ağ hizmeti ve farklı hizmetlerde güvenilir test ve hata ayıklama, hepsi bu.

Birinci kural, sıkıcı olanı: `0.0.0.0` yerine `127.0.0.1` adresine bağlanın. `0.0.0.0` adresinden dinlerseniz, küçük geliştirme web sunucunuz aniden sahip olduğunuz her ağ arayüzünde kendini duyurur. Yani: kafenin Wi-Fi'sinde yan masadaki rastgele bir kişi onu bulur. 127.0.0.1 adresine bağlanırsanız, yalnızca makinenizde zaten bulunan şeyler içeri girer. Python'ın `http.server`'ı, Node'un `express.listen()`'ı, Go'nun `http.ListenAndServe`'ı - hepsi IP adresini olduğu gibi kabul eder. Sadece yazın.

İkinci kural: Hangi portun kullanılacağı gerçekten umurunuzda değilse, seçmeyin. Dinleyiciye 0 portunu iletin (`server.listen(0)` Node'da, `bind(('127.0.0.1', 0))` Python'da) ve çekirdek o milisaniyede boş olan ne varsa onu geri döndürür. Daha sonra `getsockname()`'i çağırarak gerçekte ne aldığınızı öğrenin ve URL'yi isteyen bileşene iletin. Temel olarak, şimdiye kadar kullandığınız her OAuth CLI ve her hata ayıklama adaptörü tam olarak bunu yapar.

Üçüncü kural: sabit kodlanmış portlar yerine ortam değişkenleri kullanın. `PORT` değerini ortam değişkenlerinden alın, yoksa mantıklı bir değer atayın. Aynı ikili dosya, geliştirme ortamında 127.0.0.1:5173 adresinde, üretim ortamında ise ters proxy üzerinden 443 adresinde çalışır. Aynı modeli veritabanı dizeleri, API anahtarları ve diğer her şey için uygulayın. On İki Faktörlü Uygulama dokümanı bazı meslektaşlarınızdan daha eskidir ve yine de kesintileri önlemenin en ucuz yoludur.

Dördüncü kural: Yerel sunucuda HTTPS artık bir sorun değil. Chrome ve Firefox, gerçek bir sertifika olmasa bile, çoğu özellik için artık `localhost` ve `127.0.0.1` Güvenli Bağlam statüsü veriyor. Kendi kendine imzalanmış bir sertifikayı hala reddeden seçici bir kütüphane mi var? Hala en az can sıkıcı yerel CA olan `mkcert` kullanın. Python'ın `http.server` ve Node'un `net` modülü gibi yerleşik araçlar, yerel geliştirme sırasında yaklaşık beş satırda yerel bir sunucu kurmanıza olanak tanır; bu da geliştiricilerin, yalnızca loopback üzerinden iletişim kuracak servislerin gerektiği entegrasyon testleri için aynı komut dosyalarını yeniden kullanarak bir web uygulamasını gerçekçi yük altında test etmelerini sağlar.

Son kural ve aslında en önemlisi. Üretim yerel değildir. Nokta. Yerel makineniz bir güven sınırıdır; bir üretim konteyneri değildir. Üretim konteynerinin içinde 127.0.0.1 adresinde çalışan hata ayıklama uç noktalarını asla bırakmayın, çünkü aynı konteynerdeki diğer işlemler ilk günden itibaren bunlara erişebilir ve bir çalışma zamanı hatası sonrasında saldırgan da içeri girebilir. Yerel sunucu trafiğini yalnızca gerçekten ait olduğu yerlerde, geliştirme ortamlarında ve başka hiçbir yerde kullanmayın ve portu kullanan herhangi bir dahili API'nin paylaşımlı bir ortama veya üretim ortamlarına geçtiği gün, hemen önüne gerçek kimlik doğrulaması koyun. "Lansmandan sonra düzelteceğiz" demeyin. Bu önceki şirketin yaklaşımıydı.

127.0.0.1:49342 nedir?

49342 Numaralı Portu Güvenli Kullanma: Loopback Adresinde Güvenlik

Localhost özel bir his veriyor. Ve çoğunlukla öyle de. Ta ki aniden öyle olmaktan çıkana kadar.

İşte herkesin eninde sonunda karşılaştığı bir sorun. Dışarıdan gelen saldırganlar 127.0.0.1 adresini doğrudan arayamazlar, elbette. Ancak dışarıdan gelen saldırganlar kesinlikle kendi tarayıcınızı veya makinenizde zaten güvendiğiniz bir uygulamayı kandırarak onların adına arama yapmalarını sağlayabilirler. Bu saldırı türünün tamamına DNS yeniden bağlama denir. Bu saldırı, bu yazıyı okuyan çoğu kişi kod yazmaya başlamadan çok önce localhost hizmetlerini etkiliyordu.

Kripto para camiasının hâlâ referans gösterdiği örnek, 24 Nisan 2018'deki MyEtherWallet olayıdır. Saldırganlar, Amazon'un Route 53'üne karşı bir BGP korsanlığı gerçekleştirdi, myetherwallet.com için DNS yönlendirmesini değiştirdi ve yaklaşık 215 ETH (The Register ve İnternet Topluluğu'nun raporlarına göre, hangi zaman damgasını kullandığınıza bağlı olarak yaklaşık 152.000 ila 160.000 dolar) çalmak için yeterince uzun süre aktif kalan bir kimlik avı klonu sundu. Tam olarak bir localhost saldırısı değil, biliyorum. Ancak bu, kripto topluluğunun tarayıcının kaynak modelinin gerçek bir güvenlik sınırı olduğunu iddia etmeyi bıraktığı dönüm noktasıydı. Loopback portunda sessizce dinleyen her yerel cüzdan köprüsü birdenbire savunmasız hissetmeye başladı.

Chrome'un cevabı, taslak halinde CORS-RFC1918 olarak adlandırılan Özel Ağ Erişimi (Private Network Access) oldu. Mart 2024'ten beri, tarayıcı artık herhangi bir genel web sitesinin özel veya geri döngü adresine erişmesine izin verilmeden önce `Access-Control-Request-Private-Network: true` içeren bir CORS ön kontrolü başlatıyor. Yerel servisinizin geçmesi için `Access-Control-Allow-Private-Network: true` ile yanıt vermesi gerekiyor. Tam uygulama, Chrome 123 ila 130 sürümlerinde geçerli olacak. Bu nedenle, entegrasyon testleri sırasında genel bir sayfanın erişmesini bekleyen 127.0.0.1:49342 adresinde bir geliştirme sunucusu gönderiyorsanız, bu başlığı ayarlayın. Aksi takdirde istek sessizce ölür.

Buradayken, 2025 Electron CVE'lerinden birkaçına da değinmekte fayda var. CVE-2025-10585, 23 Eylül 2025'te CISA'nın Bilinen İstismar Edilen Güvenlik Açıkları kataloğuna eklenen bir V8 tür karışıklığı hatasıdır. CVE-2025-55305 ise aynı dönemde açıklanan ve V8 yığın anlık görüntülerine müdahale eden bir kod bütünlüğü atlatma açığıdır. Electron, Chromium'u sarmalar ve dizüstü bilgisayarınızda bir sürü Electron uygulaması bulunur (Slack, VS Code, Discord, Notion, Teams, muhtemelen daha fazlası). Bunların çoğu yerel hizmetleri loopback üzerinde açığa çıkarır. Hızlıca yamalayın. Ve lütfen, eğer bir uç nokta anahtarları okuyabiliyorsa, işlemleri imzalayabiliyorsa veya herhangi bir şekilde paraya dokunabiliyorsa, 127.0.0.1 üzerinde bir kimlik doğrulama belirteci olmadan asla bir RPC uç noktası oluşturmayın.

Kripto Para Geliştiricileri Hardhat, Anvil ve Ganache'de Localhost'u Nasıl Kullanıyor?

Web3 geliştirme, temelde 127.0.0.1 ağ adresi referanslarının sonsuz bir geçit törenidir; ister sözleşme dağıtımına, ister protokol bulanıklaştırmasına, isterse de yerel bir zincire karşı günlük web geliştirmeye odaklanın. Şu anda dizüstü bilgisayarınızda localhost üzerinde çalışan küçük bir yerel düğüm kümesi var (yarısını unutmuş olsanız bile). Her birinin kendi sunucu ve port kuralları vardır. Her biri, istemcilerin bağlanabileceği farklı bir IP adresi ve port kombinasyonu sunar; genellikle aracın varsayılan olarak kullandığı belirli bir port kullanılır.

Hızlı özet. Nomic Foundation'ın Hardhat Network'ü varsayılan olarak `http://127.0.0.1:8545` adresini ve 31337 zincir kimliğini kullanıyor. Foundry'nin Anvil'i de aynı adresi ve portu kullanıyor; iki test paketi açıkken ve birbirleriyle çakışırken `--port` parametresiyle yapılandırılabiliyor. Ganache GUI, 5777 ağ kimliğiyle `127.0.0.1:7545` adresini kullanırken, CLI sürümü Hardhat'ın 8545 portunu paylaşıyor. Bitcoin Core'un regtest modu ise JSON-RPC'yi `127.0.0.1:18443` adresinde çalıştırıyor; bu değişiklik aslında birisi testnet'in 18332 portuyla çakıştığını belirttikten sonra 10825 numaralı çekme isteğiyle v0.16'ya geri döndü.

MetaMask, kelimenin tam anlamıyla bunların herhangi birine bağlanır. Yerel RPC URL'si ile özel bir ağ ekleyin ve hazırsınız. 127.0.0.1 IP adresi, tarayıcı tabanlı cüzdan arayüzünüz ile o anda dizüstü bilgisayarınızda çalışan simüle edilmiş blok zinciri arasında ince bir köprü görevi görür. Bir Web3 yığın izinde `127.0.0.1:` ifadesini gördüğünüzde, bu neredeyse her zaman iki şeyden biridir: IDE'nizin hata ayıklama adaptörü düğüme müdahale ediyor veya düğüm, sabit RPC'sinin hemen yanındaki rastgele bir bağlantı noktasında bir WebSocket uç noktası başlatıyor.

Ödeme entegrasyonları bu modeli tekrarlar. Plisio destekli bir kripto ödeme sistemi mi geliştiriyorsunuz? Sonuç olarak, SDK'yı yerel olarak `127.0.0.1:3000/plisio/callback` adresindeki küçük bir Flask veya Express dinleyicisine karşı çalıştırırsınız. Ağ geçidinin webhook'u hiçbir zaman doğrudan genel internetten dizüstü bilgisayarınıza ulaşamaz, bu nedenle yerel test, portu açığa çıkarmak için bir tünel (ngrok, Cloudflare Tunnel, Tailscale Funnel) kullanır. Bu, satıcı olarak sizin seçtiğiniz ve kontrol ettiğiniz belirli bir port numarasındaki belirli bir porttur. Plisio'nun PHP, Python, Laravel ve Node.js SDK'larının her biri, mağazanın gizli anahtarına karşı yükün HMAC-SHA1'ini yeniden hesaplayan bir `verifyCallbackData` yardımcı fonksiyonu içerir. Kontrol, yerel dinleyiciye inen her geri çağrıya karşı çalışır. Aynı geri döngü adresi, aynı iş, gerçek imza eklenmiş.

Bir an için daha geniş bir perspektiften bakalım. Bu örüntü aslında her yerde karşımıza çıkıyor: geliştirme aşamasında kullanılan ödeme, OAuth, Web3 ağ servislerinin hepsi içeriden bakıldığında aynı görünüyor — 49342 veya başka bir dinamik portta çalışan bir sunucu, belirtilen portta gerçek bağlantılar ve tüm süreç boyunca localhost üzerinde çalışıyor.

Herhangi bir işletim sistemi için hızlı yerel sunucu ve bağlantı noktası kontrolleri

Kısa bir özet. Terminal sekmesinde açık tutun. Sandığınızdan daha sık bunlara ihtiyacınız olacak.

Bir Linux sunucusu düşünün, herhangi bir dağıtım. `sudo ss -tulpn | grep :49342` komutu "49342 portunda kim var" sorusuna cevap verir. Bu grep komutunu kaldırırsanız, makinenin açık olan tüm dinleme soketlerini görürsünüz. Çekirdeğin dinamik port sınırını merak mı ediyorsunuz? `cat /proc/sys/net/ipv4/ip_local_port_range` komutunu çalıştırın. Sadece loopback portunun kendisinin aktif olduğunu kanıtlamak istiyorsanız, `ip addr show lo` komutu size gösterir. Ve bakın, eğer `lo` çıktıda yoksa, porttan çok daha büyük bir sorun bulmuşsunuz demektir.

Mac de benzer şekilde çalışır, ancak BSD dünyasında yaşadığı için farklı araçlar kullanır. `lsof -nP -iTCP:49342 -sTCP:LISTEN` komutu, portta bekleyen işlemi yazdırır. İki nokta üst üste ve sayıyı kaldırırsanız, tüm dinleyicileri listelersiniz. Diğer kullanıcıların soketlerine erişim gerektiğinde `sudo` önekini kullanın. Geçici aralık `sysctl net.inet.ip.portrange.first net.inet.ip.portrange.hifirst` adresinde bulunur. Loopback burada `lo0` (değil `lo`) olarak adlandırılır ve bu küçük isimlendirme tuhaflığı, insanlar bunu sonsuza dek içselleştirmeden önce tam olarak bir kez yakalarlar. `ifconfig lo0` ile inceleyin.

Windows, lehçeyi tamamen değiştiriyor. Yönetici olarak bir PowerShell penceresi açın. `netstat -ano | findstr :49342` komutu bir PID verir. Bu PID'yi `tasklist /fi "PID eq "` komutuna atarak sayıyı bir uygulama adına çevirebilirsiniz. Dinamik aralık mı? `netsh int ipv4 show dynamicport tcp`. Eski bir uygulamanın düşük aralıkta bir şey talep etmesi nedeniyle aralığı aşağı kaydırmanız mı gerekiyor? `netsh int ipv4 set dynamic tcp start=49152 num=16384` komutu bunu değiştirir.

Bunları kas hafızanıza yerleştirin ve localhost sorunlarınız beş dakikalık, belki de daha kısa sürede çözülebilir hale gelsin. Bunu bir ara deneyin: Çalışma dizüstü bilgisayarınızda `lsof -nP -iTCP -sTCP:LISTEN | grep 127.0.0.1` komutunu çalıştırın. Kaydırılan liste her zaman beklediğinizden daha uzundur. Tarayıcının arka plan sekmeleri. Birkaç editör dil sunucusu, genellikle birden fazla. Docker'ın dahili DNS'i. Slack, Discord, Linear ve çalıştırdığınız diğer her şeyden Electron IPC köprüleri. Var olduğunu hiç bilmediğiniz bir işletim sistemi telemetri servisi. Artı, bu sabah kesinlikle kapatmayı unuttuğunuz altı veya yedi geliştirme sunucusu. Bu gürültü seviyesi normaldir. Çalışan bir geliştirme ortamının altından gelen sesler tam olarak böyledir.

Sorusu olan?

Çoğunlukla evet. Loopback trafiği makinede kaldığı için dışarıdan kimse ona ulaşamaz. Gerçek riskler DNS yeniden bağlama (genel bir sitenin tarayıcınızı yerel şeyleri çağırmaya kandırması) ve kimlik doğrulaması yapılmamış yerel API`lerdir. Chrome`un Özel Ağ Erişimi ilkini düzeltir; uç noktanızdaki bir belirteç ikincisini düzeltir.

Mac veya Linux`ta en hızlı yol `lsof -i :49342` komutudur (başka bir kullanıcının sahip olabileceği durumlarda sudo ekleyin). Windows`ta ise PowerShell`i açın ve `netstat -ano | findstr :49342` komutunu deneyin, ardından PID`yi `tasklist` komutuna verin. Hiçbir şey yazdırılmazsa, port sizindir — bind komutunu çalıştırın.

Çoğunlukla: geliştirme işleri. Uygulama testleri, hata ayıklama, yerel RPC, entegrasyon testleri sırasında veritabanları, OAuth CLI geri çağırmaları. Kripto paralarla ilgilenenler için Hardhat, Anvil, Ganache ve Bitcoin regtest`in bulunduğu yerdir. Diğer herkes için ise "işin çalışıp çalışmadığını görmek için beş dakika önce başlattığım sunucu"dur.

Hayır, tek başına değil. Sadece loopback. Eğer aynı makinede dnsmasq, unbound veya Pi-hole çalıştırıyorsanız, elbette bunlardan biri 127.0.0.1:53 adresinde dinleme yapacak ve DNS çözümleyicisi rolünü üstlenecektir. Ancak adres rol oynamaz. `localhost` sorgusu aslında DNS`ten değil, hosts dosyasından gelir.

Sadece yazmanız yeterli. `http://localhost:` veya `http://127.0.0.1:`, ikisi de çalışır. Dinleyen bir servis varsa sayfa yüklenir; dinleyen bir servis yoksa boş bir sayfa veya "bağlantı reddedildi" hatası alırsınız. Hangisi olduğunu kontrol etmek için Mac veya Linux`ta `lsof`, Windows`ta `netstat -ano` komutunu çalıştırın.

Temelde Loopback. RFC 1122, 1989`da bunu ayırdı, böylece makineniz bir karta veya kabloya dokunmadan kendi kendine iletişim kurabilir. Web sunucuları oraya bağlanır, veritabanları da öyle, çoğu geliştirme aracı varsayılan olarak bunu kullanır. Adresin kendisinde karmaşık bir şey yok; her işletim sistemi bunu önceden yapılandırılmış olarak gönderir, bu yüzden asla düşünmenize bile gerek kalmaz.

Ready to Get Started?

Create an account and start accepting payments – no contracts or KYC required. Or, contact us to design a custom package for your business.

Make first step

Always know what you pay

Integrated per-transaction pricing with no hidden fees

Start your integration

Set up Plisio swiftly in just 10 minutes.