Аналог ipconfig на mac os
Обновлено: 25.11.2024
Я хочу перенаправлять запросы с 192.168.99.100:80 на 127.0.0.1:8000 . Вот как я бы сделал это в Linux, используя iptables:
Как сделать то же самое в MacOS X? Я попробовал комбинацию команд ipfw без особого успеха:
@Zoredache Для прослушивания порта 80 требуется sudo, а некоторые веб-серверы не теряют привилегии достаточно быстро, чтобы безопасно запускать их с помощью sudo.
7 ответов 7
Поэтому я нашел способ сделать это. Я не уверен, что это предпочтительный способ, но он работает! В вашей любимой оболочке:
(Псевдоним lo0 кажется недостающей частью)
Если вы хотите, чтобы (поддельный) домен указывал на этот новый псевдоним, убедитесь, что /etc/hosts содержит строку:
В командной строке введите следующие две команды для переадресации соединений с 127.0.0.1:3000 на 10.0.0.1 :
Затем отредактируйте файл /etc/hosts или /private/etc/hosts и добавьте следующую строку, чтобы сопоставить свой домен с 10.0.0.1 .
После сохранения файла hosts очистите локальный DNS:
на новый, чтобы затем можно было сопоставить хост с этим IP-адресом.
Привет, sudo discoveryutil udnsflushcaches выдает мне, что команда не найдена, но она по-прежнему правильно соответствует записи. Но как я могу сопоставить второй порт? Я пытался сделать шаги 1+2 с id: 10.0.0.2 и другим портом, но всегда принимает только последнее соединение. Итак, если я делаю последний 10.0.0.1 и порт 3000, он пересылает 3000, если я делаю последний 10.0.0.2 и порт 4000, он пересылает 4000. В моем /private/etc/hosts я написал обе записи с (соответствующим) другим идентификатором.
Мне тоже недавно приходилось делать подобное, и в поисках наткнулся на этот ответ. К сожалению, в ответе Нафе используется ipfw, который сейчас устарел и недоступен в OSX; и ответ Кевина Лири действительно немного хакерский. Поэтому мне нужно было сделать что-то лучше (чище) и я решил поделиться этим здесь для потомков. Этот ответ во многом основан на подходе, упомянутом в этой сути.
Как упоминает OP, при указании браузера на 192.168.99.100 должен быть получен ответ от сервера по адресу localhost:8000. Добавлять псевдоним в ifconfig на самом деле не обязательно, достаточно одного pfctl: для этого необходимо изменить файл pf.conf в /etc/pf.conf.
Сначала мы создаем (с помощью sudo) новый файл привязки (назовем его перенаправлением) по адресу: /etc/pf.anchors/redirection. По сути, это обычный текстовый файл, содержащий следующую строку (прямо как в ответе Кевина Лири): rdr pass on lo0 inet proto tcp from any to 192.168.99.100 port = 80 -> 127.0.0.1 port 8000. После создания нового файла привязки на него необходимо сослаться в файле pf.conf. Откройте файл pf.conf с помощью sudo и добавьте «перенаправление» rdr-anchor после последней строки rdr-anchor (это rdr-anchor «com.apple/*» ) и добавьте «перенаправление» привязки загрузки из «/etc/pf». .anchors/redirection" в конце.
В конечном итоге файл pf.conf должен выглядеть так:
И это почти все. Просто перезапустите pfctl, введя sudo pfctl -d, чтобы сначала отключить его, а затем sudo pfctl -fe /etc/pf.conf, чтобы запустить его снова.
Теперь, если вам нужно, чтобы это происходило автоматически после каждой перезагрузки, необходимо выполнить еще одну небольшую работу: необходимо обновить демон запуска для pfctl (в приведенном описании упоминается, что pf включается автоматически при загрузке, однако это не Судя по коду, это не так). Откройте (с помощью sudo) System/Library/LaunchDaemons/com.apple.pfctl.plist и найдите это:
и добавьте строку -e, чтобы в итоге получилось вот так:
Это должно сработать.
Предостережение: Apple больше не разрешает изменять файлы демона запуска просто так (ни с помощью sudo, ни с помощью chmod, ни с чем-либо еще). Единственный способ — повозиться с настройками защиты целостности системы: загрузиться в режиме восстановления и запустить терминал. Проверьте статус SIP с помощью csrutil status, обычно он должен быть включен. Отключите его с помощью csrutil disabled и перезагрузитесь в обычном режиме, а затем внесите изменения в файл plist, как описано выше. Сделав это, вернитесь в режим восстановления и повторно включите защиту (она установлена по уважительной причине), выполнив команду csrutil enable .
Я знаю, что вы можете сделать ifconfig | grep inet , но это показывает вам несколько адресов IPv4. Как получить конкретную версию для SSH и др.?
Вы ищете не IP-адрес вашего Mac, а общедоступный IP-адрес, который ваш интернет-провайдер приписал интернет-интерфейсу вашего маршрутизатора.
Вы должны либо уточнить свой вопрос, т.е. вы хотите узнать внутренний IP-адрес в вашей локальной сети, либо изменить принятый ответ, потому что ни один из ответов не дает вам возможности получить внешний IP-адрес, но некоторые комментарии делают это. р>
@alturium, вы должны сделать это ответом, потому что это ЯВЛЯЕТСЯ ответом на вопрос.Просто добавьте команду для получения внутреннего IP-адреса.
9 ответов 9
Используйте ipconfig getifaddr en1 для беспроводной сети или ipconfig getifaddr en0 для Ethernet.
ipconfig getifaddr en0 используется по умолчанию для сетевого адаптера Wi-Fi.
В качестве альтернативы вы также можете сделать следующее:
Это показывает мой внутренний (по отношению к моему маршрутизатору) IP-адрес (например, 192.168.1.xxx), а не внешний IP-адрес. (Как и большинство других ответов ниже.)
Следующее работает для меня на 10.8 и 10.10 Yosemite.
Если вы обнаружите, что вышеприведенное дает вам более одного ответа, сохраните следующее в скрипте и вместо этого запустите его
ip_address.sh
По моему мнению, это должен быть принятый ответ, поскольку он не требует каких-либо спецификаций для проводных и беспроводных сетей.
Могу подтвердить, что это решение отлично работает. У меня есть несколько интерфейсов с действительными локальными IP-адресами, но это решение правильно возвращает IP-адрес для основного интерфейса (то есть интерфейса, используемого для маршрутизации трафика в более широкую сеть)
Просто введите curl ifconfig.me в терминале.
Я настроил это в точечном файле .aliases для частого поиска IP-адресов:
Для меня опция localip больше не работает, но работает: ifconfig | grep "инет" | grep -Fv 127.0.0.1 | awk '
Это лучший ответ: несмотря на то, что dig выходит за пределы вашего компьютера, это преобразователь доменных имен, что означает, что его основная функция заключается именно в сопоставлении доменного имени с IP-адресом. В данном случае это, конечно, ваш собственный IP-адрес.
Вы можете сделать следующее:
Введите ifconfig или ifconfig -a . Эта команда показывает вам список интерфейсов вместе с их IP- и MAC-адресами (последний только в случае необходимости). Вы также можете ввести ifconfig en0 или ifconfig en1 только для настройки определенного интерфейса (как кто-то сказал в своих ответах, en0 обычно представляет собой проводной Ethernet, а en1 — интерфейс WiFi).
В качестве альтернативы netstat -i выведет список всех интерфейсов и покажет вам IP-адреса, назначенные каждому из них.
Обычно, когда на компьютере запущен демон SSH, он прослушивает все доступные интерфейсы, т.е. вы можете использовать любой IP-адрес, настроенный на вашем компьютере, для подключения к этому компьютеру через SSH (это, очевидно, зависит от правил брандмауэра). Если вам нужно то, что ОС называет основным интерфейсом и основным IP-адресом, вы можете использовать команду scutil следующим образом:
Я регулярно вижу «рекомендации» по использованию ifconfig для получения информации об интерфейсе в сообщениях списка рассылки, отчетах об ошибках и других местах. Возможно, я даже сам виноват в этом. Тем не менее, мир сетей сильно изменился с тех пор, как ifconfig стал стандартом де-факто для вызова устройства, проверки его IP-адреса или установки IP-адреса.
После некоторых улучшений в ядре и постепенного перехода к управлению сетевыми вещами через netlink; ifconfig был в значительной степени заменен командой ip.
Запуск только ip дает следующее:
Я понимаю, что некоторым это может показаться сложным, но суть в том, чтобы понять, что с помощью ip вы взаимодействуете с объектами и применяете к ним какую-то функцию. Например:
Это основная команда, которая будет использоваться вместо ifconfig. Он просто отобразит IP-адреса, назначенные всем интерфейсам. Чтобы быть точным, он покажет вам подробности интерфейса уровня 3: адреса IPv4 и IPv6, работает ли он, каковы различные свойства, связанные с адресами…
Другая команда предоставит вам подробную информацию о свойствах интерфейса уровня 2: его MAC-адрес (адрес Ethernet) и т. д.; даже если он отображается по IP-адресу:
Кроме того, вы можете активировать или деактивировать устройства (аналогично ifconfig eth0 up или ifconfig eth0 down), просто используя:
Как показано выше, существует множество других объектов, с которыми можно взаимодействовать с помощью команды ip. Я расскажу о другом: ip route в другом посте.
Почему это важно?
Со временем все больше и больше функций становится проще использовать с помощью команды ip вместо ifconfig. Мы уже прекратили установку ifconfig на настольные компьютеры (пока он все еще устанавливается на серверы), и люди уже некоторое время обсуждают удаление net-tools (пакета, поставляющего ifconfig и несколько других старых команд, которые заменены). Возможно, пришло время вернуться к тому, чтобы нигде не устанавливать net-tools по умолчанию.
Я хочу узнать о вашем мире
Вы все еще используете один из следующих инструментов?
/bin/netstat (заменен на ss, которому я полностью посвящу отдельный пост в блоге)
/sbin/ifconfig
/sbin/ipmaddr (заменен на ip maddress)
/ sbin/iptunnel
/sbin/mii-tool (ethtool должен заменить его соответствующим образом)
/sbin/nameif
/sbin/plipconfig
/sbin/rarp
/sbin /маршрут
/sbin/slattach
Если это так и просто нет альтернативы их использованию из iproute2 (ну, команды ip или ss), которые вы можете использовать для того же, я хочу знать, как вы их используете. Мы всегда следим за вещами, которые могут быть нарушены изменениями; мы хотим по возможности не ломать вещи.
Эта статья изначально была опубликована в блоге автора
Облако Ubuntu
Ubuntu предлагает все необходимое для обучения, программную инфраструктуру, инструменты, услуги и поддержку для общедоступных и частных облаков.
Эта версия ( 23 февраля 2021 г. 16:49 ) была одобрена Кристиной Сутеу. Доступна ранее утвержденная версия (29 июля 2020 г., 01:47).
Содержание
Убедитесь, что установлены следующие драйверы:
Драйверы и файлы должны быть совместимы с:
После установки HoRNDIS требуется перезагрузка.
Для более новых версий macOS (начиная с macOS Catalina 10.15 и выше) HoRNDIS больше не предоставляет официальную поддержку.
Серийный
Массовое хранение
Ethernet
Предупреждение об Ethernet
Как и большинство сетевых настроек на Pluto или M2k, они должны быть простыми в использовании. Это также означает, что вещи изначально небезопасны.
Например, корневой пароль Pluto - аналог . Выкладываем в интернет. Подумайте об этом на мгновение. Это может позволить любому, у кого есть IP-подключение, завладеть устройством и использовать его в злонамеренных целях.
Никогда не устанавливайте мост между Интернетом и сетью, подключенной к Плутону, с изображениями по умолчанию.
К сожалению, ничто на вашем хосте не понимает IP-адрес USB-устройства. Вы, человек за клавиатурой, должны понимать это, прежде чем сработает какая-либо сеть. Есть два основных способа сделать это:
После установки драйвера HoRNDIS вы должны увидеть что-то подобное при переходе в → Системные настройки → Сеть.
Возможно, вам придется перезагрузиться без подключенного PlutoSDR, а затем подключить PlutoSDR, чтобы HoRNDIS правильно загрузился
Чтобы проверить, в dmesg это должно выглядеть примерно так:
конфигурация ssh
Поскольку ключ ssh на pluto меняется при каждой загрузке, мы хотим иметь возможность никогда не сохранять ключ (поэтому мы храним его в /dev/null . Это упрощает его использование (не нужно постоянно редактировать файл known_hosts), но делает объекты уязвимыми для атак «человек посередине».
если у вас установлен sshpass, вы можете использовать его, чтобы не вводить пароль:
Инструменты страницы
Analog Devices использует файлы cookie для повышения эффективности работы в Интернете
Читайте также: