自宅のRaspberryPiにnextcloudサーバーをセットアップしました。これは、wifiの外部からnoipdyn-dnsドメインを介してアクセスできます。ネットワークの内部からはドメインを使用できませんが、それは外部IPには解決されますが、ラズベリーの内部IPには解決されないためです。
このために、私の場合は両方とも機能しない2つのアプローチを見つけました。
1.)最も広く推奨されるアプローチは、ルーターでNATループバックをアクティブにすることです。ルーターがこれをサポートしておらず、購入を検討していないため、残念ながらこれは不可能です。このユースケースのためだけに新しいもの。
2.)ローカルDNSエントリを変更します。 Linuxを実行しているので、/ etc/hostsを変更して、ドメインを内部IPにマップできます。ホームネットワークにローカルで接続している場合は正常に機能しますが、外部から接続する場合は機能しません。これを回避する方法があるかもしれませんが、このアプローチのもう1つの大きな欠点は、Windows、iOS、Androidなどの複数のデバイスのローカルDNSエントリを編集する必要があることです。したがって、いくつかのローカルクライアントを変更する必要はないが、より集中的な方法で変更する方法を見つけたいと思います。
これを解決する他の方法はありますか?
ラズベリーにDNSサーバーを設置することで解決しました。
そのために私はしました:
ラズベリーに静的IPを設定する
Dnsmasqをインストールし、この記事に従って設定します: https://www.raspberrypi.org/forums/viewtopic.php?t=46154 提供されている/etc/dnsmasq.confファイルを使用しましたこの記事では、しかし以下を調整しました:
#the domain to be accesses from outside and inside
domain=mydomain.ddns.net
resolv-file=/etc/resolv.dnsmasq
min-port=4096
#Google's DNS Server:
server=8.8.8.8
# Max cache size dnsmasq can give us, and we want all of it!
cache-size=10000
# Below are settings for dhcp. Comment them out if you dont want
# dnsmasq to serve up dhcpd requests.
dhcp-range=192.168.0.101,192.168.0.149,255.255.255.0,1440m
dhcp-option=3,192.168.0.100
dhcp-authoritative
DHCPに関する行のコメントを外し、ラズベリーにアクセスできるようにしました。このコンテキストでDHCPとDNSがどのように関連しているかはよくわかりませんでしたが、このように機能しているため、これ以上調査しませんでした。
次の行をラズベリーの/ etc/hostsに追加して、ドメインがラズベリーの静的IPに向けて内部的に解決されるようにします。
192.168.0.100 mydomain.ddns.net
ラズベリーの静的IPをネットワーク設定のさまざまなクライアントのDNSサーバーとして設定します(私の場合、これはLinux、Windows、AndroidおよびiOS)で機能しました)。
[〜#〜]更新[〜#〜]:
ラズベリーのDHCP設定がルーターのDHCPに干渉しているため、/ etc/dnsmasq.confのDCHPに関する行をコメントアウトして、ラズベリーでDHCPを無効にしました。接続されたクライアントのDNSサーバーとしてラズベリーのIPを手動で追加する限り、それがなくても機能します。
UPDATE2:
これは、raspbian上のnextcloudのコンテキストでのDNSサーバーのインストールに関するすべての手順を詳細に説明した明示的なウォークスルーです: https://ownyourbits.com/2017/03/09/dnsmasq-as-dns-cache-server -for-nextcloudpi-and-raspbian /