macOS'ta Proxy: Sistem Ayarları ve Terminal Üzerinden Nasıl Yapılandırılır ve İstisnalarda Trafik Kaybetmeden Nasıl Kullanılır
Makale içeriği
- Giriş: sonunda ne elde edeceksiniz
- Ön hazırlık
- Temel kavramlar: başlamadan önce anlamanız gerekenler
- Adım 1: sistem yapılandırmasından önce proxy verilerini kontrol edin
- Adım 2: macos sistem ayarları üzerinden proxy'yi yapılandırın
- Adım 3: i̇stisna listesini doğru yapılandırın
- Adım 4: terminal'den networksetup komutuyla proxy'yi yönetin
- Adım 5: curl, git, homebrew, pip ve npm için proxy'yi yapılandırın
- Adım 6: proxy'yi atlayan trafiği bulun ve düzeltin
- Sonucu kontrol edin: final kontrol listesi
- Tipik hatalar ve çözümleri
- İ̇leri düzey kullanıcılar için ek özellikler
- Sss: macos'ta proxy hakkında sık sorulan sorular
- Sonuç
Giriş: Sonunda ne elde edeceksiniz
Mac'inizde mobil proxy'lerle çalışıyorsanız, er ya da geç aynı durumla karşılaşırsınız. Wi-Fi ayarlarına adresi ve portu girdiniz, site yeni bir IP gösterdi, sevindiniz. Sonra anlıyorsunuz ki Terminal paketleri doğrudan indiriyor, git eski adres üzerinden gidiyor ve uygulamaların yarısı değişikliği fark etmemiş bile. Bu rehber sorunu tamamen çözüyor.
Tüm adımları okuyup uyguladığınızda, aynı anda üç seviyede çalışan yapılandırılmış bir macOS proxy'sine sahip olacaksınız:
- Sistem seviyesinde: Safari, Chrome, posta, mesajlaşma uygulamaları ve sistem ayarlarına uyan diğer programlar.
- Terminal seviyesinde: tek bir fare tıklaması olmadan proxy'yi açmak, kapatmak ve değiştirmek için networksetup komutları.
- Geliştirici araçları seviyesinde: sistem ayarlarını değil ortam değişkenlerini okuyan curl, git, Homebrew, pip, npm ve diğer araçlar.
Ayrı bir bölümde istisna listesini ele alacağız. Trafiğin bir kısmının proxy'yi atlamasının nedeni tam da bu alan, üstelik siz özel bir şey ayarlamamışken. Nasıl çalıştığını, neyi eklemeniz, neyi çıkarmanız gerektiğini ve gerekmediği yerde hiçbir isteğin doğrudan geçmediğini nasıl kontrol edeceğinizi anlayacaksınız.
Bu rehber kimin için
Kılavuz yeni başlayanlar için yazıldı. Terminal'i hiç açmadıysanız sorun değil: her komutu harf harf açıklayıp ne yaptığını anlatacağız. Rehber özellikle şunlar için faydalı olacak:
- birden fazla projeyi farklı IP'lerden yürüten pazarlamacılar ve SMM uzmanları;
- hızlıca coğrafi konum değiştirip kreatif test etmesi gereken arbitrajcılar;
- mobil proxy üzerinden uygulama ve API test eden geliştiriciler;
- bir kez öğrenip her proxy değişikliğinde uzman çağırmak istemeyen işletme sahipleri.
Deneyimli kullanıcılar için sonunda ileri düzey teknikler var: ağ konumları, PAC dosyaları, kabuk takma adları ve otomatik rotasyon betikleri.
Önceden bilmeniz gerekenler
Karmaşık bir şey yok. Sistem Ayarları'nı açabilmek ve metin kopyalayabilmek yeterli. Geri kalan her şey yol boyunca açıklanıyor. Belirli tarayıcıların ve antidetect tarayıcıların ayarlarına değinmiyoruz: bloğumuzda bunlara ayrı materyaller var. Burada sadece bir sistem olarak macOS ve yerleşik araçları var.
Ne kadar zaman alacak
Sistem Ayarları üzerinden temel yapılandırma 10 dakika sürer. Terminal ve geliştirici araçlarının yapılandırması 15-20 dakika daha. Tam kontrol ve istisnaların ele alınması yaklaşık 10 dakika. Toplamda sakin sakin ve kontrollerle yaparsanız 30-40 dakika.
Ön hazırlık
Sistemde herhangi bir şeyi değiştirmeden önce gerekli her şeyi toplayalım. İyi bir hazırlık, herhangi bir pratik ipucundan daha fazla zaman kazandırır.
Neye ihtiyacınız olacak
- macOS Ventura 13 veya daha yeni sürüme sahip bir Mac. Tüm örnekler macOS Sonoma 14, Sequoia 15 ve Tahoe 26'da test edildi. Sistem Ayarları uygulamasının simge ızgarası olarak göründüğü eski sürümlerde proxy'ye giden yol biraz farklıdır, farkı ayrıca belirteceğiz.
- Mobil proxy verileri. Sunucu adresi (alan adı veya IP), port, kullanıcı adı ve parola. Mobil proxy'lerde genellikle iki port bulunur: biri HTTP protokolü için, diğeri SOCKS5 için. İkisini de elinizin altında bulundurun.
- IP değiştirme bağlantısı, eğer sağlayıcınız bunu veriyorsa. Otomasyon bölümünde işinize yarayacak.
- Mac'te yönetici hakları. Terminal üzerinden sistem proxy'sini değiştirmek için macOS kullanıcı parolanızı isteyecek.
- Not almak için bir metin düzenleyici. Standart TextEdit veya Notlar uygundur.
Başlamadan önce kontrol edilmesi gerekenler
- İnternetin proxy olmadan çalıştığından emin olun. Safari'de herhangi bir siteyi açın. Açılmıyorsa önce ağ sorununu çözün, yoksa daha sonra tam olarak neyin bozulduğu anlaşılmaz.
- Hangi arayüz üzerinden bağlandığınızı öğrenin: Wi-Fi mi yoksa Ethernet kablosu mu. Sistem Ayarları'nı açın, Ağ bölümüne gidin. Aktif bağlantı yeşil nokta ve Bağlandı kelimesiyle işaretlidir. Adını not edin: genellikle Wi-Fi veya Ethernet'tir.
- Proxy olmadan mevcut IP'nizi kontrol edin. Tarayıcıda herhangi bir IP kontrol servisini açın ve adresi not edin. Sonucu bununla karşılaştıracağız.
Mevcut ayarların yedeklenmesi
macOS'ta proxy ayarları kolayca geri alınır, ancak başlangıç durumunu kaydetmek daha iyidir. Özellikle sistem yöneticisinin önceden bir şeyler ayarlamış olabileceği kurumsal bir Mac'te çalışıyorsanız.
- Terminal'i açın. Command ve boşluk tuşlarına basın, Terminal yazın ve Enter'a basın.
- Aşağıdaki komutu kopyalayıp yapıştırın ve Enter'a basın:
scutil --proxy > ~/Desktop/proxy_backup.txtMasaüstünde proxy_backup.txt dosyası mevcut proxy ayarlarının tam açıklamasıyla birlikte görünecek. Bir şeyi bozarsanız, değerleri her zaman bu dosyayla karşılaştırabilirsiniz.
İpucu: Notlar'da hemen proxy verilerinizin bulunduğu bir kart oluşturun: sunucu, HTTP portu, SOCKS5 portu, kullanıcı adı, parola, rotasyon bağlantısı. Onlarca kez başvuracaksınız. Parolayı ortak belgelerde açık şekilde saklamayın.
Temel kavramlar: başlamadan önce anlamanız gerekenler
Burada, sonraki adımların sihire dönüşmemesi için birkaç terim var. Bildiğinizi düşünseniz bile okumak zorunlu.
Proxy sunucusu
Mac'iniz ile internet arasında bir aracıdır. Siteye doğrudan gitmek yerine, isteğiniz önce proxy sunucusuna, oradan da siteye gider. Site sizin değil, proxy'nin IP adresini görür. Mobil proxy'nin farkı, IP'sinin bir cep telefonu operatörüne ait olması ve siteler için normal bir akıllı telefon kullanıcısı gibi görünmenizdir.
HTTP proxy ve SOCKS5 proxy
Bunlar proxy sunucusuyla iletişim kurmanın iki farklı yoludur. HTTP proxy web trafiğini anlar, sitelerle ve çoğu uygulamayla çalışır. macOS'ta iki anahtara bölünmüştür: normal siteler için Web Proxy (HTTP) ve şifreli siteler için Güvenli Web Proxy (HTTPS). Pratikte her iki alana da aynı adres ve port yazılır.
SOCKS5 proxy daha aşağıda, bağlantı seviyesinde çalışır ve sadece web'i değil her türlü trafiği geçirir. Terminal, mesajlaşma uygulamaları, oyunlar için faydalıdır. macOS'ta önemli bir nüans: sistem ayarları SOCKS için kullanıcı adı ve parola belirtmenize izin verir, ancak birçok uygulama sistem SOCKS'i üzerinden bu kimlik doğrulamayı desteklemez. Bu nedenle sistem ayarlarında HTTP kullanacağız, SOCKS5'i ise Terminal ve belirli programlar için bırakacağız.
Sistem proxy'si
Bunlar, macOS'ta belirli bir ağ arayüzü için saklanan ayarlardır. Safari, Chrome, Mail, App Store ve Swift ile Objective-C ile yazılmış çoğu uygulama bunları otomatik olarak okur. Ama hepsi değil. Python, Go, Node.js ile yazılmış programlar ve curl ile git gibi klasik Unix araçları sistem ayarlarını yok sayar. Onlar ortam değişkenlerine bakar.
Ortam değişkenleri
Bunlar Terminal oturumunuzda yaşayan adlandırılmış değerlerdir. Örneğin http_proxy değişkeni araçlara şunu söyler: tüm HTTP trafiğini buraya gönder. Değişkenler, kabuk ayar dosyasına yazılmadıkça yalnızca açık Terminal penceresinde var olur. Bunun için ayrı bir adım olacak.
İstisna listesi
macOS'ta buna Şu konaklar ve alan adları için proxy kullanma denir. Bu listedeki tüm adresler sistem tarafından proxy'yi atlayarak doğrudan gönderilir. Varsayılan olarak orada zaten *.local ve 169.254/16 kayıtları vardır, bunlar yerel ağdan sorumludur ve silinmemelidir. Sorun, listeye gereksiz maskeler girdiğinde veya istisnaların Terminal'de çalışmasını beklediğinizde başlar. Çalışmaz: Terminal'in kendi listesi vardır, no_proxy değişkeni. Tüm bunları ele alacağız.
Ağ hizmeti
macOS her arayüzü böyle adlandırır: Wi-Fi, Ethernet, Thunderbolt Bridge, iPhone USB. Proxy her hizmet için ayrı ayrı yapılandırılır. Wi-Fi'yi yapılandırdınız, sonra kablo taktınız, proxy çalışmayı bıraktı. Bu, macOS'ta proxy'nin bazen çalışıp bazen çalışmamasının en sık nedenlerinden biridir.
Adım 1: Sistem yapılandırmasından önce proxy verilerini kontrol edin
Bu aşamanın amacı: proxy'nin canlı olduğundan ve kullanıcı adı ile parolanın doğru olduğundan emin olmak. Bu, paroladaki bir yazım hatası yüzünden ayarlarda yarım saat hata aramaktan kurtarır.
Kontrolü curl ile yapacağız. Bu araç macOS'ta zaten var, hiçbir şey yüklemenize gerek yok.
- Henüz açık değilse Terminal'i açın.
- Kartınızdan proxy verilerini alın. Örnek olarak şu varsayımsal değerleri kullanacağız: sunucu proxy.example.net, HTTP portu 10000, SOCKS5 portu 10001, kullanıcı adı user123, parola pass456. Bunların yerine gerçek verilerinizi koyun.
- HTTP portunu kontrol etmek için komutu yazın ve Enter'a basın:
curl -x http://user123:pass456@proxy.example.net:10000 https://ifconfig.meBurada ne yazdığını açıklayalım. -x anahtarı curl'e proxy adresini bildirir. Ardından protokol olarak http, sonra kullanıcı adı, iki nokta, parola, et işareti, sunucu, iki nokta, port gelir. Sonunda isteğin hangi IP'den geldiğini döndüren servis adresi vardır.
- 1-3 saniye içinde Terminal'de bir IP adresi görünecek. Bu, mobil proxy'nizin IP'sidir. Hazırlık sırasında not ettiğinizden farklıysa her şey çalışıyor demektir.
- Şimdi aynı komutla SOCKS5 portunu kontrol edin, protokolü ve portu değiştirerek:
curl -x socks5h://user123:pass456@proxy.example.net:10001 https://ifconfig.mesocks5h kelimesindeki h harfine dikkat edin. Bu, alan adlarının Mac'inizde değil proxy tarafında çözümleneceği anlamına gelir. Mobil proxy'ler için doğru seçenek budur: böylece ev internet sağlayıcınızın DNS'ine istek bırakmazsınız.
Dikkat: Parolanızda et işareti, iki nokta, eğik çizgi, kare işareti, soru işareti veya yüzde işareti varsa kodlanması gerekir. Et işareti yerine %40, iki nokta yerine %3A, kare işareti yerine %23, soru işareti yerine %3F, yüzde yerine %25 kullanın. Aksi halde curl satırı yanlış böler ve parolanın erken bittiğini düşünür.
Bu adımda olası sorunlar
- Received HTTP code 407 from proxy after CONNECT yanıtı. Proxy kimlik doğrulamayı reddediyor. Kullanıcı adı ve parolayı kontrol edin, özel karakterlere bakın. Sağlayıcı panelinde kullanıcı adı ve parola yerine IP ile kimlik doğrulamanın etkin olmadığından emin olun.
- Failed to connect veya Connection timed out yanıtı. Yanlış sunucu veya port ya da proxy kapalı. Sağlayıcı paneliyle karşılaştırın. Başka bir port deneyin.
- Komut çıktı vermeden takıldı. 30 saniye bekleyin. Mobil ağlar bazen yavaştır. Hiçbir şey olmazsa kesmek için Control ve C tuşlarına basın ve verileri kontrol edin.
Kontrol: Her iki curl komutu da ev IP'nizden farklı bir IP adresi döndürdü. Devam edebilirsiniz. En az biri çalışmadıysa devam etmek anlamsız: sistem aynı verileri kullanacak.
Adım 2: macOS Sistem Ayarları üzerinden proxy'yi yapılandırın
Bu aşamanın amacı: Safari, Chrome ve sistem proxy'sine uyan tüm uygulamaların mobil proxy'niz üzerinden internete çıkmasını sağlamak.
Gerekli ekranı açın
- Ekranın sol üst köşesindeki Apple simgesine tıklayın ve Sistem Ayarları'nı seçin.
- Sol sütunda kablosuz ağa bağlıysanız Wi-Fi'ye tıklayın. Kabloluysa Ağ'a, sonra Ethernet'e tıklayın.
- Ağınızın adını bulun. Sağında üç noktalı veya yazılı Ayrıntılar düğmesi var. Ona tıklayın.
- Bağlantı parametrelerini içeren pencere açılacak. Bu pencerenin sol sütununda Proxy öğesini seçin. Listenin en altında, TCP/IP, DNS ve WINS'ten sonra yer alır.
Bir dizi anahtar göreceksiniz: Proxy'yi Otomatik Keşfet, Proxy Yapılandırmasını Otomatik Kullan, Web Proxy (HTTP), Güvenli Web Proxy (HTTPS), FTP Proxy, SOCKS Proxy, Akış Proxy (RTSP), Gopher Proxy. Altta Şu konaklar ve alan adları için proxy kullanma alanı var.
Sistem Ayarları'nın simge ızgarası olarak göründüğü eski macOS sürümünüz varsa yol şöyledir: Sistem Ayarları, Ağ, soldaki arayüzü seçin, Gelişmiş düğmesi, Proxy sekmesi. Gerisi aynı.
HTTP proxy'yi etkinleştir
- Web Proxy (HTTP) anahtarına tıklayın. Mavi olacak ve aşağıda giriş alanları görünecek.
- Sunucu alanına proxy sunucunuzu girin, örneğin proxy.example.net. http:// olmadan, eğik çizgi olmadan, sadece sunucu.
- Sağdaki Port alanına HTTP portunu girin, örneğin 10000.
- Proxy sunucusu için parola gerekiyor anahtarını açın.
- Kullanıcı adı alanına kullanıcı adını girin. Parola alanına parolayı girin. Burada özel karakterleri kodlamanıza gerek yok, olduğu gibi girin.
HTTPS proxy'yi etkinleştir
Bugün çoğu site HTTPS üzerinden çalışır, bu nedenle bu madde zorunludur. Bu olmadan şifreli trafik doğrudan gider ve bazı sitelerin neden proxy'yi gördüğünü, bazılarının ise gerçek IP'nizi gördüğünü şaşkınlıkla izlersiniz.
- Güvenli Web Proxy (HTTPS) anahtarına tıklayın.
- HTTP ile aynı sunucu ve aynı portu girin. Mobil proxy'ler her iki trafik türünü de aynı port üzerinden işler.
- Proxy sunucusu için parola gerekiyor anahtarını açın, kullanıcı adı ve parolayı tekrar girin.
SOCKS proxy ve diğer anahtarlar hakkında
HTTP ve HTTPS açıksa sistem ayarlarındaki SOCKS proxy anahtarını kapalı bırakın. Nedeni, sistem SOCKS açıkken bazı uygulamaların onu tercih etmeye başlaması ve sistem SOCKS üzerinden kimlik doğrulamayı her uygulamanın desteklememesidir. Sonuç: bazı programlar ağ erişimini kaybeder. FTP, RTSP ve Gopher'a dokunmanıza gerek yok, bunlar eski protokollerdir. Otomatik Keşfet ve Otomatik Yapılandırma'yı da kapalı bırakın, aksi halde manuel değerlerinizi geçersiz kılabilirler.
Kaydet
- Pencerenin sağ alt köşesindeki Tamam düğmesine basın.
- Sistem Mac kullanıcınızın parolasını isterse girin. Bu normaldir: ağ ayarlarını değiştirmek yönetici hakları gerektirir.
- Safari veya Chrome'u tamamen kapatıp yeniden açın. Tarayıcılar proxy ayarlarını başlangıçta önbelleğe alır.
İpucu: Proxy üzerinden ilk istekte macOS, parolayı zaten girmiş olsanız bile proxy için kullanıcı adı ve parola istemek üzere bir sistem penceresi gösterebilir. Verileri girin ve Anahtar Zinciri'nde sakla onay kutusunu işaretleyin. Bundan sonra pencere bir daha görünmez.
Kontrol: Safari'de bir IP kontrol servisini açın. Adres, Adım 1'deki curl komutunun döndürdüğüyle eşleşmelidir. Operatör tespit sayfasını da kontrol edin: ev internet sağlayıcınızın değil, cep telefonu operatörünün görünmesi gerekir.
Olası sorunlar
- Siteler hiç açılmıyor. FTP veya SOCKS değil, HTTP ve HTTPS'i etkinleştirdiğinizden emin olun. Portu kontrol edin. Her iki anahtarı geçici olarak kapatın ve internetin geri geldiğinden emin olun: böylece sorunun proxy ayarlarında değil ağda olduğunu anlarsınız.
- Sürekli parola giriş penceresi açılıyor. Parola hatalı girilmiş veya kopyalamadan sonra sonunda boşluk var. Alanın içeriğini silin ve parolayı elle yeniden girin.
- IP değişmedi. Muhtemelen yanlış arayüzü yapılandırdınız. Ağ bölümüne dönün ve hangi hizmetin Bağlandı olarak işaretli olduğunu kontrol edin.
Adım 3: İstisna listesini doğru yapılandırın
Bu aşamanın amacı: sistemin hangi trafiği proxy'yi atlayarak geçirdiğini anlamak ve listeyi yerel servisler çalışacak ama dış trafik sızmayacak şekilde yapılandırmak.
Şu konaklar ve alan adları için proxy kullanma alanı Proxy ekranının altındadır. Varsayılan olarak orada *.local, 169.254/16 yazılıdır. Çoğu kullanıcı ya ona hiç bakmaz ya da oraya her şeyi yazmaya başlar.
Liste nasıl okunur
- *.local .local ile biten tüm adresler anlamına gelir. Bunlar ev ağınızdaki cihazlardır: yazıcı, ağ diski, diğer Mac'ler. Fiziksel olarak harici bir proxy üzerinden açılamazlar, bu nedenle kayıt gereklidir.
- 169.254/16 Mac'in yönlendiriciden adres alamadığında kendine atadığı servis adresleri aralığını ifade eder. O da yerel bir konudur.
- Kayıtlar virgülle ayrılır. Virgülden sonra boşluk kabul edilebilir.
- Yıldız işareti adın herhangi bir bölümünü değiştirir. *.example.com kaydı example.com'un tüm alt alan adlarını hariç tutar ama example.com'un kendisini değil. Onun için ayrı bir kayıt gerekir.
- IP adresleri ve alt ağlar adres/maske biçiminde belirtilebilir, örneğin tüm ev ağı için 192.168.0.0/16.
Eklenmesi gerekenler
- İstisna alanında son kayıttan sonra tıklayın.
- Virgülle ayırarak localhost ve 127.0.0.1 ekleyin. Bunlar olmadan Mac'inizdeki yerel web sunucuları ve yönetim panelleri mobil proxy üzerinden gitmeye çalışıp çökecek.
- Ev cihazlarınızı IP ile kullanıyorsanız yerel alt ağınızı ekleyin. Genellikle bu 192.168.0.0/16 veya 10.0.0.0/8'dir. Yerel adresinizi aynı penceredeki TCP/IP ekranından görebilirsiniz.
- Tamam'a basın.
Çoğu kullanıcı için son liste şöyle görünür: *.local, 169.254/16, localhost, 127.0.0.1, 192.168.0.0/16.
Eklenmemesi gerekenler
Başlıkta istisnaları atlatma olarak adlandırılan şey burada başlar. Trafiğin sizin istediğiniz için değil, listenin özensiz yazılması nedeniyle proxy'yi atlaması durumlarından bahsediyoruz.
- Tek bir yıldız işareti veya *.com yazmayın. Böyle bir maske neredeyse tüm internet için proxy'yi devre dışı bırakır, ama anahtarlar mavi kalır ve her şeyin çalıştığını düşünürsünüz.
- Çalıştığınız servislerin alan adlarını yazmayın. Yükleme hızlandırmak için *.facebook.com eklerseniz site gerçek IP'nizi görür. Çoklu hesap görevleri için bu kritiktir.
- Proxy'nin kendi sunucusunu yazmayın. Anlamsızdır: proxy'ye bağlantı zaten doğrudan gider.
- *.local ve 169.254/16'yı silmeyin. AirDrop, yazdırma, yönlendiriciye erişim bozulur.
Dikkat: Sistem ayarlarındaki istisna listesi yalnızca sistem proxy'sini kullanan uygulamalar için geçerlidir. Terminal, curl, git ve Python betikleri onu görmez. Onların kendi listesi vardır, no_proxy değişkeni, ve ayrı yapılandırılır. Adım 5'te ona ulaşacağız. Sistem listesindeki bir kaydın betiği etkilemesini bekliyorsanız hayal kırıklığına uğrayacaksınız.
İpucu: İstisna listesini periyodik olarak açın ve gözle kontrol edin. Bazı kurumsal araçlar ve cihaz yönetim ajanları kurulum sırasında oraya kendi alan adlarını ekler. *.com gibi gereksiz bir maskeyi on saniyede bulmak, bir hafta boyunca IP sızıntısının nedenini aramaktan kolaydır.
Kontrol: Tarayıcıda http://localhost veya varsa herhangi bir yerel sayfayı açın. Proxy hatası olmadan anında açılmalı. Sonra harici bir IP kontrol servisini açın: hâlâ mobil proxy'nin IP'sini göstermelidir.
Adım 4: Terminal'den networksetup komutuyla proxy'yi yönetin
Bu aşamanın amacı: sistem proxy'sini fare olmadan ve ayarlarda on tıklama yapmadan tek komutla açmayı, kapatmayı ve değiştirmeyi öğrenmek. Bu, bir ayda bu bölümü okumaya harcadığınız zamanı amorti eden bir beceridir.
macOS'ta yerleşik bir networksetup aracı vardır. Sistem Ayarları'nın yaptığını yapar, ama komut satırından. Adım 2'de yapılandırdığınız her şeyi tek satırla tekrarlayabilir, değiştirebilir veya iptal edebilirsiniz.
Ağ hizmetinin tam adını öğrenin
- Terminal'de komutu yazın ve Enter'a basın:
networksetup -listallnetworkservicesWi-Fi, Ethernet, Thunderbolt Bridge, iPhone USB gibi bir liste göreceksiniz. Bağlı olduğunuz olanı bulun. Komutlarda Wi-Fi kullanacağız. Hizmetinizin adı farklıysa onu koyun. Adında boşluk varsa, örneğin Thunderbolt Bridge, çift tırnak içine alın.
Mevcut ayarları görüntüleyin
networksetup -getwebproxy Wi-FiYanıt olarak dört satır göreceksiniz: Enabled: Yes veya No, Server, Port, Authenticated Proxy Enabled. Adım 2'yi uyguladıysanız Enabled Yes olacak ve sunucu ile port girdiğinizle eşleşecek. HTTPS için aynı şekilde:
networksetup -getsecurewebproxy Wi-FiHTTP ve HTTPS proxy'yi tek komutla etkinleştirin
Komut biçimi: networksetup, eylem, hizmet, sunucu, port, kimlik doğrulamayı etkinleştir, kullanıcı adı, parola.
networksetup -setwebproxy Wi-Fi proxy.example.net 10000 on user123 pass456networksetup -setsecurewebproxy Wi-Fi proxy.example.net 10000 on user123 pass456Her iki komutu sırayla girin. Her birinden sonra sistem Mac kullanıcı parolasını isteyebilir. Girin, karakterler görünmez, bu normaldir. Enter'a basın.
Porttan sonraki on kelimesi kimlik doğrulamayı etkinleştirir. Proxy'niz kullanıcı adı yerine IP ile kimlik doğruluyorsa off yazın ve kullanıcı adı ile parolayı belirtmeyin.
Proxy'yi ayarları kaybetmeden kapatıp açın
En faydalı komut çifti. Sunucu ve portu silmez, yalnızca anahtarı hareket ettirir:
networksetup -setwebproxystate Wi-Fi offnetworksetup -setsecurewebproxystate Wi-Fi offGeri açmak için off yerine on yazın. Böylece Mac'i iki saniyede doğrudan bağlantı moduna ve geri alırsınız.
İstisna listesini Terminal'den yönetin
Mevcut listeyi görüntüleyin:
networksetup -getproxybypassdomains Wi-FiYeni listeyi tamamen ayarlayın. Komut tüm kayıtları değiştirir, bu nedenle tam kümeyi boşlukla ayırarak listeleyin:
networksetup -setproxybypassdomains Wi-Fi "*.local" "169.254/16" localhost 127.0.0.1 "192.168.0.0/16"Yıldız ve eğik çizgi içeren kayıtları tırnak içine alın, böylece kabuk onları yorumlamaya çalışmaz. Listeyi tamamen temizlemek için alan adları yerine Empty kelimesini kullanabilirsiniz, ama unutmayın: o zaman yerel adresler proxy üzerinden gider ve çalışmayı bırakır.
Evrensel görüntüleme komutu
scutil aracı tüm proxy ayarlarını istisnalar dahil tek bir yerde gösterir:
scutil --proxyHTTPEnable, HTTPProxy, HTTPPort, HTTPSEnable, ExceptionsList satırlarını arayın. 1 değeri açık, 0 kapalı anlamına gelir. Yedekleme için tam da bu komutu kullandık.
İpucu: Sistem Ayarları'nı Proxy ekranında açın ve yanında Terminal'de herhangi bir networksetup komutunu çalıştırın. Anahtarların gerçek zamanlı olarak değiştiğini göreceksiniz. Bu, Terminal ile grafik arayüzün aynı verileri yönettiğinden emin olmanın en iyi yoludur.
Olası sorunlar
- Hata: Wi-Fi is not a recognized network service. Hizmet farklı adlandırılmış. networksetup -listallnetworkservices komutunu çalıştırın ve tam adı kopyalayın.
- Komut geçti ama ayarlarda hiçbir şey değişmedi. Sistem Ayarları penceresini kapatıp yeniden açın, her zaman anında güncellenmez.
- Parola istiyor ve Sorry, try again yazıyor. Proxy parolası değil, Mac kullanıcı parolası giriliyor. Karakterler görünmez, sadece yazın ve Enter'a basın.
Kontrol: networksetup -setwebproxystate Wi-Fi off komutunu çalıştırın, tarayıcıda IP kontrol servisini yenileyin, ev IP'nizi göreceksiniz. Aynı komutu on ile çalıştırın, sayfayı yenileyin, proxy IP'sini göreceksiniz. Değiştirme her iki yönde çalışıyorsa bu aşama tamamlandı.
Adım 5: curl, git, Homebrew, pip ve npm için proxy'yi yapılandırın
Bu aşamanın amacı: komut satırı araçlarının proxy üzerinden çalışmasını sağlamak. En çok trafik tam burada sızar, çünkü bu programlar sistem ayarlarına bakmaz.
Sistem proxy'si neden burada çalışmaz
curl, wget, git, pip, npm, brew gibi araçlar tüm Unix sistemlerinde çalışacak şekilde yazılmıştır. macOS'u ve Sistem Ayarları'nı bilmezler. Bunun yerine ortam değişkenleri adı verilen http_proxy, https_proxy, all_proxy ve no_proxy değişkenlerini okurlar. Değişkenler yoksa trafik doğrudan gider. Ayarlardaki anahtarlar istediği kadar mavi kalabilir.
Mevcut Terminal penceresinde geçici etkinleştirme
Üç komutu sırayla girin:
export http_proxy=http://user123:pass456@proxy.example.net:10000export https_proxy=http://user123:pass456@proxy.example.net:10000export no_proxy=localhost,127.0.0.1,*.localBirinci HTTP trafiğini proxy'ye yönlendirir. İkinci HTTPS trafiğini aynı yere yönlendirir. Dikkat edin: https_proxy değerinde protokol hâlâ http'dir, çünkü bu siteyle değil proxy ile iletişim protokolüdür. Üçüncü Terminal için istisnaları belirler. Bu, Adım 3'te bahsettiğimiz ayrı listedir.
Bazı programlar değişkenleri yalnızca büyük harfle okur. Tahmin etmemek için onları da tanımlayın:
export HTTP_PROXY=$http_proxy HTTPS_PROXY=$https_proxy NO_PROXY=$no_proxyŞimdi -x anahtarı olmadan kontrol edin:
curl https://ifconfig.meProxy IP'si döndüyse değişkenler çalışıyor. Bu Terminal penceresinden başlatılan tüm programlar artık mobil proxy üzerinden gidecek. Pencereyi kapatırsanız değişkenler kaybolur.
Kabuk ayar dosyası üzerinden kalıcı etkinleştirme
Modern macOS'ta varsayılan kabuk zsh'dir ve ayarları ev klasörünüzdeki .zshrc dosyasında saklanır. Oraya yazılan her şey her yeni Terminal penceresi açıldığında çalıştırılır.
- Dosyayı nano düzenleyiciyle açın:
nano ~/.zshrc- Ok tuşlarıyla dosyanın sonuna gidin.
- Önceki bölümdeki export satırlarını yapıştırın.
- Kaydetmek için Control ve O, sonra Enter'a basın. Çıkmak için Control ve X'e basın.
- Yeniden başlatmadan değişiklikleri uygulayın:
source ~/.zshrcDikkat: .zshrc içinde parola açık metin olarak saklanır. Mac paylaşımlıysa veya dosyayı bulut senkronizasyonunda tutuyorsanız iki kez düşünün. Uzlaşmacı çözüm ileri düzey ayarlar bölümünde anlatılıyor: proxy'yi otomatik değil kısa bir komutla açan takma adlar.
Git
Git ortam değişkenlerini okuyabilir, ama ayarları yapılandırmasında belirtmek daha güvenilirdir:
git config --global http.proxy http://user123:pass456@proxy.example.net:10000Devre dışı bırakmak için:
git config --global --unset http.proxyBu ayar HTTPS üzerinden clone, pull, push işlemlerini etkiler. Depolara SSH erişimi için farklı bir yaklaşım gerekir, o ileri düzey bölümde.
Homebrew
Brew tamamen ortam değişkenlerine dayanır. .zshrc'de tanımladıysanız ek bir şey yapmanıza gerek yok. brew update komutuyla kontrol edin: güncelleme bağlantı hatası olmadan geçmeli.
pip
Python yükleyicisi de ortam değişkenlerini okur. Değişkenler olmadan proxy üzerinden tek seferlik çalıştırma için anahtarı kullanın:
pip install --proxy http://user123:pass456@proxy.example.net:10000 requestsnpm
Node.js paket yöneticisi ayarları ayrı saklar:
npm config set proxy http://user123:pass456@proxy.example.net:10000npm config set https-proxy http://user123:pass456@proxy.example.net:10000Devre dışı bırakmak için: npm config delete proxy ve npm config delete https-proxy.
Terminal için SOCKS5
Terminal trafiğini SOCKS5 portu üzerinden göndermek istiyorsanız, http_proxy ve https_proxy yerine tek bir değişken tanımlayın:
export all_proxy=socks5h://user123:pass456@proxy.example.net:10001Curl ve birçok araç onu anlar. Ama hepsi değil: git HTTPS üzerinden all_proxy değişkenini her zaman okumaz, pip ise ek paket olmadan SOCKS'i anlamaz. Evrensellik için yeni başlayanlara HTTP seçeneğini öneriyoruz.
İpucu: .zshrc'ye alias myip='curl -s https://ifconfig.me; echo' satırını ekleyin ve sonra myip yazarak Terminal'in mevcut IP'sini bir saniyede görün. Bu günde onlarca kontrolü kazandırır.
Kontrol: Yeni bir Terminal penceresi açın. curl https://ifconfig.me ve git config --global --get http.proxy komutlarını çalıştırın. Birinci komut proxy IP'sini döndürür, ikincisi proxy adresini gösterir. Yani araçlar yapılandırıldı ve ayarlar yeniden başlatmayı atlatıyor.
Adım 6: Proxy'yi atlayan trafiği bulun ve düzeltin
Bu aşamanın amacı: çalışma setinizdeki hiçbir uygulamanın sizden habersiz doğrudan internete çıkmadığından emin olmak. Burada tüm sızıntı nedenlerini sistemleştirip her birini kontrol ediyoruz.
Neden 1: kendi proxy ayarları olan uygulama
Bazı programlar sistem proxy'sini ve ortam değişkenlerini yok sayar, çünkü kendi ayarları vardır. Klasik örnekler: Telegram Desktop, Firefox, Discord, bazı posta istemcileri, torrent istemcileri, antidetect tarayıcılar. Her birinin ayarlarında Ağ veya Proxy bölümü vardır.
- Çalıştığınız uygulamaların listesini yapın.
- Her birini açın ve ağ ayarları bölümünü bulun. Sistem proxy ayarlarını kullan seçeneği varsa onu seçin. Yalnızca manuel giriş varsa sunucu, port, kullanıcı adı ve parolayı girin.
- İzin veriyorsa uygulama içinde IP'yi veya o uygulamada açılan bir kontrol servisi üzerinden kontrol edin.
Belirli tarayıcıların ve antidetect tarayıcıların ayarları blogda ayrıca ele alınıyor, burada tekrarlamıyoruz. Prensibi anlamak önemli: her uygulamanın proxy'yi nereden aldığını kontrol etmek gerekir.
Neden 2: uygulama Terminal'den başlatılmadı
.zshrc'deki ortam değişkenleri yalnızca Terminal'den başlatılan programlar için geçerlidir. Betiği çift tıklayarak, kod düzenleyici veya planlayıcı üzerinden başlatırsanız değişkenler alınmaz. Çözüm: proxy'yi betiğin içinde açıkça tanımlayın, ya Terminal'den başlatın, ya da değişkenleri kod düzenleyicinizin ayarlarında belirtin.
Neden 3: yanlış ağ hizmeti
Wi-Fi'yi yapılandırdınız ama dock taktığınız için Mac kabloya bağlandı. Ya da tam tersi. Kontrol basit: networksetup -listallnetworkservices tüm hizmetleri gösterir ve ayarlardaki Ağ bölümü aktif olanı vurgular. Kullandığınız her hizmet için proxy'yi yapılandırın. Adım 4'teki networksetup komutlarını Wi-Fi yerine Ethernet koyarak tekrarlamanız gerekir.
Neden 4: istisna listesindeki gereksiz maskeler
Bunu Adım 3'te konuştuk. networksetup -getproxybypassdomains Wi-Fi komutunu çalıştırın ve orada tek yıldız, *.com, *.ru, *.net gibi maskeler ve çalışma servislerinizin alan adları olmadığından emin olun. Aynısını no_proxy değişkeninde echo $no_proxy komutuyla kontrol edin.
Neden 5: IPv6
Ev sağlayıcınız IPv6 adresi veriyorsa ve proxy IPv4 üzerinden çalışıyorsa bazı uygulamalar doğrudan IPv6 üzerinden gitmeye çalışabilir. Sistem uygulamaları için bu nadirdir, ama araçlar için olabilir. IP kontrol servisinin iki nokta içeren uzun bir adres göstermediğinden emin olun. Gösteriyorsa hizmet ayarlarını açın, TCP/IP sekmesinde IPv6'yı Yapılandır seçeneğini Yalnızca yerel bağlantı konumuna getirin.
Neden 6: HTTPS açık ama HTTP kapalı ya da tam tersi
Sistem ayarlarında bunlar iki bağımsız anahtardır. Birini unuttunuz ve trafiğin yarısı sızıyor. scutil --proxy komutunu çalıştırın ve HTTPEnable ve HTTPSEnable'ın ikisinin de 1 olduğundan emin olun.
Neden 7: tarayıcı önbelleği ve açık bağlantılar
Ayarlar değiştirilmeden önce başlatılan tarayıcı eski bağlantıları birkaç dakika daha tutabilir. Uygulamayı çarpı işaretiyle değil Command ve Q ile tamamen kapatın ve yeniden açın.
İpucu: Kendinize bir kontrol turu düzenleyin. IP kontrol servisini Safari'de, Chrome'da, Terminal'de curl ile ve her çalışma uygulamasının içinde açın. Dört sonucu yan yana not edin. Hepsi mobil proxy'nin IP'siyle eşleşiyorsa sızıntı yok. Bu turu her proxy değişikliğinden veya sistem güncellemesinden sonra tekrarlayın.
Kontrol: Yukarıdaki listeden tüm kontrol noktaları aynı mobil proxy IP'sini gösteriyor. Yerel adresler doğrudan açılıyor. Hiçbir anahtar yanlışlıkla kapalı kalmadı.
Sonucu kontrol edin: final kontrol listesi
Listeyi gözden geçirin ve her maddeyi işaretleyin. Herhangi biri yerine getirilmiyorsa ilgili adıma dönün.
Sistem seviyesi
- Sistem Ayarları'nda Proxy ekranında Web Proxy (HTTP) ve Güvenli Web Proxy (HTTPS) etkin, ikisi de aynı sunucu ve portla.
- Kimlik doğrulama etkin, kullanıcı adı ve parola kaydedildi, parola giriş penceresi bir daha görünmüyor.
- Safari mobil proxy'nin IP'sini ve cep telefonu operatörünü gösteriyor.
- İstisna listesi *.local, 169.254/16, localhost, 127.0.0.1 ve yerel alt ağınızı içeriyor. Gereksiz maske yok.
- Yerel adresler hatasız açılıyor.
Terminal
- networksetup -getwebproxy Wi-Fi komutu Enabled: Yes ve doğru sunucuyu gösteriyor.
- networksetup üzerinden açma ve kapama komutları her iki yönde çalışıyor.
- Yeni Terminal penceresinde echo $http_proxy proxy adresini veriyor.
- curl https://ifconfig.me -x anahtarı olmadan proxy IP'sini döndürüyor.
- echo $no_proxy yerel istisna listesini gösteriyor.
Araçlar
- git config --global --get http.proxy proxy adresini döndürüyor.
- brew update bağlantı hatası olmadan tamamlanıyor.
- Node.js ile çalışıyorsanız npm config get proxy proxy adresini döndürüyor.
- Kendi ağ ayarları olan tüm çalışma uygulamaları sistem proxy'sine geçirildi veya manuel yapılandırıldı.
Tamamen nasıl test edilir
- Sistem proxy'sini networksetup -setwebproxystate Wi-Fi off ve networksetup -setsecurewebproxystate Wi-Fi off komutlarıyla kapatın.
- Tarayıcıda IP kontrol servisini yenileyin. Ev IP'niz görünmelidir.
- Terminal'de curl https://ifconfig.me komutunu çalıştırın. Terminal sistem ayarlarını değil değişkenleri kullandığı için proxy IP'si kalmalı. Bu, seviyelerin bağımsız olduğunu doğrular.
- Sistem proxy'sini tekrar açın. Tarayıcıyı yenileyin. Proxy IP'si dönmelidir.
- Yeni bir Terminal penceresi açın, unset http_proxy https_proxy çalıştırın ve tekrar curl yapın. Şimdi Terminal ev IP'sini gösterecek. Pencereyi kapatın: sonrakinde değişkenler .zshrc'den tekrar alınacak.
Her geçiş beklenen sonucu verdiyse, macOS'ta proxy'yi tüm seviyelerde tam olarak kontrol ediyorsunuz. Amaç da buydu.
Tipik hatalar ve çözümleri
Proxy açık ama IP değişmiyor
Neden: yanlış ağ arayüzü yapılandırıldı veya HTTP ile HTTPS anahtarlarından yalnızca biri açık ya da tarayıcı yeniden başlatılmadı.
Çözüm: Ağ bölümünde aktif hizmeti kontrol edin, scutil --proxy çalıştırın ve her iki Enable değerinin 1 olduğundan emin olun, tarayıcıyı Command ve Q ile tamamen kapatın.
Sürekli proxy parolası isteyen pencere açılıyor
Neden: kullanıcı adı veya parolada hata, yapıştırdıktan sonra fazladan boşluk ya da Anahtar Zinciri'nde önceki proxy'den eski veriler kayıtlı.
Çözüm: alanların içeriğini silin ve elle yeniden girin. Anahtar Zinciri uygulamasını açın, proxy sunucusuyla kaydı bulun ve silin, sonra verileri tekrar girip Anımsa onay kutusunu işaretleyin.
Bazı siteler proxy üzerinden açılıyor, bazıları doğrudan
Neden: yalnızca HTTP veya yalnızca HTTPS açık ya da istisna listesinde geniş bir maske var.
Çözüm: her iki anahtarı açın. İstisna listesini networksetup -getproxybypassdomains komutuyla kontrol edin ve yerel ağa ait olmayan her şeyi silin.
Terminal sistem yapılandırılmış olmasına rağmen proxy'yi yok sayıyor
Neden: komut satırı araçları sistem ayarlarını okumaz. Ortam değişkenleri tanımlanmadı veya başka bir pencerede tanımlandı.
Çözüm: export satırlarını .zshrc'ye yazın ve source ~/.zshrc çalıştırın. echo $http_proxy komutuyla kontrol edin.
407 Proxy Authentication Required hatası
Neden: proxy kullanıcı adı ve parolayı kabul etmiyor. Genellikle URL dizesindeki özel karakterlerden kaynaklanır.
Çözüm: özel karakterleri kodlayın: et işareti %40, iki nokta %3A, kare işareti %23. Sağlayıcı panelinde IP ile kimlik doğrulamanın etkin olmadığından emin olun.
Yerel servisler, yazıcı veya yönlendirici çalışmayı bıraktı
Neden: istisna listesinden *.local ve 169.254/16 silindi ya da localhost ve yerel alt ağ eklenmedi.
Çözüm: listeyi Adım 3'teki tam kayıt kümesiyle networksetup -setproxybypassdomains komutu üzerinden geri getirin.
Mac yeniden başlatıldıktan sonra Terminal'de proxy kayboldu
Neden: değişkenler .zshrc'ye değil yalnızca açık pencerede export ile tanımlandı.
Çözüm: nano ~/.zshrc açın, satırları ekleyin ve kaydedin. Farklı bir kabuğunuz varsa, örneğin bash, dosya .bash_profile olarak adlandırılır.
Her şey çalışıyordu ama macOS güncellemesinden sonra bozuldu
Neden: büyük sistem güncellemeleri bazen ağ hizmeti ayarlarını sıfırlar veya yeniden adlandırır.
Çözüm: Masaüstündeki proxy_backup.txt dosyasını açın, değerleri karşılaştırın ve Adım 4'ü networksetup komutlarıyla tekrarlayın. Hizmet listesini kontrol edin: muhtemelen yeni bir tane göründü.
Sayfalar yavaş yükleniyor
Neden: bu mobil proxy'ler için normal bir davranış, cep ağı ev sağlayıcısından yavaştır. Ama bazen neden, hem HTTP proxy'nin hem de SOCKS'in açık olması ve uygulamaların iki kez bağlantı kurmaya çalışmasıdır.
Çözüm: sistem SOCKS'i kapatın, yalnızca HTTP ve HTTPS bırakın. Hız hâlâ düşükse rotasyon bağlantısıyla IP değiştirmeyi deneyin.
İleri düzey kullanıcılar için ek özellikler
Temel yapılandırma yapıldı. Şimdi manuel çalışmayı rahat bir sisteme dönüştüren birkaç teknik.
Ağ konumları: iki profil, tek geçiş
macOS birden fazla ağ ayar kümesi oluşturmanıza ve bunlar arasında bir bütün olarak geçiş yapmanıza izin verir. Bu her seferinde anahtarları hareket ettirmekten daha rahattır.
- Sistem Ayarları'nı açın, Ağ bölümüne gidin.
- Hizmet listesinin alt kısmındaki üç noktalı düğmeye tıklayın ve Konumlar, sonra Konumları Düzenle'yi seçin.
- Artı işaretine basın, yeni konumu Proxy olarak adlandırın. Tamam'a basın.
- Oluşturduğunuz konumu listeden seçin. Wi-Fi ve Ethernet için proxy'yi Adım 2'deki gibi yapılandırın.
- Başlangıçtaki Otomatik konumunu proxy'siz bırakın.
Artık Apple menüsünden Konum öğesiyle veya Terminal'de şu komutla geçiş yapabilirsiniz:
networksetup -switchtolocation ПроксиGeri ise: networksetup -switchtolocation Автоматически. Tüm hizmetler aynı anda geçer, yanlış arayüz hatası olmaz.
Terminal'de hızlı açma ve kapama için takma adlar
Proxy'yi sürekli açık tutmak istemiyorsanız, doğrudan export yerine .zshrc'ye iki fonksiyon ekleyin:
proxyon() { export http_proxy=http://user123:pass456@proxy.example.net:10000; export https_proxy=$http_proxy; export no_proxy=localhost,127.0.0.1,*.local; echo Proxy ON; }proxyoff() { unset http_proxy https_proxy all_proxy no_proxy HTTP_PROXY HTTPS_PROXY; echo Proxy OFF; }source ~/.zshrc sonrası proxyon komutu proxy'yi mevcut pencerede açar, proxyoff kapatır. Parola hâlâ dosyada, ama proxy sizin kararınız olmadan etkinleşmez.
Sistem ve Terminal için tek komut
proxyon fonksiyonunu genişletin, içine networksetup -setwebproxystate Wi-Fi on ve networksetup -setsecurewebproxystate Wi-Fi on satırlarını ekleyin. O zaman tek komut hem tarayıcılar hem de Terminal için proxy'yi açar. proxyoff'a aynı komutları off ile ekleyin. Sistem oturum başına bir kez yönetici parolasını ister.
Terminal'den mobil proxy IP'sini değiştirme
Çoğu mobil proxy sağlayıcısı IP değiştirmek için bir bağlantı verir. Tarayıcı açmadan curl ile çağrılabilir:
curl -s "https://адрес-ротации-из-личного-кабинета"newip adında bir fonksiyona sarın ve .zshrc'ye ekleyin. newip, sonra myip kombinasyonu yeni adresi iki saniyede gösterir. Günde onlarca kontrol yapan arbitrajcılar için bu hissedilir bir zaman tasarrufudur.
SOCKS5 proxy üzerinden SSH
Sunuculara SSH ile bağlanıyorsanız ve bağlantının mobil proxy üzerinden gitmesini istiyorsanız, ~/.ssh/config dosyasına şu bloğu ekleyin:
Host myserver HostName 203.0.113.10 ProxyCommand nc -X 5 -x proxy.example.net:10001 %h %pnc aracı macOS'ta yerleşiktir. -X 5 anahtarı SOCKS5 anlamına gelir, -x anahtarı proxy adresini belirtir. nc kullanıcı adı ve parolayla kimlik doğrulamayı desteklemez, bu nedenle bu yöntem IP ile kimlik doğrulayan proxy'ler için uygundur.
Esnek kurallar için PAC dosyası
Proxy Yapılandırmasını Otomatik Kullan anahtarı bir PAC dosyası adresi kabul eder: her adres için proxy üzerinden mi yoksa doğrudan mı gidileceğine karar veren bir JavaScript betiği. Bu, maskelerle ifade edilemeyen karmaşık istisnaları uygulamanın bir yoludur. Dosya yerel olarak saklanabilir ve file:/