Служба Internet Connection Sharing (ICS) в Windows позволяет предоставить общий доступ к интернет подключению на вашем компьютере другим компьютерам в локальной сети (через Wi-Fi или Ethernet). Благодаря этому все компьютеры в локальной сети могут выходить в Интернет через интернет подключение на одном компьютере (компьютер может быть подключен к интернету: через 4G/LTE модем, прямое кабельное подключение через второй сетевой адаптер, спутниковое подключение, PPPoE, VPN подключение и т.д.). В этом случае данный компьютер Windows с двумя сетевыми интерфейсами, подключенными к разным сетям, будет выступать в качестве шлюза для доступа в Интернет других компьютеров. Служба ICS при этом выполняет функции трансляции адресов (NAT) и DHCP сервера.
Общий доступ к сетевому подключению в Windows включается в свойствах сетевого адаптера на вкладке Доступ -> Общий доступ к подключению к Интернету -> Разрешить другим пользователям сети использовать подключение к Интернету данного компьютера (Allow other network users to connect through this computer’s Internet connection).
В современных билдах Windows 10 есть один неприятный недостаток – после перезагрузки компьютера с общим сетевым подключением, у других компьютеров в локальной LAN/Wi-Fi сети пропадает доступ в Интернет.
Дело в том, что в современных билдах Windows 10, если через общее сетевое подключение не идет трафик, то служба Internet Connection Sharing отключается через 4 минуты, и не перезапускается автоматически.Чтобы восстановить общий доступ к Интернету, нужно снять и еще повторно включить галку общего доступа в свойства сетевого адаптера, через который Windows подключена к Интернету.
Чтобы служба общего доступа к интернету автоматически включалась после перезагрузки Windows 10, нужно включить специальный параметр реестра EnableRebootPersistConnection типа DWORD в ветке HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\SharedAccess и значением 1.
Проще всего создать параметр реестра следующей командой PowerShell:
New-ItemProperty -Path HKLM:\Software\Microsoft\Windows\CurrentVersion\SharedAccess -Name EnableRebootPersistConnection -Value 1 -PropertyType dword
Затем нужно установить автоматический запуск для службы Internet Connection Sharing (
SharedAccess
). Можно изменить тип запуска службы с Manual на Automatic через консоль services.msc или с помощью PowerShell:
Set-Service SharedAccess –startuptype automatic –passthru
Запустите службу:
Start-Service SharedAccess
Также вы можете использовать следующий 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])
}
Этот PowerShell скрипт можно запускать автоматически через задание планировщика Windows при загрузке компьютера.
Интересно. Спасибо за EnableRebootPersistConnection
Может пригодиться.
Больше одного интерфейса еще не пробовал расшарить.
Взял Ваш PowerShell скрипт, который находит на компьютере все сетевые подключения с включенным общим доступом, отключает для них общий доступ и через секунду включает его. Отлично работает, но только при условии запуска вручную от имени администратора. Если добавляю его в планировщик задач — выполняется без ошибок, но не срабатывает. Доменная сеть, Windows 10. Пытался выставлять запуск от имени Администратора домена и от имени Системы — не срабатывает. UAC отключал. Направьте, в каком направлении копать?
запуск должен быть такой:
PowerShell.exe -ExecutionPolicy Bypass «путь\скрипт»
Почему то теперь после добавления ключа EnableRebootPersistConnection типа DWORD в ветке HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\SharedAccess со значением 1 и установлением автоматического запуска для службы Internet Connection Sharing ( SharedAccess ) стало когда с удалённого компа через другой интерфейс (Ethernet RJ-45), который не расшаренный, подключаешься через RemoteDesktop и подключаешь расшаренный интерфейс ( WiFi) к точке доступа WiFi , то отваливается Удалённый рабочий стол, но при этом c удалённого компа пинги проходят в интернет и порт 3389 открыт на интерфейсе (Ethernet RJ-45).
(Radmin также стал отваливаться).
Но если убрать общедоступность на интерфейсе ( WiFi), то на интерфейсе (Ethernet RJ-45) IP-адрес меняется на Автонастройка IPv4-адреса . . . . : 169.254.161.213 и если также на удалённом компе обновить ipconfig /renew на Autoconfiguration IP Address. . . : 169.254.167.175, то снова можно соединиться через RemoteDesktop и пользоваться интернетом через интерфейс ( WiFi) .
Однако, при такой конфигурации уже с c удалённого компа пинги не проходят в интернет . То есть Служба ICS при этом перестаёт выполнять функцию трансляции сетевых адресов (NAT) .
В итоге получилось, что теперь вообще ни при каком раскладе одновременно не работает доступ в интернет и RemoteDesktop на клиентском компьютере удалённого рабочего стола .
Хотя раньше этого можно было добиться, если снять и повторно включить галку общего доступа в свойствах расшаренного интерфейса ( WiFi).
Подскажите пожалуйста в чём проблема
Попробуйте для Ethernet интерфейса задать статический IP адрес. Это возможно?
Ну во первых когда расшариваешь другой интерфейс, в моём случае WiFi, то на другом, в моём случае Ethernet ip конфигурация и так автоматом становится статическая такого вида: 192.168.137.1 с маской 255.255.255.0.
Ну и во вторых, если после автоматического частного адреса 169.254.167.175 на Ethernet интерфейсе, который автоматом становится после снятия галочки общедоступности на интерфейсе WiFi , после перезагрузки на интерфейсе Ethernet автоматом становится опять конфигурация статическая такого вида: 192.168.137.1 с маской 255.255.255.0.
Таким образом возможно пользоваться что с частным адресом, что и с 192.168.137.1 через RemoteDesktop как бы на шлюзовом компе с клиентского компа, но на самом клиентском прямого пинга в инет не будет.
А если опять расшарить на щлюзе WiFi, то на клиентском появится прямой пинг в инет и пинг на шлюз будет естественно, но возможность пользоваться RemoteDesktop c клиентского на шлюз пропадёт.
Вот такая альтернативная байда.
Либо так, либо этак. Но одновремено не в какую теперь, причём даже после удаления ключа реестра EnableRebootPersistConnection не удаётся вернуть в исходное состояние, когда можно было раньше после перезагрузки шлюза снимая и ставя галочку расшаривания на WiFi интерфейсе добиться одновременного использования на клиентском компе и доступа в инет и по RemoteDesktop заходить на шлюз
У меня проблема такая. Когда ставлю галочку общего доступа к инету, то на компе, который раздаёт инет, этот инет перестаёт работать, хотя сайты пингуются. На другом компе, который подключается через первый, инет есть. Не могу понять в чем проблема?
Странно.. тут нужна диагностическая информация командами:
nslookup site.ru
ping site.ru
tracert site.ru
может что видно будет
Проблему решил удалив обновление KB5014699.