2

Я хочу изменить свой IP-адрес с терминала в Mac. Поэтому я использовал следующие команды.

ifconfig en1 192.168.110.1/16
route add default 192.168.110.1

если я изменю IP здесь. Это отражается в терминале, но изменение не отражается в графическом интерфейсе. В результате чего я даже не могу пинговать шлюз.

Есть ли другой способ изменить IP-адрес через терминал?

2 ответа2

7

В 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"), поэтому вам нужно указать полную маску подсети.

3
sudo ifconfig en1 inet <desired IP address>

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .