3

Данный компьютер имеет операционную систему Linux и подключен к локальной сети с активной службой DHCP. Я настроил публичный IP-адрес, который будет выдан этому компьютеру через DHCP, и я могу подключиться к нему по ssh, используя этот IP-адрес. Теперь начинается странная часть.

ifconfig возвращает адрес 169.254.xx. Я прочитал, что 169.254.xx предоставляется компьютеру, когда DHCP не может дать ему правильный адрес. Но он дал правильный адрес, я могу использовать ssh (используя общедоступный IP-адрес), а сайты http://www.whatsmyip.org/ говорят, что у компьютера есть общедоступный IP-адрес, который я настроил на DHCP.

Как это может быть возможно и какие детали я должен включить в этот пост?

Когда я попросил моего коллегу перезапустить его сеть

/etc/init.d/net.eth0 restart

это был его вывод:

 * Caching service dependencies  ...                [ ok ]
 * Unmounting network filesystems ...               [ ok ]
 * Bringing down interface eth0
 *   Stopping dhcpcd on eth0 ...                    [ ok ]
 * Bringing up interface eth0
 *   dhcp ...
 *     Running dhcpcd ...
control_open: Connection refused
eth0: adding address fe80::f85f:1ef7:db63:7475
eth0: waiting for carrier
eth0: carrier acquired
DUID 00:01:00:01:1b:ef:52:ea:dc:85:de:20:38:fa
eth0: IAID a9:04:2c:82
eth0: soliciting an IPv6 router
eth0: rebinding lease of 193.136.136.136
eth0: probing for an IPv4LL address
eth0: DHCP lease expired
eth0: soliciting a DHCP lease
eth0: using IPv4LL address 169.254.78.15
eth0: adding route to 169.254.0.0/16
forked to background, child pid 6332                [ ok ]
 *     received address 169.254.78.15/16            [ ok ]
* Mounting network filesystems ...

Вывод ifconfig выглядит следующим образом:

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 169.254.78.15  netmask 255.255.0.0  broadcast 169.254.255.255
        inet6 fe80::f85f:1ef7:db63:7475  prefixlen 64  scopeid 0x20<link>
        ether 48:85:a3:04:2d:81  txqueuelen 1000  (Ethernet)
        RX packets 113090  bytes 80195148 (76.4 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 39425  bytes 7462270 (7.1 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 2259  bytes 217008 (211.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2259  bytes 217008 (211.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether df:83:de:11:37:fb  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ip addr показывает оба IP-адреса, 169.xxx и 193.xxx До сих пор не выяснил, почему 169.xxx предоставляется DHCP-сервером.

2 ответа2

3

IP-адреса из диапазона 169.254.x.x указывают на то, что адрес не был получен из DHCP.

Из Википедии в диапазоне 169.254.x.x ;

В IPv4 локальные адреса канала кодируются в RFC 6890 и RFC 3927. Их утилита заключается в автоматической автоконфигурации сетевыми устройствами, когда службы DHCP (Dynamic Host Configuration Protocol) недоступны, а ручная настройка сетевым администратором нежелательна.

Блок 169.254.0.0/16 зарезервирован для этой цели, за исключением первой и последней /24 подсетей в диапазоне. Если хост в сети IEEE 802 (ethernet) не может получить сетевой адрес через DHCP, псевдослучайно может быть назначен адрес от 169.254.1.0 до 169.254.254.255. Стандарт предписывает, что устранение коллизий должно обрабатываться изящно.

Ваши IP-адреса перечислены в ifconfig а общедоступный (видимый снаружи) сайт идентифицируется по адресу http://www.whatsmyip.org/.

Очень типично, что внутренняя или локальная сеть находится в другом (и часто частном) диапазоне IP-адресов для внешней сети. Внешний IP-адрес может быть ограничен, а NAT используется для маршрутизации внешнего трафика на ваше внутреннее устройство / ПК.

3

Вы используете устаревшую команду ifconfig . Он показывает только один IPv4-адрес на интерфейс, хотя одному интерфейсу может быть назначено несколько адресов.

Попробуйте вместо этого команду ip :

user@host ~ $ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 brd 127.255.255.255 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet x.x.x.x peer x.x.x.x/32 scope global eth0
       valid_lft forever preferred_lft forever
    inet x.x.x.x/32 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 2a01:xxxx:xxxx:xxxx::4/128 scope global
       valid_lft forever preferred_lft forever
    inet6 2a01:xxxx:xxxx:xxxx::3/128 scope global
       valid_lft forever preferred_lft forever
    inet6 2a01:xxxx:xxxx:xxxx::2/128 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::xxxx:xxxx:xxxx:xxxx/64 scope link
       valid_lft forever preferred_lft forever

Вы также можете установить dhcpcd, чтобы не устанавливать адрес IPv4LL, см. Справочную страницу.

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