Modeminizin adresini yazıyorsunuz, küçük bir internet mağazasını açıyorsunuz ya da kendi bilgisayarınızda bir proje başlatıp localhost:3000 adresine gidiyorsunuz. Sayfa yerine Chrome "Bu siteye ulaşılamıyor" başlığını, altında "localhost bağlanmayı reddetti." gibi gri bir satırı ve en altta ERR_CONNECTION_REFUSED kodunu gösteriyor. Sayfayı yenilediğinizde aynı ekran yine hemen geliyor.
Bu hız bir ipucudur: tarayıcı makineyi buldu, makine de "hayır" dedi. Bu yazıda reddedilen bağlantının ne anlama geldiğini ve zaman aşımından farkını, ziyaretçinin ve telefon kullanıcısının yapacağı kontrolleri, sunucu sizinse neyi değiştirmeniz gerektiğini, localhost adresinin neden bağlanmayı reddettiğini ve aynı hatanın proxy kullanan betiklerde nasıl göründüğünü anlatıyoruz.
ERR_CONNECTION_REFUSED ne anlama gelir?
Her sunucunun port adı verilen numaralı kapıları vardır ve sunucudaki her program bu kapılardan birinin arkasında bekler. Web sayfaları https:// adresleri için 443, http:// adresleri için 80 numaralı portu kullanır; localhost:3000 örneğindeki gibi iki noktadan sonra gelen sayı başka bir kapıyı seçer.
"Reddedildi", kapıyı çaldığınızda makinenin cevap verdiği ama o kapının arkasında dinleyen bir program olmadığı anlamına gelir. Makine kısa bir sıfırlama sinyaliyle (RST) cevap verir. Bağlantıların kurallarını koyan TCP standardı, bekleyen hiçbir programa denk gelmeyen bir isteğe tam olarak bu cevabın verilmesini ister (RFC 9293, bölüm 3.5.2).
Kısacası adres doğrudur ve makine açıktır; eksik olan programdır ya da program başka bir kapının arkasındadır. Önbelleği temizlemenin ya da DNS'i değiştirmenin işe yaramamasının nedeni de budur: sayfa hiç gelmedi, sitenin adı ise zaten bulunmuştu.
Bağlantı adım adım nasıl reddedilir?
- Tarayıcı sitenin adını bir IP adresine, yani sunucunun sayısal adresine çevirir. Bu adım başarısız olursa karşınıza bu hata değil, bir DNS hatası çıkar.
- Portu seçer: 443, 80 ya da iki noktadan sonraki sayı.
- O adrese ve porta "bağlanabilir miyim?" diye soran bir istek gönderir.
- Sunucunun işletim sistemi o portu dinleyen bir program bulamaz.
- Genellikle milisaniyeler içinde bir sıfırlama sinyali geri gönderir; tarayıcı da "bağlanmayı reddetti" mesajını gösterir.
Bağlantıları sessizce yok saymak yerine reddetmeye ayarlanmış bir güvenlik duvarı da aynı cevabı sunucu adına gönderebilir.
Hata her tarayıcıda nasıl görünür?
| Tarayıcı | Ekranda yazan | Kod |
|---|---|---|
| Chrome, Edge, Brave, Opera | "Bu siteye ulaşılamıyor", "example.com bağlanmayı reddetti." ve Aşağıdakileri deneyin: listesinde "Bağlantınızı kontrol etme" ile "Proxy'yi ve güvenlik duvarını kontrol etme" | ERR_CONNECTION_REFUSED |
| Firefox | "Bağlanılamadı" | Yok |
Chrome, Edge, Brave ve Opera'nın altyapısı olan açık kaynaklı Chromium'u Türkçe arayüzle kapalı bir porta yönlendirdik ve bu satırların aynısını gördük. Firefox başlığı Mozilla'nın Türkçe metin dosyalarından alındı. Safari kendi ifadesini kullanır; aşağıdaki kontroller onda da aynıdır.
Ret mi, zaman aşımı mı, sıfırlama mı: sizinki hangisi?
Aynı gri ekran birkaç farklı kod taşıyabilir ve her kod farklı bir adımı gösterir. Aşağıda bu kodları, sık karıştırıldıkları proxy hatasıyla birlikte görüyorsunuz:
| Kod | Ne oldu? | Sık görülen neden | İlk adım |
|---|---|---|---|
ERR_CONNECTION_REFUSED | Makine cevap verdi: orada dinleyen yok | Durmuş servis, yanlış port ya da https | Adresi kontrol edin |
ERR_CONNECTION_TIMED_OUT | Hiç cevap gelmedi | Kapalı sunucu, trafiği düşüren güvenlik duvarı | Herkes için mi çökmüş? |
ERR_CONNECTION_RESET | Bağlantı açıldı, sonra kesildi | Güvenlik yazılımı, VPN, ağ filtresi | Başka bir ağ deneyin |
ERR_PROXY_CONNECTION_FAILED | Proxy ayarınız çalışmıyor | Unutulmuş ya da kapanmış bir proxy | Proxy'yi kaldırın ya da düzeltin |
Ret en fazla birkaç saniyede gelir; zaman aşımında ise çok daha uzun beklersiniz. Bu ekranda çıkabilecek bütün kodları Bu Siteye Ulaşılamıyor Hatası Nedir, Neden Çıkar? yazımızda anlattık.
Ziyaretçi olarak nasıl çözersiniz?
Her adımdan sonra sayfayı yenileyin. İlk iki adım sorunun kimde olduğunu gösterir.
- Adresi kontrol edin. Eski bir modem ya da yazıcı gibi yalnız
http://ile çalışan bir cihazın adresinehttps://yazdıysanız tarayıcı 443 numaralı portun kapısını çalar, ama orada dinleyen yoktur; cihazın etiketindeki adresi kullanın. İki noktadan sonraki sayı, servisin gerçekten kullandığı portla aynı olmalıdır; eski bir yer imi, sitenin artık kullanmadığı bir portu saklıyor olabilir. Bu sayıların ne anlama geldiğini 8080 Portu Nedir, Ne İşe Yarar? yazımızda açıkladık. - Siteyi telefonunuzda Wi-Fi kapalıyken deneyin. Mobil veride de reddediliyorsa sitenin sunucusu durmuş ya da yeniden başlıyordur; bu çoğu zaman bakım sırasında olur. Bekleyin; sizin tarafınızda yapacağınız hiçbir şey bunu değiştirmez.
- Yalnız bilgisayar açamıyorsa VPN'i kapatın ve sayfayı yenileyin. VPN, trafiğin izlediği yolu ve sitenin gördüğü adresi değiştirir; sorunun kaynağı VPN'in sunucusu ya da kuralları olabilir.
- Güvenlik yazılımınızın web korumasını tek bir test için duraklatın, sonra yeniden açın. Chrome'un "Proxy'yi ve güvenlik duvarını kontrol etme" önerisi buraya işaret eder. Site açılırsa korumayı kapalı bırakmak yerine o site için bir istisna ekleyin.
- Hosts dosyasına bakın. Windows'taki bu küçük metin dosyası bir sitenin adını sabit bir adrese gönderebilir. Bazı reklam engelleyiciler ve eski geliştirme kurulumları siteleri
127.0.0.1adresine, yani kendi bilgisayarınıza yönlendiren satırlar ekler.C:\Windows\System32\drivers\etc\hostsdosyasını Not Defteri ile açın:#ile başlayan satırlar yalnız açıklamadır, ama sitenin adının yanında127.0.0.1yazan bir satır o siteyi, onu sunan hiçbir programın olmadığı kendi bilgisayarınıza gönderir. Dosyayı değiştirmek için yönetici yetkisi gerekir.
Büyük siteler bu hatayı nadiren gösterir. Önlerinde ziyaretçiye ilk cevabı veren bir sunucu ağı, yani bir CDN durur; sunucu çöktüğünde CDN'in kendi hata sayfasını görürsünüz. Cloudflare, sitenin sunucusunun bağlantıyı reddetmesine "521 hatası" der.
Proxy ayarı ERR_CONNECTION_REFUSED hatasına yol açar mı?
Chrome'da nadiren; hangi durumda olduğunuzu da ekran söyler. Proxy, trafiğinizi sizin adınıza ileten bir ara sunucudur. Chrome kullanmaya ayarlandığı proxy'ye ulaşamazsa başka bir sayfa gösterir: "İnternet bağlantısı yok" başlığı, "Proxy sunucusunda bir sorun var veya adres yanlış." satırı ve ERR_PROXY_CONNECTION_FAILED kodu. Firefox bu durumda "Vekil sunucu bağlantı kabul etmiyor" der.
Bunu Chromium'da test ettik: 127.0.0.1 üzerindeki kapalı bir portu gösteren proxy ayarıyla ERR_PROXY_CONNECTION_FAILED hatası çıktı, aynı portu doğrudan açtığımızda ise ERR_CONNECTION_REFUSED. Proxy sayfasını görüyorsanız ve hiç proxy ayarlamadıysanız ayarı bir program ya da eski bir VPN geride bırakmıştır; Chrome ve Windows'tan Proxy Nasıl Kaldırılır? yazımız adım adım anlatıyor. Programlarda ve betiklerde ise çalışmayan bir proxy gerçekten "bağlantı reddedildi" diye, proxy'nin adresiyle birlikte görünür; bu durumu scraper bölümünde ele alıyoruz.
Hata telefonda neden çıkar?
Android'deki Chrome aynı sayfayı ve kodu gösterir; iPhone'da Safari durumu kendi sözcükleriyle anlatır. Sık görülen durumlar:
- Bilgisayar için yazılmış bir adres. Telefonda
localhostve127.0.0.1telefonun kendisidir. Bilgisayarınızda çalışan bir siteyi denemek için bilgisayarın ev ağındaki adresini açın (örneğin192.168.1.20:5173) ve geliştirme sunucusunu ağı dinleyecek şekilde başlatın; Vite bunu--hostseçeneğiyle yapar. Bilgisayarın güvenlik duvarı da bu bağlantıya izin vermelidir. - Android emülatörü. Android Studio'nun emülatöründe
127.0.0.1sanal telefonun kendisidir, bilgisayarınız ise10.0.2.2adresindedir; Android emülatörü ağ rehberi (İngilizce) bunu böyle açıklar. - Ev cihazlarına dışarıdan erişim. Modem ya da kamera sayfası yalnız evinizin Wi-Fi ağında açılır; mobil veride bağlantı reddedilir ya da zaman aşımına uğrar.
- Telefonun trafiğini süzen bir VPN, reklam engelleme ya da "güvenlik" uygulaması. Uygulamayı duraklatıp sayfayı yenileyin.
Site sizinse: ziyaretçiler neden reddediliyor?
Makine açık olduğu hâlde ziyaretçinin kullandığı portta bağlantı kabul eden bir program yoksa ziyaretçi reddedilir. Şu sırayla kontrol edin:
- Web sunucusu ya da uygulama çalışmıyor. Çökmüştür, bir güncellemeden sonra başlayamamıştır ya da yeniden başlıyordur; nedenini kayıtlar (log) söyler.
- Yalnız yerel adresi dinliyor.
127.0.0.1adresine bağlanmış bir program yalnız aynı makineden gelen bağlantıları kabul eder. Programı genel adrese ya da0.0.0.0adresine (makinenin bütün IPv4 adresleri) bağlayın veya önüne herkese açık bir web sunucusu koyun. - 443 numaralı portta HTTPS yok. Site
http://ile çalışır, amahttps://isteyen ziyaretçiler kapalı bir kapıyı çalar. - Bir güvenlik duvarı kuralı portu reddediyor. Reddetme (reject) kuralı geri cevap gönderir ve ziyaretçi bunu çoğu zaman ret olarak görür; engelleme (deny) kuralı trafiği sessizce düşürür ve ziyaretçi zaman aşımı görür. Ubuntu'daki
ufwgüvenlik duvarında iki tür de vardır.
Dinlenen adres çoğu programda tek satırdır. Node.js'te:
// Yalnız bu makine bağlanabilir:
server.listen(3000, "127.0.0.1");
// Makinenin bütün IPv4 adresleri bağlantı kabul eder:
server.listen(3000, "0.0.0.0");localhost neden bağlanmayı reddeder?
localhost, bilgisayarınızın kendisine verdiği addır ve iki adresi vardır: 127.0.0.1 (IPv4) ve ::1 (IPv6). Ret, denenen adreste o portu dinleyen bir program olmadığı anlamına gelir.
- Geliştirme sunucusu çalışmıyor. Bir hatayla durmuştur ya da onu başlatan terminal kapatılmıştır. Önce terminal çıktısını okuyun.
- Başka bir portta çalışıyor. Bazı araçlar kendi portu doluysa bir sonraki boş porta geçer. Sunucunun açılırken yazdığı adresi aynen açın.
- IPv4 ve IPv6 uyuşmuyor. Sunucu yalnız
::1adresini dinlerken istemci127.0.0.1adresini deneyebilir ya da tersi olabilir. Tarayıcılar ikisini de dener: Chromium testimizde yalnız::1adresini dinleyen sunuculocalhostile açıldı ama127.0.0.1ile reddedildi. Node.js 17'den itibarenlocalhostadı önce::1olarak çözülebilir; 18.18 ve 20 sürümleriautoSelectFamilyayarını varsayılan olarak açana kadar (Node.js net belgeleri, İngilizce) Node.js yalnız bu adresi denedi veconnect ECONNREFUSED ::1:3000hatasıyla durdu. Node.js'i güncelleyin ya da istemcideki adrese127.0.0.1yazın. - Docker'da hiç yayınlanmamış bir port. Konteynerdeki bir programa, portunu yayınlamadığınız sürece ana makinenin dışından ulaşılamaz:
docker run -p 8080:80, bilgisayarınızdaki 8080 numaralı portu konteynerdeki 80 numaralı porta bağlar (Docker'ın port yayınlama rehberi, İngilizce). Konteynerin içinde program0.0.0.0adresini dinlemelidir; orada127.0.0.1konteynerin kendisidir.
İleri seviye: hangi adresin reddettiğini tek komutla görün
Bu bölümü atlayabilirsiniz. curl Windows 10, Windows 11 ve macOS'ta hazır gelir (PowerShell'de curl.exe yazın); -v seçeneği her bağlantı denemesini yazdırır:
curl -v http://localhost:3000/3000 numaralı portta hiçbir şey çalışmıyorken aldığımız önemli satırlar (curl 8.21.0, Windows 11):
* IPv6: ::1
* IPv4: 127.0.0.1
* Trying [::1]:3000...
* Trying 127.0.0.1:3000...
* connect to ::1 port 3000 from :: port 54810 failed: Connection refused
* connect to 127.0.0.1 port 3000 from 0.0.0.0 port 54811 failed: Connection refused
curl: (7) Failed to connect to localhost:3000 after 2226 ms: Could not connect to server- İki adres de reddedildiyse ("failed: Connection refused"): o portu dinleyen yoktur. Sunucuyu başlatın ya da gerçek portunu kullanın.
- Bir adres reddedilip ardından "Established connection to localhost (127.0.0.1 port 3000)" geliyorsa sunucu yalnız o adresi dinliyordur; yalnız öteki adresi deneyen istemciler başarısız olur.
- curl bir süre bekleyip zaman aşımı bildiriyorsa trafiği bir şey, çoğu zaman bir güvenlik duvarı düşürüyordur. Bu başka bir hatadır.
Scraper yazıyor ya da kodda proxy kullanıyorsanız
Web scraping (veri kazıma) kodunda mesaj, bağlantıyı reddeden adresi de söyler; böylece "hayır" diyenin proxy mi hedef site mi olduğunu anlarsınız. Kapalı portlara karşı aldığımız çıktılar şunlar (Windows mesajını sistem dilinde yazar; aşağıdaki, Türkçe Windows 11'deki metindir):
| Araç | Yazdığı mesaj |
|---|---|
| Windows'ta Python | ConnectionRefusedError: [WinError 10061] Hedef makine etkin olarak reddettiğinden bağlantı kurulamadı |
| Python Requests 2.34, kapalı proxy portu | ProxyError: ... (Caused by ProxyError('Unable to connect to proxy', NewConnectionError(...))) |
Node.js 24 fetch | TypeError: fetch failed ve [cause]: AggregateError [ECONNREFUSED] |
| curl 8.21, kapalı proxy portu | curl: (7) Failed to connect to example.com:443 over proxy 127.0.0.1 after 2031 ms |
Linux'ta aynı Python hatası [Errno 111] Connection refused diye yazılır; "errno 111" aramalarının kaynağı budur. İngilizce Windows'ta aynı mesaj "No connection could be made because the target machine actively refused it" olarak çıkar. Microsoft'un Windows soket hataları listesi (İngilizce) 10061'i, karşı makinede çalışmayan bir servise bağlanma girişimi olarak tanımlar.
Kodda sık görülen nedenler:
- Yanlış proxy portu. Sunucu adresini ve portu elle yazmak yerine Endpoint Oluşturucu'dan kopyalayın. Aynı hesapta HTTPS Proxy ve SOCKS5 kullanıyorsanız iki protokolün portu farklıdır. Sağlayıcının güvenlik duvarına göre yanlış port ya hemen reddedilir ya da zaman aşımına uğrar.
- Çalışmayan yerel bir proxy aracı. Hata ayıklama proxy'leri ve yerel proxy yöneticileri
127.0.0.1adresini, çoğu zaman 8080 numaralı portu dinler; araç kapalıyken her isteği reddeder. - Unutulmuş bir ortam değişkeni. Python Requests ve curl,
HTTP_PROXYveHTTPS_PROXYdeğişkenlerini okur; eski bir kurulumdan kalan bir değişken istekleri artık var olmayan bir proxy'ye gönderir.
Aşağıdaki betik unutulmuş değişkeni gösterir ve proxy'nin bağlantıyı reddetmesini proxy'nin arkasındaki bir hatadan ayırır. İsteklerinizi Residential Proxy üzerinden gönderiyorsanız Endpoint Oluşturucu'daki ağ geçidi adresini PROXY satırına yazın:
import requests
from requests.utils import get_environ_proxies
PROXY = "http://user:pass@pr.proxynet.io:8000" # adres ve port Endpoint Oluşturucu'dan
URL = "https://example.com/"
# Unutulmuş bir HTTP_PROXY ya da HTTPS_PROXY değişkeni sık görülen gizli bir nedendir.
print("Proxy from environment variables:", get_environ_proxies(URL) or "none")
with requests.Session() as s:
s.trust_env = False # yalnız aşağıdaki proxy'yi kullan, kalıntı değişkeni değil
s.proxies = {"http": PROXY, "https": PROXY}
try:
r = s.get(URL, timeout=15)
print("Connected, HTTP status", r.status_code)
except requests.exceptions.ProxyError as e:
if "Tunnel connection failed" in str(e):
print("The proxy answered but could not reach the site")
else:
print("The proxy refused the connection: check the host and the port")Betiği user:pass kimlik doğrulaması isteyen yerel bir test proxy'si üzerinden üç kez çalıştırdık (Requests 2.34.2, Python 3.13): unutulmuş bir HTTPS_PROXY değişkeniyle, yanlış bir proxy portuyla ve çalışan bir proxy ile kapalı bir hedef portuyla:
Proxy from environment variables: {'https': 'http://127.0.0.1:8080'}
Connected, HTTP status 200
Proxy from environment variables: none
The proxy refused the connection: check the host and the port
Proxy from environment variables: none
The proxy answered but could not reach the siteÜçüncü durumda hedefin portu kapalıydı. Hedefin adresini ve portunu kontrol edin, isteği de art arda tekrarlamayın: kapalı bir port, sahibi servisi başlatana kadar kapalı kalır. Aralıkları giderek uzatarak daha sonra yeniden deneyin.
Bu hatayla nerelerde karşılaşırsınız?
- Modem, NAS, yazıcı ya da kamera yönetim sayfalarında.
- Kendi bilgisayarınızda
localhostüzerinde ya da telefonda denediğiniz bir web sitesinde. - Güncellemeden ya da yeniden başlatmadan sonra kendi sunucunuzda çalışan araçlarda.
- Yeniden başlatılan bir servisi tam o sırada yoklayan izleme araçlarında.
- Proxy portu ya da hedef portu yanlış yazılmış betiklerde.
Sık yapılan hatalar
- Önbelleği, çerezleri ya da DNS önbelleğini temizlemek. Hiçbirinin bu hatayla ilgisi yoktur.
- Güvenlik duvarını ya da antivirüsü kalıcı olarak kapatmak. Tek bir test için tek bir özelliği duraklatın.
localhostile127.0.0.1adresini her araçta aynı şey sanmak. Sunucu bu iki adresten yalnız birini dinliyor olabilir.- Reddedilen bağlantıyı art arda yeniden denemek. Kapalı bir port, yeniden sordunuz diye açılmaz.
- Tarayıcıyı yeniden kurmak. Aynı sunucu her tarayıcıya aynı cevabı verir.
Karar rehberi
| Durumunuz | Ne yapmalısınız? |
|---|---|
| Her cihazda ve her ağda reddediliyor | Sitenin sunucusu çalışmıyor; bekleyin ya da site sahibine haber verin |
| Telefonda açılıyor, bilgisayarda reddediliyor | VPN'i kapatın, web korumasını duraklatın, hosts dosyasına bakın |
| Modem ya da yazıcı sayfası reddediliyor | Ev Wi-Fi'sine bağlanın ve etiketteki adresi kullanın |
| Ekranda "İnternet bağlantısı yok" yazıyor ve proxy sunucusundan söz ediliyor | Başka bir hata: proxy ayarını düzeltin ya da kaldırın |
localhost reddediliyor | Geliştirme sunucusunu başlatın ve yazdığı adresi açın |
| Betiğiniz "Unable to connect to proxy" diyor | Proxy adresini, portunu ve ortam değişkenlerini kontrol edin |
Sıkça sorulan sorular
ERR_CONNECTION_REFUSED hatası benden mi, siteden mi kaynaklanıyor?
Siteyi mobil veriyle deneyin. Orada da reddediliyorsa sitenin sunucusu bağlantı kabul etmiyordur ve bunu yalnız site sahibi düzeltebilir. Açılıyorsa bilgisayarınızdaki VPN'e, güvenlik yazılımına ve hosts dosyasına bakın.
localhost neden bağlanmayı reddediyor?
Bilgisayarınızda, denenen adreste o portu dinleyen bir program yoktur: geliştirme sunucusu çalışmıyordur, başka bir portu kullanıyordur ya da istemci 127.0.0.1 adresini denerken sunucu ::1 adresini dinliyordur.
errno 111 ve WinError 10061 ne demek?
İkisi de işletim sisteminin reddedilen bağlantı için kullandığı numaradır: Linux'ta 111, Windows'ta 10061. O adreste ve portta dinleyen bir program yoktur.
Android'de ERR_CONNECTION_REFUSED hatası nasıl çözülür?
Önce başka bir cihaz için yazılmış bir adresi, örneğin localhost adresini ya da mobil verideyken ev modeminizin adresini açmadığınızdan emin olun. Sonra varsa VPN'i ya da trafiği süzen uygulamayı duraklatın. Site her ağda reddediliyorsa sorun sitededir.
VPN ya da proxy bu hataya yol açar mı?
VPN yol açabilir; bu yüzden siteyi VPN kapalıyken deneyin. Chrome'daki bozuk bir proxy ayarı ise bunun yerine ERR_PROXY_CONNECTION_FAILED hatasını gösterir.
Tarayıcı önbelleğini ya da DNS önbelleğini temizlemek işe yarar mı?
Hayır. Sunucunun adresi bulunmuştu ve tarayıcı daha hiçbir sayfa gelmeden geri çevrildi. Tek istisna, bir sitenin adını kendi bilgisayarınıza gönderebilen hosts dosyasıdır.
Özet
ERR_CONNECTION_REFUSED, sunucu makinesinin cevap verdiğini ama o portta dinleyen bir program olmadığını gösterir. Ziyaretçiler adresi kontrol edip başka bir ağ dener; her yerde görülen bir ret sitenin sorunudur. Site sahipleri durmuş bir servisi, 127.0.0.1 adresine bağlanmış bir programı ya da reddeden bir güvenlik duvarı kuralını arar; geliştiriciler de durmuş bir geliştirme sunucusuna, yanlış bir porta ya da ::1 uyuşmazlığına bakar. Kodda mesajdaki adres, reddedenin proxy mi hedef mi olduğunu gösterir. Hangi proxy türlerinin olduğunu ve her birinin ne işe yaradığını proxy sayfamızda bulabilirsiniz.




