20

Мой компьютер находится за маршрутизатором NAT, который имеет публичный IP-адрес. Если я хочу разместить веб-сайт, то я считаю, что мне нужно доменное имя, которое я могу купить на каком-то сайте, который обещал бы разрешить все DNS-запросы для этого доменного имени и отправить IP-адрес моего маршрутизатора NAT (при условии, что я не хочу разместить мое доменное имя на своих серверах). Теперь я хочу разместить веб-сервер на моем компьютере.

  1. Какие изменения необходимо внести в конфигурацию маршрутизатора NAT для пересылки всех запросов HTTP для example.com на мой компьютер во внутренней сети.
  2. Правильна ли вышеуказанная стратегия?
  3. Это обычно используется?

9 ответов9

11

Возможно разместить сервер за NAT, как вы описываете.
Посмотрите эту справочную страницу Ubuntu на ServersBehindNAT для ознакомления с основами.

Еще несколько ссылок,

  1. Хостинг сервера Apache за NAT
  2. Настройка сервера за NAT
    это использует маршрутизатор серии NAT Buffalo AirStation и примеры маршрутизаторов Linksys
  3. Windows XP метод подключения к Интернету . если у вас Windows-машина, выполняющая NAT
  4. [Если вы используете XP, вы также можете использовать IIS 6 5 (поддержка 1 виртуального хоста), перейдя в Панель управления> Установка и удаление программ> Добавить компонент Windows> Информационные службы Интернета.

Это предполагает, что вы знаете, как разместить веб-сервер, и вам нужны идеи по NAT.

4

Вы можете настроить туннель I2P.

Если вам нужен только TCP, вы можете настроить скрытый сервис Tor.

Если вам нужно только разместить статические веб-страницы, вы можете настроить сайт ZeroNet.

Все они не требуют переадресации портов.

1

После проверки всех этих ответов и связанных с ними практических рекомендаций я понял, что все они включают сложные настройки с большими программами (которые частично созданы для других целей), файлы конфигурации и прочее, поэтому я решил написать свое собственное решение.

https://github.com/rofl0r/nat-tunnel

Это 250-строчный Python-скрипт, который вы можете запустить прямо из Git Checkout.

Пример: у вас есть HTTP-сервер, прослушивающий ваш локальный компьютер через порт 80. Вы хотите сделать его доступным на общедоступном IP-адресе вашего облачного сервера /VPS /etc через порт 7000. Мы используем порт 8000 на облачном сервере для канала управления.

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

Сервер:

natsrv.py --mode server --secret s3cretP4ss --public 0.0.0.0:7000 --admin 0.0.0.0:8000

Клиент:

natsrv.py --mode client --secret s3cretP4ss --local localhost:80 --admin example.com:8000
1
  1. Проверьте portforward.com. У них есть подробные инструкции для такого рода вещей, основная идея в том, что вам нужно настроить маршрутизатор так, чтобы он перенаправлял TCP-запросы через порт 80 на IP-адрес вашего компьютера. Это поднимает еще одну вещь: вам нужно настроить компьютер на статический IP-адрес. Если на вашем маршрутизаторе запущен DHCP-сервер (что имеет место в 97% случаев), убедитесь, что он назначен намного выше или ниже его. Google для "статического IP-адреса локальной сети", вероятно, выведет инструкции о том, как настроить это на различных ОС.
  2. Это будет работать при условии, что ваш провайдер не блокирует входящие соединения через порт 80; некоторые делают это по соображениям безопасности.
  3. Может быть. Это то, что я сейчас делаю с ftp, http, ssh, vnc, xmpp и некоторыми другими вещами ...

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

1

Другой альтернативой может быть что-то вроде homelinux, где ваш динамический IP-адрес может быть сопоставлен с statix .homelinux. URL

Есть и другие варианты, кроме "homelinux"

http://www.dyndns.com/

0

1.) Вам нужно перенести порт 80 на ваш внутренний IP-адрес на порт 80

2.) Возможно. Если у вас есть статический ip от вашего интернет-провайдера, вы полностью настроены на эту стратегию. Если у вас нет статического ip, вам, вероятно, потребуется использовать Dynamic Dns, где вы запускаете часть программного обеспечения на сервере, и он постоянно обновляет IP-адрес вашего доменного имени, который обычно они назначают. Однако вы можете настроить запись CNAME в своем домене, указывающую на запись от провайдера динамического DNS.

3.) Я лично не сказал бы, что это распространено, но это также не редкость.

0
  1. TCP-трафик переадресации порта к вашему маршрутизатору через порт 80 к вашему компьютеру на port_whwhat_you_are_running_your_webserver

  2. вам не нужно доменное имя, чтобы другие могли получить доступ к вашему веб-серверу, публичного ip достаточно. доменное имя для вашего публичного ip просто удобнее. в противном случае ваш план выглядит хорошо.

  3. ваш маршрутизатор - это просто "межсетевой экран" между публикой и вашим сервером. такая установка довольно распространена.

0

Попробуйте разместить свой статический сайт на IPFS

или динамический сайт на I2P

-2

Ваша стратегия довольно часто используется, и если вы купили общедоступный IP-адрес, значит, вы довольно хороши.

Вы должны получить XAMPP. XAMMP предварительно настроен, и Apache будет использовать порт 80 по умолчанию. Убедитесь, что на порте 80 не запущен другой процесс, иначе Apache не запустится. Как правило, Skype (если вы используете скайп, который играет) играет в испорченный спорт и порт 80 свиней, вам нужно отключить его в настройках вашего соединения.

Он содержит Apache, PHP и Mysql, который позаботится обо всех ваших потребностях. Только не забудьте хорошо это закрепить.

Просто имейте в виду, что XAMPP не является производственным программным обеспечением, но оно должно удовлетворить ваши потребности в размещении личного веб-сайта / блога.

Еще одна вещь: если вы хотите, чтобы этот веб-сайт работал круглосуточно и без выходных, вам бы приходилось постоянно поддерживать работу компьютера.

Если вам нужен бесплатный домен, вы можете получить co.cc для личного использования, и они обновляют его каждый год

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