Как я нахожу свой внутренний IP-адрес?

У меня есть сервер Ubuntu 12,04 установленных, таким образом, у меня нет GUI. Когда я делаю команду ifconfig, я не могу найти свой internl IP-адрес. Это говорит что inet addr: 127.0.0.1.

Вот вывод ifconfig -a:

eth0   link encap:Ethernet  HWaddr 00:06:4f:4a:66:f0
    BROADCAST MULTICAST  MTU:1500  Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

eth1   link encap:Ethernet  HWaddr 00:16:ec:05:c8:9c 
    BROADCAST MULTICAST  MTU:1500  Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

lo     Link encap:Local Loopback
    inet addr 127.0.0.1  Mask:255.0.0.0
    inet6 addr:  ::1/128 Scope:Host
    UP LOOPBACK RUNNING MTU:65536  Metric:1
    RX packets:1800 errors:0 dropped:0 overruns:0 frame:0
    Tx packets:1800 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:143896 (143.b KB)  TX bytes:143896 (143.8 KB)

вот содержание и т.д./объединять в сеть/соединять интерфейсом:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp

Если кто-то мог бы отредактировать это для меня, содержание и т.д./объединять в сеть/соединять интерфейсом должно быть на отдельных строках.

Вывод хоста askubuntu.com был:

;; connection timed out; no servers could be reached.

Я настроил owncloud и webmin несколько месяцев назад и использовал их в течение месяца без проблем. Я думаю, что питание ушло однажды 2 месяца назад, и я никогда не снова включал сервер до вчерашнего дня. Я не сделал ничего, что влияло бы на интернет-установку, Таким образом, я не уверен, почему она больше не работает. Насколько моя топология сети идет, у меня есть сетевая плата pci-e для ПК. Абонентская линия Ethernet идет с сетевой платы на переключатель, и затем к модему/маршрутизатору оттуда.

251
задан 6 June 2018 в 07:40

9 ответов

Эти команды сообщат вам всю сетевую информацию

ip add

или

ifconfig -a

Если, как вы это говорите дает только 127.0.0.1, тогда есть два варианта:

  1. Ваша сетевая карта не подключена или не распознается системой

  2. Ваш сетевой DHCP-сервер не работает или не подключен

237
ответ дан 22 November 2019 в 22:44

Вот что я сейчас рекомендую:

ip route get 8.8.8.8 | awk '{print $NF; exit}'

Преимущество этой команды в том, что вам не нужно знать, какой интерфейс вы используете (eth0? Eth1? Или, возможно, wlan0 ?), вам не нужно отфильтровывать адреса localhost, адреса Docker, туннели VPN и т. д., и вы всегда получите IP-адрес, который в настоящее время используется для подключений к Интернету в этот самый момент (важно когда, например, вы подключены как к Ethernet, так и к Wi-Fi или через VPN и т. д.).

Это будет проверять не только то, что у вас есть правильный IP-адрес, настроенный на каком-либо интерфейсе (например, при анализе вывода ifconfig ) но также что у вас настроена таблица маршрутизации для правильного использования.

Я нашел эту идею в этом ответе Автор Коллин Андерсон .

Я использую его в internalip скрипте в моей коллекции скриптов на GitHub , которую вы можете установить с помощью:

wget https://rawgit.com/rsp/scripts/master/internalip
chmod a+x internalip

и использовать как:

internalip

или:

internalip TARGET

, и вы получите свой IP-адрес, который будет использоваться для соединения с IP-адресом TARGET . Целью по умолчанию является 8.8.8.8 , который является общедоступным преобразователем DNS Google и хорошим вариантом по умолчанию для Интернета.

Но если вы запустите его с другим IP:

internalip 127.2.3.4

Тогда вы получите:

127.0.0.1

, потому что это ваш IP-адрес, который будет использоваться для соединения с 127.2.3.4 на интерфейсе обратной связи. Это полезно, когда ваша цель находится в LAN, VPN или другой специальной сети, и в этом случае для подключения может использоваться какой-либо другой IP-адрес, отличный от IP-адреса по умолчанию для выхода в Интернет.

Внешний IP-адрес

Для проверки вашего внешний IP-адрес (тот, который серверы в Интернете видят при подключении к ним - который может отличаться от внутреннего IP-адреса, описанного здесь) см. этот ответ .

190
ответ дан 22 November 2019 в 22:44
hostname -I

Это даст у вас просто IP-адрес без дополнительной информации.

301
ответ дан 22 November 2019 в 22:44

Я думаю, стоит упомянуть, что запуск ifconfig вместе с параметром -a отобразит все интерфейсы, есть ли у интерфейса IP-адрес или нет.

, запущенный только ifconfig, отобразит только интерфейсы с назначенными IP-адресами.

