Не удается получить доступ к сайту веб-сервера Ubuntu из внешней сети
Поэтому я установил веб-сервер LAMP в дистрибутиве сервера Ubuntu 14.04 и установил на нем owncloud и wordpress. Он подключен к сети через Ethernet, и, насколько я могу судить, связь хорошая (он может пинговать сайты и просто получать обновления). Пока я подключен к беспроводной сети от маршрутизатора, к которому подключен сервер (той же сети), я могу получить доступ к wordpress и owncloud очень хорошо. Однако проблема возникает, когда я пытаюсь получить к нему доступ из другого сетевого расположения (например, из моей квартиры). Время сеанса просто истекло.
Я проверил переадресацию портов (маршрутизатор ZyXEL PK5001Z-CenturyLink) для портов 80 и 443 в соответствии с инструкциями http://portforward.com/english/routers/port_forwarding/ZyXEL/PK5001Z-CenturyLink/Apache.htm. Я попытался пропинговать каждый из этих портов по IP-адресу сервера, но безуспешно.
Я довольно плохо знаком с программированием и сетями, так что это, вероятно, легко исправить, я просто не знаю, где искать. Любые предложения будут ценны. Информация для сервера и адресов приведена ниже. Заранее спасибо.
IP: 192.168.0.170
URL: fernweh.ddns.net "/ wordpress" или "/owncloud"
динамический ip, назначенный через noip.com
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ОБНОВЛЕНИЕ
Итак, я настроил noip2, как это было предложено, и все равно не повезло. Я также настроил переадресацию портов на пару более высоких портов (как и предлагалось), но все равно ничего.
Затем я проверил, какие порты были фактически открыты, используя
'nmap -v -sT local'
Который нашел 1000 портов, только 2 из которых не были отфильтрованы
'80/tcp http open
443/tcp https closed'
Нужно ли открывать больше портов, используя
'iptables -A INPUT -p tcp --dport "port number" -j INPUT'
Или это не имеет значения?
1 ответ
192.168.0.170 - это частный IP-адрес, который сервер использует в вашей частной локальной сети. Он может использоваться кем угодно и по этой причине никогда не направляется в Интернет. Чтобы получить доступ к Интернету, вы указали свой маршрутизатор в качестве шлюза по умолчанию. Вы уже знаете это, потому что вы включили переадресацию портов на маршрутизаторе.
Когда я пинг твой адрес DDNS fernweh.ddns.net
он разрешает ваш внутренний IP
$ ping fernweh.ddns.net
PING fernweh.ddns.net (192.168.0.170) 56(84) bytes of data.
Это не может работать по причинам, указанным выше.
Я полагаю, вы уже используете NoIP-клиент? Если да, перенастроить его
sudo /usr/local/bin/noip2 -C
Если нет, загрузите и установите его, как описано. Поскольку это не хороший стиль, чтобы дать ссылку и ничего больше:
Загрузите исходный архив, например, в свою домашнюю папку и распакуйте
cd ~/Downloads
wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz
tar xf noip-duc-linux.tar.gz
cd noip-2.1.9-1/
Переключиться на root: sudo -s
и установить
make install
Наконец, вам нужно либо запустить noip2
или сделайте его сервисом, чтобы он работал во время загрузки. (См. README.first
в исходной папке)
Он скомпилирует двоичные файлы и проведет вас через настройку.
Более того:
- Вы не можете пропинговать порт.
ping
работает путем отправки пакетов ICMP. В отличие от TCP/UDP, ICMP не имеет понятия порта. Вполне может быть, что ваш маршрутизатор и / или блок интернет-провайдера пингуются с вами. - Как @Zacharee1 и @Daniel уже упоминали в комментариях, вполне возможно, что ваш провайдер блокирует известные порты, такие как HTTP(S). Запустите ваш веб-сервер через высокий порт. Таким образом, вы также получаете очень слабую защиту от атак, поскольку для обнаружения работающего веб-сервера требуется полное сканирование портов. Обратите внимание, что это не является достаточной мерой безопасности! Поддерживайте актуальность ваших установок WordPress и OwnCloud.