Mac'in bir wifi ağına otomatik olarak yeniden bağlanması nasıl sağlanır?


11

Wifi ağından her birkaç günde bir bağlantıyı kesen bir Mac Mini Sunucum var. İlk bağlantı kesilmesine neden olan başka parametreler de olabilir (kablosuz yönlendiricinin yeniden başlatılması gibi), ancak Mac otomatik olarak yeniden bağlanmaz.

Birisi makineye fiziksel olarak gidene ve ağa manuel olarak yeniden bağlanmak için wifi menüsünü kullanana kadar aniden kullanılamaz hale gelen bir sunucu makinesi olduğundan büyük bir sorundur. Wifi ağı WPA2 olmasına rağmen, manuel olarak yeniden bağlamanın şifreyi tekrar girmeyi içermediğini, bu yüzden otomatik olarak yeniden bağlanmamasının açık bir nedeni olmadığını belirtmeliyim.

Mac'in belirli bir kablosuz ağa belirli aralıklarla bağlanmasını ve yeniden bağlanmasını nasıl sağlayabilirim?


Söz konusu ağ Tercihli olarak tanımlanmış mı? Sistem Tercihleri> Ağ'da "Bu bilgisayarın katıldığı herhangi bir ağı hatırla" nın işaretli olduğunu ve "Oturumu kapatırken kablosuz ağların bağlantısını kes" seçeneğinin işaretini kaldırdınız mı? Ağ bağlantısını silmeyi ve yeniden oluşturmayı da deneyebilirsiniz.
harrymc

"Oturumu kapatırken kablosuz ağlarla bağlantıyı kes" seçeneği tam olarak nerede? Aslan koşuyor.
GJ.

Görünüşe göre Gelişmiş ayarlarda.
harrymc

paranoyak veya herhangi bir şey yapmamak için, ancak WPA2 şifrelemesini kırmanın tek yolu, kimlik doğrulama paketlerini (bir bilgisayar bağlandığında) koklamak ve bunu yapmanın en yaygın yolu, makinelerden birinin kimliğini doğrulamak ve ağ yeniden bağlanır.
Nate Koppenhaver

Yanıtlar:


12

Havaalanı ve bağlı olup olmadığını kontrol etmek için bir Applescript ve kabuk betiği.

if (do shell script "networksetup -getinfo Wi-Fi | grep -c 'IP address:'") = 1 then
    do shell script "networksetup -setairportnetwork en1 <networkName> <passwordToNetwork>"
end if
#!/bin/bash
if [ $(networksetup -getinfo Wi-Fi | grep -c 'IP address:') = '1' ]
then networksetup -setairportnetwork en1 <networkName> <passwordToNetwork>
fi

Değiştir <networkName>ağın adı ile ve <passwordToNetwork>onun şifresiyle. Ağ aygıtlarınızı değiştirmediyseniz "en1" doğru olmalıdır.

Şimdi yapmanız gereken tek şey bunu döngüye sokmak veya bağlantıyı kontrol etmek için çağırmaktır.

Yine de bağlantı kesilirse havaalanı otomatik olarak yeniden bağlanmalıdır. Belki tüm ağ tercihlerini sıfırlamayı deneyin ve işe yarayıp yaramadığına bakın.

Ağ Tercihlerinizi tamamen sıfırlama: Havaalanını kapatın. Sistem Tercihlerini kapatın. Şuraya gidin: /Library/Preferences/SystemConfiguration/ Bir kopya oluşturun, ardından aşağıdaki dosyaları silin:

com.apple.airport.preferences.plist
com.apple.network.*
com.apple.smb.server.plist
NetworkInterfaces.plist

Teşekkürler. neden bir el yazısı kullanıyorsunuz? belki de her dakika çalışan bir kabuk betiğine launchd kullanarak daha fazla borç vermiş gibi görünüyor.
GJ.

Ayrıca, "tüm ağ tercihlerini nasıl sıfırlarsınız?"
GJ.

Bu bir kabuk betiği ile yapılabilir. Applescript'te daha iyiyim, bu yüzden Applescript'te yazdım. Bir kabuk betiğine yazıp yazamayacağımı göreceğim. Ağ tercihlerini sıfırlama hakkındaki yazıyı da güncelledim.
Kassym Dorsel

Komut dosyası iyileştirildi ve bir kabuk komut dosyası eklendi.
Kassym Dorsel

En berbat kabuk komut dosyası hatasını düzelttim ama muhtemelen biraz daha yeniden düzenlenmesi gerekiyor. Mac bilgisayarımda, grepyukarı çıktığında iki vuruş ve aşağıdayken yalnızca bir isabet alıyorum , ancak muhtemelen başka bir şey kontrol etmek daha iyi olurdu; bir şeyin sayısını saymak neredeyse bir antipattern.
üçlü

5

Kassym Dorsel'in cevabı hakkında yorum yapmak istiyorum , ancak bunu yapmak için yeterli puanım yok.

Mac sunucumla aynı sorunu yaşadım:

Wi-Fi, VPN ve Ethernet'ten LAN'a bağlanır, bu nedenle Wi-Fi bağlantısı kesilirse OS X otomatik olarak yeniden bağlanmaz.

Kassym Dorsel'in cevabı göz önüne alındığında:

  • Wi-Fi şifremi net bir şekilde saklamakta rahat değildim (kuşkusuz son derece düşük bir risktir, ancak yine de).

  • Devre dışı bırakılmışsa Kablosuz'u etkinleştirmesini istedim.

  • Statik bir IP adresinin atandığı, Wi-Fi'nin etkinleştirildiği, ancak hala bağlı olmadığı veya yanlış Wi-Fi ağına (SSID) bağlı olduğu durumun ele alınmasını istedim.

Bu nedenle, bu endişeleri gidermek için komut dosyasını değiştirdim ( <networkName>tercih ettiğiniz ağ SSID'si ile değiştirin ):

#!/bin/bash

# turn on Wi-Fi if it's turned 'Off'
if networksetup -getairportpower en1 | grep -q 'Off'
    then networksetup -setairportpower en1 on
fi

# cycle Wi-Fi power if missing 'IP address'
if [ $(networksetup -getinfo Wi-Fi | grep -c 'IP address:') = '1' ]
then
    networksetup -setairportpower en1 off
    networksetup -setairportpower en1 on
fi

# initiate connection if not connected to the correct network
if networksetup -getairportnetwork en1 | grep -q '<networkName>'
    then networksetup -setairportnetwork en1 '<networkName>'
fi

Kabul edilen cevaba benzer şekilde, en problemli kabuk programlama problemlerini çözdüm. Bu neredeyse zarif.
üçlü

2

airportYardımcı programla oynamayı deneyebilirsiniz (daha yeni OS X sürümlerinde gizlenmiş /System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airportveya benzer bir yol).

Özellikle JoinModeve JoinModeFallbacktercihleri ​​faydalı olabilir. Makinemde varsayılan JoinModeFallbackolarak ayarlıdır DoNothing. Bunu değiştirmek KeepLookingumut verici bir başlangıç ​​gibi görünüyor.

airportYardımını görmek için bağımsız değişkenler olmadan çalıştırın .


Bu ilginç ve umut vericiydi, ama sonunda benim için hiçbir şey değiştirmedi. Tercihleri ​​değiştirdim (yedek için "bilinmeyen" ve "hiçbir şey" vardı) ama WiFi yine de yeniden bağlanmaz.
Üçlü

0

İşte benim için çalışan basit bir yeniden düzenleme.

#!/bin/bash
networksetup -getinfo Wi-Fi | grep -q Subnet: ||
networksetup -setairportnetwork en1 "$ssid" "$password"

Açıkçası, $ssidgerçek ağ SSID'si ve $passwordbu ağın şifresi ile değiştirin .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.