В OS X сетевыми интерфейсами управляет configd на основе конфигураций, определенных в /Library /Preferences /SystemConfiguration /*. Если вы измените "живые" настройки с помощью ipconfig
и т.д., Они не будут отображаться в Системных настройках, и configd, скорее всего, перезапишет их обратно на то, что, по его мнению, должно быть в настройках. Таким образом, вместо того, чтобы изменять живой конфиг, вы должны изменить системные настройки и позволить configd применить изменения. Самый простой способ сделать это с помощью команды networksetup
:
networksetup -setmanual "Ethernet" 192.168.110.1 255.255.0.0 192.168.110.1
Обратите внимание, что вам нужно указать интерфейс для настройки по имени его службы (одна из системных настроек показывает "Ethernet" в моем примере), а не по имени устройства unix (например, "en0"). Кроме того, networksetup
, похоже, не понимает нотацию CIDR ("/16"), поэтому вам нужно указать полную маску подсети.