Чи можливо розмістити веб-сервер ззаду NAT


21

Мій ПК знаходиться за маршрутизатором NAT, який має загальнодоступну IP-адресу. Якщо я хочу розмістити веб-сайт, то я вважаю, що мені потрібно доменне ім’я, яке я можу придбати у якогось веб-сайту, який пообіцять вирішити всі запити DNS для цього доменного імені та надіслати IP-адресу мого NAT-маршрутизатора (припустимо, що я не хочу цього розмістити моє доменне ім’я на їх серверах). Тепер я хочу розмістити веб-сервер на своєму комп’ютері.

  1. Які зміни слід внести в конфігурацію NAT-маршрутизатора, щоб переслати всі HTTP-запити для example.com на мій ПК у внутрішній мережі.
  2. Правильна вищезгадана стратегія?
  3. Чи часто використовується?

Відповіді:


12

Як ви описуєте, можливо розмістити сервер за 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.



1

Інша альтернатива може бути чимось на зразок homelinux, де ваша динамічна IP-адреса може бути відображена в statix .homelinux. URL-адреса

Є й інші варіанти, крім "homelinux"

http://www.dyndns.com/


1
  1. Перевірте portforward.com . У них є детальні вказівки щодо подібних речей, основна ідея полягає в тому, що вам потрібно встановити маршрутизатор так, щоб направляти TCP-запити на порт 80 на IP-адресу комп'ютера. Це означає ще одну річ: вам потрібно буде налаштувати комп'ютер на статичну IP-адресу. Якщо на маршрутизаторі працює сервер DHCP (що трапляється в 97% випадків), обов'язково призначте його набагато вище або під ним. У Google для "статичної IP-адреси локальної мережі", ймовірно, з'являться інструкції, як налаштувати це на різних ОС.
  2. Він працюватиме за умови, що ваш Інтернет-провайдер не блокує вхідні з'єднання на порт 80; деякі роблять це з міркувань безпеки.
  3. Можливо. Це те, що я зараз роблю з ftp, http, ssh, vnc, xmpp та ще кількома речами ...

Також потрібно запустити веб-сервер на своєму комп’ютері. Просто отримайте Apache, він працює майже на що завгодно і саме це використовує більшість сайтів.


1

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

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

Це сценарій python на 250 рядків, який можна запустити безпосередньо з git checkout.

Приклад: у вас на сервері HTTP проходить прослуховування на локальній машині на порту 80. Ви хочете зробити його доступним на загальнодоступному IP-сервері хмарного сервера / VPS / тощо на порту 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

0
  1. перенаправляти TCP-трафік на ваш маршрутизатор на порт 80 до ПК на port_wever_you_are_running_your_webserver

  2. вам не потрібно доменне ім’я, щоб дозволити іншим отримати доступ до вашого веб-сервера, загальнодоступного ip достатньо. доменне ім’я для вашого загального ip просто зручніше. інакше ваш план виглядає нормально.

  3. ваш маршрутизатор - це просто «брандмауер» між загальнодоступним та вашим сервером. таке налаштування досить поширене.



0

1.) Вам потрібно переправити порт 80 до внутрішньої ip-адреси на порт 80

2.) Можливо. Якщо у вас є статичний ip від вашого провайдера, ви все налаштовані на цю стратегію. Якщо у вас немає статичного ip, вам, ймовірно, доведеться використовувати Dynamic Dns, саме там ви запускаєте програмне забезпечення на сервері, і він постійно оновлює IP-адресу вашого доменного імені, що зазвичай щось вони призначають. Однак ви можете встановити запис CNAME у своєму домені, вказуючи на той, який отримав постачальник динамічних dns.

3.) Я особисто не сказав, що це звичайне явище, але це теж не рідкість.


-2

Ваша стратегія досить часто використовується, і якщо ви купили публічний IP, то вам дуже зручно.

Ви повинні отримати XAMPP. XAMMP попередньо налаштований, і Apache буде використовувати порт 80 за замовчуванням. Переконайтеся, що жоден інший процес не працює на порт 80, інакше Apache не запуститься. Як правило, Skype (якщо ви використовуєте skype, який є) грає зіпсований спорт і порт свиней 80, вам потрібно відключити його з налаштувань з'єднань.

Він містить Apache, PHP та Mysql, він піклується про всі ваші потреби. Просто не забудьте добре закріпити це .

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

Ще одна річ, якщо ви хочете, щоб цей веб-сайт працював цілодобово, тоді вам доведеться тримати комп’ютер майже 24/7.

Якщо вам потрібен безкоштовний домен, ви можете отримати co.cc для особистого користування, і вони поновлюють його щороку

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.