Внешние решения
Что мне нужно изменить, чтобы получить доступ к своему собственному облаку из внутренней сети через внешний IP?
К сожалению, никогда лично не сталкиваясь с домашним маршрутизатором, который не поддерживает NAT Loopback (также известный как шпилька ), я не могу дать конкретный ответ о том, как получить к нему доступ с помощью чего-либо внешнего .
Другие решения
Возможно, вы захотите заглянуть дальше в DNS Split-horizon или использовать PFSense NAT Reflection, как предложено в этом вопросе суперпользователя .
Вы также можете посмотреть этот список поддерживаемых маршрутизаторов NAT Loopback на OpenSimulator.org, если решите купить новый.
Также может быть возможно перейти на пользовательскую прошивку, например, Tomato или DD-WRT, но я бы тщательно изучил этот процесс, прежде чем пытаться что-либо предпринять.
DNS-решение
Предполагая, что ваша цель не сложнее, чем доступ к вашему медиасерверу из внутренней сети с понятным для человека доменом, и вы готовы настроить DNS BIND, вы можете попытаться сделать псевдодомен доступным и для вашей сети.
Этот псевдодомен потенциально позволит вам получить доступ к вашему локальному серверу во server.own
внутренней сети. Этот поддельный домен верхнего уровня (TLD) ex . .own
по сути может быть все, что вы хотите.
Я подозреваю, что это должно работать даже с проблемой обратной петли NAT.
Использование псевдо-домена
Самым простым способом является наличие одного компьютера в сети, обеспечивающего DNS. Самые большие потенциальные недостатки этого соглашения:
Скорее всего, вам нужно убедиться, что ваш маршрутизатор указывает на сервер, на котором работает BIND.
Компьютер, служащий вашим DNS-сервером, должен быть включен, чтобы это (и ваше сетевое соединение) работали.
Кроме того, хотя это, вероятно, менее важно в этом случае, запуск службы BIND, обеспечивающей доступ как к внутренним, так и к внешним сетям, может быть несколько рискованным. Как правило, вы не должны имитировать общедоступный домен верхнего уровня, например, .eu
если вы не знаете, что делаете. Если вы хотите сохранить doc.selfhost
префикс, а не что-то еще, это нормально, но вы должны выбрать другое неиспользуемое расширение (например doc.selfhost.own
).
Apache и Owncloud
После включения вам нужно будет настроить Apache (ваш псевдодомен, скорее всего, будет VirtualHost) и Owncloud, чтобы правильно отвечать на запросы и обслуживать соответствующий контент (например, Owncloud).
Рабочие примеры
Ниже приведены некоторые рабочие примеры настройки основных файлов в BIND для предоставления служб псевдодомена.
Обратите внимание, что я не покрываю все, что вам может понадобиться, чтобы заставить работать сам BIND, поэтому могут быть некоторые дополнительные шаги, явно не упомянутые здесь. Также обратите внимание, что эти примеры технически для последних версий BIND 9 для Windows (BIND 9.10+).
Фактическое содержимое db.rev.10.txt и db.example.own.txt не должно нуждаться в модификации между Windows и * nix. Большим препятствием является то, что записи named.conf появляются в нужных файлах на платформах, отличных от Windows, и что db.rev.10.txt и db.example.own.txt появляются в правильных каталогах * nix.
Справочник по Ubuntu: семь простых шагов по настройке встроенного DNS-сервера в Ubuntu
Обратите внимание, что при использовании дистрибутивов на основе Redhat между ними и Debian / Ubuntu / Mint есть небольшие различия.
Предполагая, что у вас все в порядке, вот основные рабочие примеры. По сути, это конфигурация кэширования DNS, если она имеет значение.
Настройте BIND и работайте. Я буду ждать. знак равно
named.conf - Изменить named.conf. (примерно), как указано ниже. В Windows все записи находятся в «named.conf» (находится в каталоге «etc» BIND). На современном * nix эти записи часто разбиты на несколько файлов. Также убедитесь, что включили все соответствующие записи "rndc-key" и "control" по мере необходимости.
ех. named.conf
# Our basic options -- where do we find our zone files, etc.? # On *nix, options likely need to go in "named.conf.options" options { directory "Path\to\zones"; # On *nix it's / not \ of course allow-transfer { none; }; # disable zone transfers by default # We restrict access to recursion to avoid security issues, etc. # You can change IPs as required. #allow-recursion ; # "localnets" is a special ACL in BIND allow-recursion {"localnets";}; # We are using named.root, so forwarders are disabled. # forwarders { 8.8.8.8; 8.8.4.4; }; }; # Current versions of named.root/db.cache -- ftp://ftp.internic.net/domain/ # *nix likely uses named.root (Redhat/Fedora) or db.cache (Deb/Ubu/Mint) # This file does need periodic updating (perhaps twice a year) zone "." { type hint; file "named.root"; # On Windows, place in your BIND "zone" directory }; # Local domain where "example.own" is whatever domain you want # On *nix, these zone definitions likely need to go in "named.conf.local" zone "example.own" IN { type master; file "db.example.own.txt"; # On Windows, place in your BIND "zone" directory allow-transfer { none; }; }; # Local loopback interface so our local domains work # The digits are the local lan prefix in reverse # Note that /16 subnets use only two digits e.g. 128.10 for 10.128.xxx.xxx zone "0.0.10.in-addr.arpa" IN { type master; file "db.rev.10.txt"; # On Windows, place in your BIND "zone" directory allow-transfer { none; }; }; # ### Any "rndc-key" and "control" statements go here ### # End of named.conf
db.rev.10.txt - Наш обратный файл зоны. Добавьте записи PTR для каждого физического сервера, указанного в файле зоны пересылки (например, db.example.own.txt ). В этом примере мы предполагаем, что в качестве одного медиа-сервера
10.0.0.3
мы хотим позвонитьexample.own
.ех. db.rev.10.txt
; BIND reverse data file for a local loopback interface ; The domain used should be a listed 'zone' in named.conf $TTL 86400 ; Default TTL @ IN SOA example.own. admin.example.own. ( 2015071301 ; serial 10800 ; Refresh period 3600 ; Retry interval 604800 ; Expire time 86400 ) ; Negative caching TTL ; The number before PTR is the last octet of the IP address ; for the device to map (e.g. 10.0.0.3). For /16 subnets, ; this is the last two digits e.g. "8.9" for "128.10.in-addr.arpa" (10.128.9.8) IN NS ns1.example.own. IN NS ns2.example.own. 3 IN PTR example.own.
db.example.own.txt - файл зоны Forward. В этом примере мы предполагаем, что в качестве одного медиа-сервера
10.0.0.3
мы хотим позвонитьexample.own
. Конечно, вы также можете добавлять MX и CNAME. Если вы добавляете дополнительные серверы (например,media IN A 10.0.0.4
), добавьте соответствующую запись PTR также в свою обратную зону (например, db.rev.10.txt →4 IN PTR media.example.own
)ех. db.example.own.txt
; We are using our reverse DNS to provide name server services ; Enables use of http://(www).example.own on our local network $TTL 86400 ; Default TTL @ IN SOA ns1.example.own. admin.example.own. ( 2015071322 ; serial 10800 ; Refresh period 3600 ; Retry interval 604800 ; Expire time 86400 ) ; Negative caching TTL @ NS ns1.example.own. ns1 IN A 10.0.0.3 ; This entry is ABSOLUTELY NECESSARY - Use an IP ns2 IN A 10.0.0.3 ; Secondary Name Server Prefix/IP (Required 2nd Name Server - backup - IP or domain) example.own. IN A 10.0.0.3 ; A Record for the basic domain name www IN A 10.0.0.3 ; A Record for the www prefix
Шансы и Концы
Обязательно обновляйте серийный номер в прямой и обратной зонах каждый раз, когда вы вносите в них изменения.
Аналогично, убедитесь, что «перезагрузили» связывание после внесения ЛЮБЫХ изменений в ваши конфигурационные файлы BIND. Как правило, вы, вероятно, захотите скопировать любые оригиналы, прежде чем возиться.
При условии, что все настроено правильно, каждое работоспособное устройство (включая Android) в сети должно иметь доступ
example.own
без дополнительной настройки (например, как в обычной сети).Обратите внимание, что если вы используете Chrome, вам необходимо добавить косую черту в адресную строку (например
example.own/
), в противном случае вы можете быть перенаправлены на поиск Google. Это требование, вероятно, не будет изменено ни в каких будущих версиях .В то время как для более традиционных установок, эти две статьи для Ubuntu и Centos 7 (Redhat) иллюстрируют некоторые различия в настройке BIND между ними.