Не могу войти на мой локальный сервер

Я пытаюсь установить LAMP прямо сейчас.

В руководстве сказано, что если я установил Apache, я смогу продолжить http://local_server_IP. И есть две команды для его получения:

ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

когда я его запустил, он сказал, что у меня нет такого устройства, как eth0, я обнаружил, что мой интерфейс Ethernet назвал enp4s0 и побежал:

ip addr show enp4s0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

и ничего не возвращает. Вторая команда была:

curl http://icanhazip.com

она работает и возвращает 2a02:2168:858:8001:0:0:0:5, это неправильное значение, я не могу запустить сервер

http://2a02:2168:858:8001:0:0:0:5

Тогда я подумал, что мне нужен IPv4 , поэтому я нашел свой IPv4 с сайтом - 46.242.14.149, я проверил это:

http://46.242.14.149

Он «загружается» очень долго и не может найти страницу. Так что я был бы очень рад, если бы вы могли показать мне мою ошибку, спасибо за ваше время:)

ОБНОВЛЕНИЕ:
Такая странная вещь - сейчас curl http://icanhazip.com возвращает 46.242.14.75.

ip address вывод:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp4s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether 44:8a:5b:f0:42:e2 brd ff:ff:ff:ff:ff:ff
3: wlp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 40:e2:30:0d:ea:31 brd ff:ff:ff:ff:ff:ff
    inet 10.234.179.135/19 brd 10.234.191.255 scope global dynamic wlp5s0
       valid_lft 859sec preferred_lft 859sec
    inet6 fe80::54e6:9989:422c:98f6/64 scope link 
       valid_lft forever preferred_lft forever
4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether 02:42:d1:61:64:6e brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 scope global docker0
       valid_lft forever preferred_lft forever
5: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
6: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
    link/ether 52:54:00:93:96:3a brd ff:ff:ff:ff:ff:ff
0
задан 8 December 2017 в 10:02

1 ответ

Сначала проверьте, какие адреса на самом деле слушает веб-сервер. Выполните sudo netstat -an | grep :80:

$ netstat -an | grep :80
tcp6       0      0 :::80                   :::*                    LISTEN     

Здесь у меня есть веб-сервер, прослушивающий порт 80, исключительно на IPv6. Сервер, прослушивающий IPv4, будет иметь tcp вместо tcp6, и это будет 0.0.0.0:80 и 0.0.0.0:*, а не :::80 и :::*

0.0.0.0 - это магический адрес для каждого доступного интерфейса IPv4 , и :: это магический адрес для каждого доступного интерфейса IPv6.

По адресам ... вы, кажется, немного озадачены вашим IPv6-адресом: IP 2a02: 2168: 858: 8001: 0: 0: 0: 5 - ваш IPv6-адрес. Обычно адрес IPv6 является глобальным, в отличие от сетей IPv4, где вы обычно используете NAT для исходящего трафика, чтобы замаскировать свой локальный адрес. Но чтобы использовать его в браузере, необходимо заключить его в [], поэтому http: // [2a02: 2168: 858: 8001: 0: 0: 0: 5] следует сработает, если ваш веб-сервер настроен на прослушивание IPv6.

Чтобы разрешить внешний доступ по протоколу IPv6, вам, вероятно, потребуется разрешить порт 80 через брандмауэр в сетевом маршрутизаторе.

Что касается другого IP-адреса, который вы нашли, 46.242.14.149, это, вероятно, ваш внешний IPv4-адрес. Это относится не к вашему компьютеру, а к вашему роутеру. Чтобы получить доступ к вашему веб-сайту через это, вам нужно настроить перенаправление портов с вашего маршрутизатора на ваш компьютер. Прочтите руководство к вашему роутеру, чтобы узнать, как это сделать.

Чтобы показать, какой IP на самом деле имеет локальный интерфейс, проще всего использовать команду ip address. Вывод будет выглядеть следующим образом:

$ ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether bc:ae:c5:09:5f:15 brd ff:ff:ff:ff:ff:ff
    inet 10.0.1.55/24 brd 10.0.1.255 scope global enp2s0
       valid_lft forever preferred_lft forever
    inet6 2001:4661:7f30:0:beae:c5ff:fe09:5f15/64 scope global mngtmpaddr dynamic 
       valid_lft 86400sec preferred_lft 14400sec
    inet6 fe80::beae:c5ff:fe09:5f15/64 scope link 
       valid_lft forever preferred_lft forever

Как мы видим, здесь у меня есть один NIC, enp2s0, с адресом IPv4 (inet) и адресом IPv6 (inet6). Таким образом, http://10.0.1.55 должен работать в этом случае - но только в локальной сети.

Кроме того, у меня есть петлевой адаптер lo с IPv4 127.0.0.1 и IPv6 из :: 1. Фактически, у каждого компьютера, почти независимо от операционной системы, есть этот адрес обратной связи. Это всегда относится к локальному компьютеру. Таким образом, http://127.0.0.1 или http: // [:: 1] всегда будут подключаться к локальному веб-серверу через интерфейс обратной связи.

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

1
ответ дан 8 December 2017 в 10:02

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

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