Во-первых, я хочу сказать, что я, вероятно, прочитал все, что есть в интернете относительно проблемы.
И проблема в том, что я не могу получить доступ к своему собственному облаку через doc.selfhost.eu, если я нахожусь в той же сети. Но я могу получить к нему доступ изнутри сети через внутренний IP-адрес (192.168.2.200) и извне сети через doc.selfhost.eu.
Моя установка: домашний сервер под управлением Linux Mint 17.2 Cinnamon, который должен быть предназначен для мультимедиа и для запуска owncloud.
Сервер подключен к Speedport 723v, который не поддерживает NAT Loopback. Порты 80 и 443 пересылаются, и для динамического DNS у меня есть учетная запись на selfhost.de, которую я ввел в настройках маршрутизатора.
На моей машине с Windows 7 (с которой я пытаюсь получить доступ к серверу) я ввел 192.168.2.200 (внутренний IP-адрес сервера) как DNS.
В Mint я отключил сетевой менеджер (фактически я его удалил) и теперь я использую интерфейсы.
Не было бы решения изменить файлы хостов всех клиентов (на некорневых андроидах это даже невозможно).
Вопрос:
- Что мне нужно изменить, чтобы получить доступ к своему собственному облаку из внутренней сети через внешний IP?
/ и т.д. / сеть / интерфейсы
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.2.200
netmask 255.255.255.0
gateway 192.168.2.1
dns-nameservers doc.selfhost.eu 8.8.8.8
/etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.0.1
В /etc/dnsmasq.conf это единственное, что я добавил:
listen-address=127.0.0.1
listen-address=192.168.2.200
address=/doc.selfhost.eu/192.168.2.200
/etc/dnsmasq.d/doc.selfhost.eu (читайте где-нибудь, чтобы создать это)
address=/doc.selfhost.eu/192.168.2.200
/ и т.д. / хосты
127.0.0.1 localhost
127.0.1.1 doc-desktop
192.168.2.200 doc.selfhost.eu
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Настройки собственного облака в /var/www/owncloud/config/config.php
'trusted_domains' =>
array (
0 => '192.168.2.200',
1 => 'doc.selfhost.eu',
);
Конфигурация Apache В /etc/apache2/apache2.conf все довольно стандартно. Я только добавил:
ServerName doc-desktop
/etc/apache2/sites-enabled/owncloud.conf . Никаких изменений на сайтах нет, ссылок нет.
<VirtualHost 192.168.2.200:80>
#### Redirect to port 443 ###
RewriteEngine on
ReWriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]
#### End of Redirection configuration ###
DocumentRoot /var/www/owncloud/
<Directory /var/www/owncloud>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
<VirtualHost 192.168.2.200:443>
####Configuration for SSL #####
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
#### End of SSL Configuration ####
Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"
DocumentRoot /var/www/owncloud/
<Directory /var/www/owncloud>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
В случае, если это подходит. с сервера:
dig doc.selfhost.eu
; <<>> DiG 9.9.5-3ubuntu0.5-Ubuntu <<>> doc.selfhost.eu
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49046
;; flags: qr aa rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;doc.selfhost.eu. IN A
;; ANSWER SECTION:
doc.selfhost.eu. 0 IN A 192.168.2.200
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Oct 26 02:35:15 CET 2015
;; MSG SIZE rcvd: 54
Из клиента внутри сети (с Cygwin):
dig doc.selfhost.eu
; <<>> DiG 9.10.3 <<>> doc.selfhost.eu
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29482
;; flags: qr aa rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;doc.selfhost.eu. IN A
;; ANSWER SECTION:
doc.selfhost.eu. 0 IN A 192.168.2.200
;; Query time: 31 msec
;; SERVER: 192.168.2.200#53(192.168.2.200)
;; WHEN: Mon Oct 26 02:37:32 2015
;; MSG SIZE rcvd: 54
Я надеюсь, что это все. Благодарю.
Этот вопрос возник отсюда, поскольку он был не по теме:
https://stackoverflow.com/questions/33337258/running-dns-server-to-circumvent-nat-loopback-issue
doc.selfost.eu
и разрешает его по IP. Другие получаютothername.selfhost.eu
. Я не имею никакого влияния на именование, кромеdoc
. Важно не то, чтобы я мог получить доступ к своему серверу с помощью чего-то удобочитаемого человеком, но мне нужен доступ к серверу из любого места с одним доменом. Мне все равно, если это IP или строка. Я не хочу менять адрес в клиенте owncloud каждый раз, когда я вхожу в систему. Я посмотрю, как далеко я уйду с вашими советами. Благодарю.Я боролся с этой проблемой в течение последнего месяца с момента покупки нового маршрутизатора Linksys WRT1200AC за 180 долларов. У меня также есть динамическая учетная запись IP, которая позволяет мне получать доступ к моей домашней сети с дороги. Я сделал кучу исследований, как и вы. Но сделать что-то простое, например, убедиться, что мои сайты в сети, теперь невозможно. Я даже создал прокси-сервер Python в облаке Google, чтобы я мог видеть эти сайты; однако в конце концов он перестал работать по неизвестной причине.
Моя среда - Windows, но проблема идентична. Мой искренний совет - просто купить новый маршрутизатор и избавить себя от многих разочарований и страданий. Сейчас я покупаю один, но оказалось, что найти новый маршрутизатор, поддерживающий петлю NAT, очень сложно. Я не нашел способ обойти эту проблему иначе. Удачи.
источник
Я не слишком уверен, чтобы понять все аспекты этого, и я попал сюда случайно. Для моей собственной инфраструктуры я решил это, используя правила iptables для перенаправления внутренних запросов на внутренние серверы, но я использую Linux-машину в качестве брандмауэра. В любом случае полезно прочитать эту ссылку: Доступ к серверу DNAT из локальной сети с использованием публичного IP-адреса
источник