Вот хороший трюк, который можно использовать для отображения только IP-адресов с помощью Perl.

# ifconfig | perl -nle'/dr:(\S+)/ && print $1'
192.168.1.100
127.0.0.1

Ваша сетевая карта распознается системой, поэтому здесь отображаются eth0 и eth1

- это быстрый способ назначения IP вашему интерфейсу, используйте действующий IP / подсеть соответственно.

 ifconfig eth0 192.168.1.200/24 up 

, тогда нам нужно добавить маршрут по умолчанию

route add default gw 192.168.1.1

Best,

19
ответ дан 22 November 2019 в 22:44

Эта команда покажет все IP-адреса для одного устройства:

dev=eth0
ip addr show $dev | awk '/inet/ {print $2}' | cut -d/ -f1

Она напечатает одну или две строки вывода. Первый - это адрес inet / IPv4, а второй - inet6 / IPv6, если ваша система настроена на его поддержку.

8
ответ дан 22 November 2019 в 22:44

В случае, если команда ifconfig не отобразила IP-адрес, есть очень простой и простой способ узнать IP-адрес машины Ubuntu через графический интерфейс. Выполните следующие шаги:

Щелкните по иконке network icon в области уведомлений и нажмите Connection Information. В результате появится окно, содержащее некоторую информацию, включая IP-адрес. IP address information

7
ответ дан 22 November 2019 в 22:44

Здесь уже есть много хороших ответов, но я подумал, что могу указать на facter , который обычно, но не обязательно, используется с марионеткой для сбора различных фактов о системе. Основное преимущество facter заключается в том, что он дает хороший чистый результат, который избавляет вас от всех манипуляций с grep , sed , awk , cut , perl и т.д. Он не скажет вам, какой интерфейс вас интересует,но если вы это знаете, то следующее дает вам IP-адрес без какой-либо дополнительной очистки:

facter ipaddress_eth0 
1
ответ дан 22 November 2019 в 22:44

ip command

Вот вариант способа ip addr .

ip имеет параметр -o , который позволяет помещать всю информацию в одну строку - это полезно для синтаксического анализа с помощью таких инструментов, как awk или perl . В сочетании с опцией -4 мы будем видеть только адреса IPv4. Таким образом, вывод будет примерно таким (примечание - замените wlan7 на интерфейс, который вы хотите проверить):

$ ip -4 -o addr show wlan7
3: wlan7    inet 192.168.0.78/24 brd 192.168.0.255 scope global dynamic wlan7\       valid_lft 85654sec preferred_lft 85654sec

Как видите, IP-адрес - это 4-й столбец / слово в выводе. Остальное - это простое упражнение по синтаксическому анализу с помощью инструмента по вашему выбору. Здесь я использую python:

ip -4 -o addr show wlan7 | python -c "import sys;print sys.stdin.readlines()[0].split()[3]" 

То же самое, только здесь строка <<< и подстановка команд $ ()

python -c "import sys;print sys.stdin.readlines()[0].split()[3]"  <<< $(ip -4 -o addr show wlan7)

Лично я сохранил это как приятную функцию в my ~ / .bashrc , поэтому требуется меньше печатать.

wlan_ip() {
    ip -4 -o addr show wlan7 | python -c "import sys;print sys.stdin.readlines()[0].split()[3]" 
} 

Версии Perl и Ruby немного короче:

$ ip -4 -o addr show  wlan7 | perl -lane 'print $F[3]'                         
192.168.0.78/24

$ ip  -4 -o addr show wlan7 | ruby -n -e 'print $_.split()[3]'                 
192.168.0.78/24

Wireshark

Если вы знакомы с использованием инструментов сетевого анализа, вы, вероятно, знаете Чтобы получить свой IP-адрес, все, что вам нужно сделать, это очистить кеш браузера, запустить захват Wireshark на конкретном интерфейсе и найти передаваемые пакеты http GET . В столбце назначения будет указан ваш IP-адрес

1
ответ дан 22 November 2019 в 22:44

Выше много полезной информации. Я делаю это просто так:

# what your computer thinks its ip address is
function iplocal() {
  ip route get 8.8.8.8 | awk '{print $NF; exit}'    # 8.8.8.8 is google dns
}
# what the outside world thinks your ip address is
function ipexternal() {
  curl --silent http://checkip.amazonaws.com        # or:  http://ipinfo.io/ip
}
function ipinfo() {
  echo "local    IP  =>  $(iplocal)"
  echo "external IP  =>  $(ipexternal)"
}

Пример использования:

> ipinfo
local    IP  =>  192.168.1.139
external IP  =>  76.88.85.95
0
ответ дан 5 January 2021 в 23:11

Другие вопросы по тегам:

Похожие вопросы: