Wi-Fi 네트워크에 Mac을 자동 재 연결하는 방법은 무엇입니까?


11

Wi-Fi 네트워크에서 며칠 정도 연결이 끊어지는 Mac Mini 서버가 있습니다. 초기 연결 해제의 원인이되는 다른 매개 변수가있을 수 있지만 (예 : 무선 라우터 재부팅) Mac은 자동으로 다시 연결되지 않습니다.

누군가가 실제로 기계에 접속할 때까지 Wi-Fi 메뉴를 사용하여 네트워크에 수동으로 다시 연결할 때까지 갑자기 사용할 수없는 서버 시스템이기 때문에 중요한 문제입니다. Wi-Fi 네트워크는 WPA2이지만 수동으로 다시 연결하면 암호를 다시 입력하지 않아도되므로 자동으로 다시 연결되지 않는 분명한 이유는 없습니다.

Mac이 정기적으로 지정된 Wi-Fi 네트워크에 연결하고 다시 연결하도록하려면 어떻게해야합니까?


해당 네트워크가 기본 설정으로 정의되어 있습니까? "시스템 환경 설정> 네트워크에서"이 컴퓨터가 가입 한 네트워크를 기억하십시오 "가 체크되어 있고"로그 아웃 할 때 무선 네트워크 연결 끊기 "가 체크되어 있지 않은가? 네트워크 연결을 삭제하고 다시 만들 수도 있습니다.
harrymc

"로그 아웃시 무선 네트워크 연결 끊기"옵션은 어디에 있습니까? 라이온을 운영하고 있습니다.
GJ.

분명히 고급 설정에 있습니다.
harrymc

WPA2 암호화를 해독하는 유일한 방법은 인증 패킷을 스니핑하고 (컴퓨터가 연결될 때) 가장 일반적인 방법은 컴퓨터 중 하나를 인증 해제하고 네트워크를 스니핑하는 것입니다. 다시 연결됩니다.
Nate Koppenhaver

답변:


12

다음은 공항이 연결되어 있고 연결되어 있지 않은지 확인하기위한 Applescript 및 셸 스크립트입니다.

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

<networkName>네트워크 이름과 <passwordToNetwork>비밀번호로 바꿉니다 . 네트워크 장치를 변경하지 않은 경우 "en1"이 정확해야합니다.

이제 이것을 반복하거나 연결을 확인하기 위해 호출하면됩니다.

그럼에도 불구하고 연결이 끊어지면 공항은 자동으로 다시 연결해야합니다. 모든 네트워크 환경 설정을 재설정하고 작동하는지 확인하십시오.

네트워크 환경 설정을 완전히 재설정하는 방법 : 공항을 끄십시오. 시스템 환경 설정을 닫습니다. 다음으로 이동하십시오 : /Library/Preferences/SystemConfiguration/ 복사 한 후 다음 파일을 삭제하십시오.

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

감사. 그래도 왜 애플 스크립트를 사용합니까? 그것은 아마도 매분마다 실행되는 쉘 스크립트 또는 launchd를 사용하는 쉘 스크립트에 더 적합합니다.
GJ.

또한 "모든 네트워크 환경 설정을 어떻게 재설정합니까?"
GJ.

이것은 쉘 스크립트로 수행 할 수 있습니다. 나는 Applescript에 능숙하지만 Applescript로 썼습니다. 쉘 스크립트로 작성할 수 있는지 살펴 보겠습니다. 또한 네트워크 환경 설정 재설정에 대한 게시물을 업데이트했습니다.
Kassym Dorsel

스크립트를 개선하고 쉘 스크립트를 추가했습니다.
Kassym Dorsel

가장 심각한 쉘 스크립트 오류를 ​​수정했지만 아마도 더 리팩토링해야합니다. 내 Mac에서 나는 grep그것이 올라 왔을 때 두 번의 타격을 받았으며 , 그것이 내려 졌을 때 한 번만 맞았지만 아마도 다른 것을 확인하는 것이 좋을 것이다. 무언가의 수를 세는 것은 거의 반 패턴입니다.
tripleee

5

Kassym Dorsel의 답변 에 대해 의견을 말하고 싶지만 그렇게 할 충분한 포인트가 없습니다.

Mac 서버에서도 같은 문제가 발생했습니다.

Wi-Fi는 VPN에 연결되고 이더넷은 LAN에 연결되므로 Wi-Fi 연결이 끊어지면 OS X가 자동으로 다시 연결되지 않습니다.

Kassym Dorsel의 답변을 고려할 때 :

  • 나는 Wi-Fi 암호를 깨끗하게 보관하는 것이 편안하지 않았다.

  • Wi-Fi가 사용 중지 된 경우 Wi-Fi를 사용하도록 설정했습니다.

  • 고정 IP 주소가 할당되고 Wi-Fi가 활성화되었지만 여전히 잘못된 Wi-Fi 네트워크 (SSID)에 연결되지 않았거나 조건을 처리하기를 원했습니다.

따라서 이러한 문제를 해결하기 위해 스크립트를 수정했습니다 ( <networkName>원하는 네트워크 SSID로 교체 ).

#!/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

허용되는 답변과 마찬가지로 가장 문제가 많은 쉘 프로그래밍 문제를 해결했습니다. 이것은 지금 거의 우아합니다.
tripleee

2

airport유틸리티를 사용 하려고 할 수 있습니다 (새로운 OS X 버전에서는 숨겨져 /System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport있거나 비슷한 경로에 있음).

특히, JoinModeJoinModeFallback환경 설정이 유용 할 수 있습니다. 내 컴퓨터에서는 기본적으로 JoinModeFallback설정되어 DoNothing있습니다. 그것을 KeepLooking유망한 출발으로 바꾸는 것.

airport도움을 받으려면 논증없이 실행하십시오 .


이것은 흥미롭고 유망했지만 결국에는 아무것도 바꾸지 않았습니다. 환경 설정을 변경했지만 (폴백에 대해 "알 수 없음"및 "아무것도 없음") WiFi가 여전히 다시 연결되지 않습니다.
tripleee

0

다음은 간단한 리팩토링입니다.

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

$ssid실제 네트워크 SSID $password와이 네트워크의 비밀번호로 교체하십시오 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.