Как сделать мой веб-сервер Raspberry Pi общедоступным?


8

Итак, я наконец запустил веб-сервер, за исключением того, что он доступен только для моей локальной сети, и я хотел бы сделать его общедоступным. У меня D-Link DIR-615 в качестве маршрутизатора, IP-адрес моего Pi 192.168.0.14, и моя публичная информация об IP выглядит следующим образом:

IP Information: xx.xx.xx.xx
ISP:    Xplornet Communications
Organization:   Xplornet Communications
Connection: Broadband
Services:   None Detected
City:   Sherwood Park
Region: Alberta
Country:    Canada

Все звучит хорошо, за исключением того, что я не живу в Шервудском парке, до меня около 2 часов.

Что мне нужно сделать, чтобы сделать мой сервер общедоступным?

Мой маршрутизатор поддерживает переадресацию портов, виртуальный сервер и DMZ. Я использую сервер Apache HTTP.

Спасибо, но это все еще не решает мою проблему; Я просто хочу подключиться извне, может быть, однажды, тогда я разберусь с DDNS и тому подобным, но пока он не подключится ни к чему, когда я введу свой IP-адрес Xplornet.

Ответы:


13

Перенаправьте порт 80 с вашего маршрутизатора на Pi, и, если вы хотите использовать SSH извне, порт 22 также. Имейте в виду, что с помощью SSH извне любой, кто может войти, может затем использовать ssh или получить доступ к другим устройствам в вашей сети.

После настройки, если ваш IP-адрес практически не изменился, вы можете использовать что-то вроде Cloudflare, чтобы указать на него домен. Если он меняется ежедневно, вам понадобится такой сервис, как DynDNS.


Итак, я настроил свой маршрутизатор на переадресацию порта 80 на порт 80 с IP-адресом моего Raspberry Pi или любым другим, но он все еще просто «истекает» каждый раз, когда я набираю свой внешний IP-адрес
— Джим Джонс

Попробуйте получить к нему доступ и указать порт 80, например, xx.xx.xx.xx: 80
— Джордж Пирс,

@Spencer: Вы не можете надежно проверить переадресацию портов из вашей сети, так как не все маршрутизаторы поддерживают «закрепление». Попробуйте проверить это за пределами вашей локальной сети. Например, используйте мобильный телефон с отключенным Wi-Fi и используйте сотовые данные (3G, HCSD и т. Д.) Для подключения не по локальной сети.
— RedGrittyBrick

@SpencerKillen Вы тестируете снаружи? Многие устройства не будут использовать NAT для вас, если вы сидите в той же локальной сети, что и ваш Raspberry Pi, и получаете доступ к общедоступному IP-адресу вашего маршрутизатора. Если вы можете получить доступ к веб-серверу по адресу 192.168.0.14 из вашей локальной сети, RPI или Apache не виноваты, но переадресация портов не выполнена правильно, или на вашем маршрутизаторе тоже есть брандмауэр.
— №

Если переадресация портов слишком громоздка или вообще не подходит (например, если вы находитесь за мобильным маршрутизатором), вы можете попробовать ретрансляцию, такую ​​как PageKite или Yaler.net (Раскрытие информации: я основатель Yaler)
— tamberg

3

Есть несколько вещей, которые нужно иметь в виду.

Во-первых, даже если у вас правильно настроена переадресация портов на вашем маршрутизаторе, вы не сможете подключиться к общедоступному IP-адресу из дома, потому что некоторые маршрутизаторы только перенаправляют соединения, исходящие «снаружи», а не «изнутри». Другая распространенная проблема - некоторые интернет-провайдеры не хотят, чтобы их пользователи запускали публичные серверы и блокировали общие входящие порты, такие как порт 80 или 25.

Я не знаю, применимо ли это в вашем случае, но они могут. Кроме того, я бы сказал, что вы на правильном пути, настройка маршрутизатора и динамическое решение DNS являются наиболее эффективным способом сделать это, если оно работает для вас.

Однако, если это не работает по какой-то причине, я создал решение под названием PageKite ( http://pagekite.net/) чтобы сделать серверы общедоступными из-за строгих брандмауэров или с устройств, которые часто меняют местоположение. Он работает путем создания туннеля от вашего Raspberry Pi до «переднего» сервера ретрансляции, который перенаправляет ваши входящие запросы и отвечает через туннель. Таким образом, каждый раз, когда ваш Pi имеет работающее подключение к Интернету и может подключиться к реле, ваш сервер будет виден (не требуются настройки маршрутизатора или ddns). Это бесплатное программное обеспечение, но если люди используют наш онлайн-сервис для подключения (вместо того, чтобы где-то запускать собственное реле), мы просим людей заплатить немного за эту привилегию. Это похоже на localtunnel, который упоминался в другом месте, за исключением того, что PageKite был разработан с учетом надежности и постоянных соединений, а не только для временного тестирования.

Удачи!


Я должен упомянуть, что в целях использования PageKite с Raspberry Pi лучше всего следовать инструкциям для Debian, здесь: pagekite.net/wiki/Howto/GNULinux/ConfigureYourSystem
— Бьярни Рунар

0

Вам понадобится такая услуга, как DynDNSили получите статический IP. В противном случае вы могли бы рассмотреть VPN.


0

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

Довольно простым решением является использование LocalTunnel , который сделает ваш веб-сервер доступным через доменное имя, такое как:

http://8bv2.localtunnel.com

Это очень полезно для обмена информацией о прогрессе веб-сайта, который вы размещаете на своем компьютере.


0

Мое решение для нескольких систем под динамическим ip следующее:

У меня на маршрутизаторе есть домен от godaddy Entrydns 1 cron, который загружает мой ip-адрес в entrydns с токеном (токен, предоставленный entrydns). И мой DNS-сервер под моим доменом Godaddy установлен на entrydns. Ох, и не забудьте перенести :)

Если вам нужно, я могу дать вам более подробное пошаговое руководство, но я надеюсь, что вы можете понять этот простой процесс через Google :)


1
может быть лучше предоставить более подробное пошаговое руководство, особенно если оно помогает другим с подобными проблемами. Я понимаю, что поиск в Google поможет, но я думаю, что на каждый вопрос можно ответить с помощью Google!
— Колин
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.