macOS'ta sistem düzeyinde proxy yapılandırması, sistem proxy ayarlarına uyan tüm uygulamaların ağ trafiğini belirtilen bir proxy sunucusu üzerinden yönlendirir; bu yapılandırma genellikle Sistem Ayarları uygulamasından veya networksetup komut satırı aracıyla yönetilir.
macOS, çoğu uygulamanın — web tarayıcıları (Safari, Chrome, varsayılan olarak Firefox), komut satırı araçları (curl, wget) ve ağ kullanan diğer yazılımlar dâhil — otomatik olarak benimseyeceği merkezi bir proxy yapılandırma mekanizması sunar. Bu, uygulama başına ayar yapmadan işletim sistemi genelinde tutarlı bir ağ davranışı sağlar.
Yapılandırma yöntemleri
macOS'ta sistem düzeyinde proxy yapılandırmak için iki temel yöntem vardır:
- Grafik arayüz (GUI): Sistem Ayarları uygulamasının kullanılması. Etkileşimli, tek seferlik kurulumlar için uygundur.
- Komut satırı arayüzü (CLI):
networksetuparacının kullanılması. Bu yöntem betik yazma, otomasyon veya uzaktan yönetim için tercih edilir.
GUI ile yapılandırma: Sistem Ayarları
Proxy ayarlarını macOS Sistem Ayarları üzerinden yapılandırmak için:
- Sistem Ayarları'nı açın.
- Kenar çubuğunda Ağ bölümüne gidin.
- Listeden etkin ağ arayüzünü seçin (örneğin Wi-Fi, Ethernet).
- Seçili arayüz için Ayrıntılar... düğmesine tıklayın.
- Açılan pencerede kenar çubuğundan Proxy'ler'i seçin.
Proxy'ler bölmesinde birkaç seçenek bulunur:
-
Otomatik proxy yapılandırması:
- Otomatik proxy keşfi: Proxy ayarlarının Web Proxy Auto-Discovery (WPAD) protokolüyle keşfedilmesini etkinleştirir.
- Otomatik proxy yapılandırması: Bir Proxy Auto-Configuration (PAC) dosyasının URL'sini belirtir.
-
Manuel proxy yapılandırması:
- Web proxy (HTTP): Şifrelenmemiş web trafiği için bir HTTP proxy'si yapılandırır.
- Güvenli web proxy (HTTPS): Şifreli web trafiği için bir HTTPS (SSL/TLS) proxy'si yapılandırır.
- FTP proxy: File Transfer Protocol için bir proxy yapılandırır.
- SOCKS proxy: Çeşitli ağ trafiği türlerini işleyebilen bir SOCKS proxy'si yapılandırır.
- Gopher proxy: (Eski) Gopher protokolü için bir proxy yapılandırır.
- Akış proxy'si (RTSP/RTSP): Real-Time Streaming Protocol için proxy yapılandırır.
Her manuel proxy türü için:
- Sunucu: Proxy sunucusunun IP adresini veya hostname'ini girin.
- Port: Proxy sunucusunun dinlediği port numarasını girin.
- Proxy sunucusu parola gerektiriyor: Kimlik doğrulama gerekiyorsa bu kutuyu işaretleyin. Kullanıcı adını ve parolayı girin.
Proxy atlama (bypass) ayarları
"Bu host ve alan adları için proxy ayarlarını atla" alanı, yapılandırılan proxy'yi kullanmaması gereken hedefleri belirtmenizi sağlar. Hostname'leri, alan adlarını veya IP adreslerini virgülle ayırarak girin. Alan adı eşleştirmesinde joker karakter (*) desteklenir.
Örnek:
*.local, 192.168.1.0/24, localhost, 127.0.0.1
CLI ile yapılandırma: networksetup
networksetup komut satırı aracı, proxy'ler dâhil ağ ayarları üzerinde kapsamlı denetim sağlar. Sistem Ayarları'nda listelenen arayüzlere karşılık gelen "ağ servisleri" üzerinde çalışır (örneğin "Wi-Fi", "Ethernet").
Ağ servislerini listeleme
Yapılandırmadan önce ağ servisinizin tam adını belirleyin:
networksetup -listallnetworkservices
Örnek çıktı:
An asterisk (*) denotes that a network service is disabled.
Wi-Fi
Ethernet
Bluetooth PAN
Thunderbolt Bridge
Adı göründüğü şekliyle birebir kullanın (örneğin "Wi-Fi").
HTTP/HTTPS proxy ayarlama
Bir servis için web proxy (HTTP) ve güvenli web proxy (HTTPS) ayarlamak üzere:
# HTTP proxy'yi ayarla (IP adresi:port)
networksetup -setwebproxy "Wi-Fi" 192.168.1.100 8080
# HTTPS proxy'yi ayarla (IP adresi:port)
networksetup -setsecurewebproxy "Wi-Fi" 192.168.1.100 8080
Kimlik doğrulama eklemek için:
# HTTP proxy'yi kimlik doğrulamayla ayarla
networksetup -setwebproxy "Wi-Fi" 192.168.1.100 8080 username password
# HTTPS proxy'yi kimlik doğrulamayla ayarla
networksetup -setsecurewebproxy "Wi-Fi" 192.168.1.100 8080 username password
Not: Kimlik bilgilerini doğrudan komut satırında vermek genellikle güvensizdir; bu bilgiler kabuk geçmişinde saklanabilir. Betiklerde hassas kimlik bilgileri için ortam değişkenleri veya Keychain gibi alternatifleri değerlendirin.
SOCKS proxy ayarlama
Bir SOCKS proxy ayarlamak için:
networksetup -setsocksfirewallproxy "Wi-Fi" 192.168.1.100 1080
Kimlik doğrulamayla (yukarıdakiyle aynı güvenlik notu geçerlidir):
networksetup -setsocksfirewallproxy "Wi-Fi" 192.168.1.100 1080 username password
Proxy'leri devre dışı bırakma
Belirli proxy'leri devre dışı bırakmak için:
networksetup -setwebproxystate "Wi-Fi" off
networksetup -setsecurewebproxystate "Wi-Fi" off
networksetup -setsocksfirewallproxystate "Wi-Fi" off
Bir servisin tüm manuel proxy'lerini devre dışı bırakmak için:
networksetup -setwebproxystate "Wi-Fi" off
networksetup -setsecurewebproxystate "Wi-Fi" off
networksetup -setftpproxystate "Wi-Fi" off
networksetup -setsocksfirewallproxystate "Wi-Fi" off
# ... ve diğer proxy türleri için aynı şekilde devam
Otomatik proxy yapılandırması ayarlama (PAC dosyası)
Bir PAC dosyası URL'si belirtmek için:
networksetup -setautoproxyurl "Wi-Fi" http://proxy.example.com/proxy.pac
Otomatik proxy keşfini (WPAD) etkinleştirmek için:
networksetup -setautoproxydiscovery "Wi-Fi" on
Proxy atlama alan adlarını ayarlama
Proxy'yi atlayacak alan adlarını yapılandırmak için:
networksetup -setproxybypassdomains "Wi-Fi" "*.local" "192.168.1.0/24" "localhost"
Servis adından sonraki argümanlar atlama girdileridir. Mevcut atlama girdilerini temizlemek için:
networksetup -setproxybypassdomains "Wi-Fi" ""
Proxy türleri
| Proxy türü | İşlenen protokol | Açıklama
Proxy Auto-Configuration (PAC) dosyaları
PAC dosyası, web tarayıcılarının ve diğer user agent'ların belirli bir URL için uygun proxy sunucusunu nasıl seçeceğini tanımlayan bir JavaScript dosyasıdır. Bu, hedef host'a, alan adına ve hatta günün saatine göre farklı proxy yapılandırmaları kullanma esnekliği sağlar.
PAC dosyası belirtme
GUI ve CLI bölümlerinde belirtildiği gibi bir PAC dosyası URL'si tanımlayabilirsiniz. macOS bu betiği indirir ve proxy kullanımını belirlemek için kullanır.
Temel PAC dosyası yapısı
Bir PAC dosyası FindProxyForURL(url, host) adlı bir fonksiyon içermelidir. Bu fonksiyon, kullanılacak proxy'yi belirten bir string döndürür.
function FindProxyForURL(url, host) {
// Dahili host'lar için doğrudan bağlantı
if (isPlainHostName(host) ||
shExpMatch(host, "*.local") ||
isInNet(host, "192.168.1.0", "255.255.255.0")) {
return "DIRECT";
}
// Belirli alan adları için özel bir proxy kullan
if (shExpMatch(host, "*.example.com")) {
return "PROXY proxy.example.com:8080";
}
// Diğer tüm trafik için varsayılan ana proxy
return "PROXY mainproxy.yourcompany.com:8080; DIRECT";
// Proxy erişilemezse "DIRECT" yedeği devreye girer.
}
Yaygın PAC fonksiyonları:
* isPlainHostName(host): Host nokta içermiyorsa true döndürür.
* dnsDomainIs(host, domain): Host belirtilen alan adı içindeyse true döndürür.
* shExpMatch(host, pattern): Host, kabuk ifadesi kalıbıyla eşleşiyorsa true döndürür.
* isInNet(host, pattern, mask): Host'un IP adresi belirtilen alt ağdaysa true döndürür.
* myIpAddress(): Makinenin IP adresini döndürür.
* dnsResolve(host): Bir DNS hostname'ini IP adresine çözer.
Proxy atlama ayarları
"Bu host ve alan adları için proxy ayarlarını atla" yapılandırması, trafiği yapılandırılan proxy üzerinden geçmemesi gereken hedefleri belirtmenizi sağlar. Bu; dahili kaynaklara doğrudan erişmek, gereksiz proxy yükünü önlemek veya belirli servislerdeki proxy uyumsuzluklarını çözmek için kritik önemdedir.
Girdi sözdizimi:
* Hostname'ler: localhost, myinternalserver
* Alan adları: *.local, example.com, sub.example.net
* * joker karakter işlevi görür. *.domain.com, hem host.domain.com hem de sub.host.domain.com ile eşleşir.
* IP adresleri: 192.168.1.10
* IP alt ağları: 192.168.1.0/24, 10.0.0.0/8
* CIDR gösterimi desteklenir.
Girdiler GUI'de genellikle virgülle ayrılır ya da networksetup -setproxybypassdomains komutuna ayrı argümanlar olarak verilir.
Doğrulama ve sorun giderme
Geçerli proxy ayarlarını kontrol etme
Bir ağ servisi için etkin proxy ayarlarını CLI ile doğrulamak üzere:
# Bir servisin tüm proxy bilgilerini al
networksetup -getwebproxy "Wi-Fi"
networksetup -getsecurewebproxy "Wi-Fi"
networksetup -getsocksfirewallproxy "Wi-Fi"
networksetup -getautoproxyurl "Wi-Fi"
networksetup -getautoproxydiscovery "Wi-Fi"
networksetup -getproxybypassdomains "Wi-Fi"
Sık karşılaşılan sorunlar
- Yanlış IP/port: Proxy sunucusunun adresinin ve portunun doğru olduğunu doğrulayın.
- Kimlik doğrulama hatası: Kullanıcı adı ve parolanın doğru olduğundan emin olun. Kimlik doğrulama denemeleri için proxy sunucusu loglarını inceleyin.
- Firewall engellemesi: macOS istemcisindeki yerel bir firewall ya da istemciyle proxy sunucusu arasındaki bir ağ firewall'u, proxy portundaki trafiği engelliyor olabilir.
- Proxy sunucusuna erişilemiyor: Proxy sunucusunun kendisi kapalı olabilir veya istemcinin ağ segmentinden erişilemiyor olabilir.
- PAC dosyası hataları: PAC dosyası kullanıyorsanız JavaScript içindeki sözdizimi hataları dosyanın çalışmasını engeller. PAC dosyasını bir doğrulayıcıyla test edin veya sorunu izole etmek için sadeleştirin. PAC dosyası URL'sinin erişilebilir olduğundan emin olun.
- DNS çözümlemesi: macOS istemcisinin proxy sunucusunun hostname'ini (kullanılıyorsa) ve harici hostname'leri çözebildiğinden emin olun.
- Uygulamaya özel geçersiz kılmalar: Bazı uygulamaların sistem düzeyindeki yapılandırmayı geçersiz kılan kendi proxy ayarları olabilir. Trafik beklendiği gibi yönlenmiyorsa uygulamanın kendi ayarlarını kontrol edin.
