Computer >> 컴퓨터 >  >> 시스템 >> Windows 10

Windows 10 재부팅 후 인터넷 연결 공유(ICS)가 자동으로 꺼질 때 해결 방법

인터넷 연결 공유(ICS)란?

Windows의 인터넷 연결 공유(Internet Connection Sharing, ICS) 서비스를 사용하면 한 대의 컴퓨터에 연결된 인터넷 회선을 로컬 네트워크의 다른 기기들과 공유할 수 있습니다(Wi-Fi 또는 이더넷). 5G/4G/LTE 모뎀, 두 번째 네트워크 어댑터를 통한 직접 케이블 연결, 위성 회선, PPPoE, VPN 등 어떤 방식으로 인터넷에 접속했든, 네트워크 인터페이스가 두 개 이상 있는 Windows PC는 다른 기기들을 위한 네트워크 게이트웨이 역할을 하게 됩니다.

ICS는 Windows에 내장된 서비스로, 네트워크 연결 공유와 함께 NAT(주소 변환) 및 DHCP 서버 기능도 제공합니다. 또한 ICS를 활용하면 Windows 10 장치를 모바일 핫스팟으로 전환할 수도 있습니다.

ICS 활성화 방법

네트워크 연결 공유는 네트워크 어댑터 속성에서 활성화할 수 있습니다. 공유 탭 → 인터넷 연결 공유다른 네트워크 사용자가 이 컴퓨터의 인터넷 연결을 통해 연결할 수 있도록 허용 옵션을 체크하면 됩니다.

Windows 10 재부팅 후 인터넷 연결 공유(ICS)가 자동으로 꺼질 때 해결 방법

재부팅 후 ICS가 작동하지 않는 문제

최신 Windows 10 빌드에는 불편한 단점이 하나 있습니다. 공유 인터넷 연결이 설정된 컴퓨터를 재시작하면, 로컬 LAN/Wi-Fi 네트워크의 다른 컴퓨터들이 인터넷에 접속할 수 없게 됩니다.

그 이유는 최신 Windows 10 빌드에서 인터넷 연결 공유 서비스가 공유 연결을 통해 트래픽이 흐르지 않으면 약 4분 후 자동으로 비활성화되며, 자동으로 다시 시작되지 않기 때문입니다. 공유 인터넷 액세스를 복원하려면 인터넷에 연결하는 데 사용 중인 네트워크 어댑터 속성에서 공유 옵션을 해제했다가 다시 체크해야 하는 번거로움이 있습니다.

레지스트리 설정으로 재부팅 후에도 ICS 유지하기

Windows 10 재시작 후에도 인터넷 연결 공유가 자동으로 유지되도록 하려면 레지스트리 키 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\SharedAccess에서 DWORD 값 EnableRebootPersistConnection1로 설정합니다.

다음 PowerShell 명령어를 사용하면 간편하게 생성할 수 있습니다:

New-ItemProperty -Path HKLM:\Software\Microsoft\Windows\CurrentVersion\SharedAccess -Name EnableRebootPersistConnection -Value 1 -PropertyType dwordWindows 10 재부팅 후 인터넷 연결 공유(ICS)가 자동으로 꺼질 때 해결 방법

SharedAccess 서비스 자동 시작 설정

그다음 인터넷 연결 공유 서비스(SharedAccess)의 자동 시작을 설정합니다. services.msc에서 시작 유형을 '수동'에서 '자동'으로 변경하거나, PowerShell로 다음과 같이 설정할 수 있습니다:

Set-Service SharedAccess –startuptype automatic –passthru

서비스를 즉시 시작하려면 아래 명령어를 실행합니다:

Start-Service SharedAccessWindows 10 재부팅 후 인터넷 연결 공유(ICS)가 자동으로 꺼질 때 해결 방법

공유 연결 자동 복구 PowerShell 스크립트

컴퓨터에서 인터넷 공유가 설정된 모든 네트워크 연결을 찾아 공유를 해제한 후 다시 활성화하는 PowerShell 스크립트도 활용할 수 있습니다:

$NetShareObject = New-Object -ComObject HNetCfg.HNetShare
$list = New-Object System.Collections.Generic.List[System.Object]
foreach( $connection in $NetShareObject.EnumEveryConnection ){
$config = $NetShareObject.INetSharingConfigurationForINetConnection( $connection )
if( $config.SharingEnabled -eq 1 ){
$type = $config.SharingConnectionType
$list.Add( @($type,$config) )
$config.DisableSharing( )
}
}
Start-Sleep 1
foreach( $array in $list ){
$array[1].EnableSharing($array[0])
}

이 스크립트는 Windows 작업 스케줄러(Task Scheduler)에 등록하여 컴퓨터 시작 시 자동으로 실행되도록 구성할 수 있습니다. 이렇게 하면 재부팅 후에도 인터넷 공유가 항상 정상적으로 동작하도록 유지할 수 있습니다.