
これが私のセットアップです。Cisco ASA 5505 (最新の IOS) を持っています。その背後には、nginx、php-fpm、OwnCloud (すべて最新バージョン) を実行する (Ubuntu 12.04) サーバーがあります。デスクトップも ASA の背後にあり、OwnCloud に問題なくアクセスできます。Android タブレットをワイヤレス アクセス ポイントに接続し、OwnCloud Web インターフェイスにアクセスすると、すべて正常に動作します。
ASA に L2TP/IPSEC VPN を設定しました。デスクトップのイーサネットを切断し、電話に接続して VPN に接続できます。そこから、nginx サーバーに SSH で接続したり、他のデスクトップ マシンに VNC で接続したり、OwnCloud Web インターフェイスにアクセスしたりできます。すべてが完璧に動作します。
Android タブレットを VPN に接続できます (ホットスポット テザリング経由)。そこから、nginx サーバーに SSH で接続したり、デスクトップ マシンに VNC で接続したりできます。問題は、OwnCloud Web インターフェイスにアクセスしようとすると発生します。機能しません。ただ回転しているだけです。奇妙なことに、OwnCloud ディレクトリに test.php ファイル (単純な を使用echo('hello world');
) を作成すると、そのページは問題なく読み込まれます。
tcpdump を使用してサーバー上のトラフィックをキャプチャしたところ、GET 要求が着信しているのがわかりました。サーバーが応答します。その後、タブレットから重複した ACK がいくつか送信され、サーバーから再送信がいくつか送信されているのがわかります。
VPN クライアントには別のサブネット上の IP アドレスが割り当てられることに注意してください。
私の nginx 設定は次のとおりです:
upstream php-handler {
server 127.0.0.1:9000;
}
# redirect http to https
server {
listen 80;
server_name 10.3.3.3;
#return 301 https://$server_name$request_uri; # enforce https
root /var/www/owncloud/;
client_max_body_size 10G;
client_body_timeout 600s;
client_header_timeout 600s;
rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;
index index.php;
error_page 403 /core/templates/403.php;
error_page 404 /core/templates/404.php;
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
deny all;
}
location / {
# The following 2 rules are only needed with webfinger
rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;
rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;
try_files $uri $uri/ index.php;
}
location ~ ^(.+?\.php)(/.*)?$ {
try_files $1 = 404;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$1;
fastcgi_param PATH_INFO $2;
fastcgi_param HTTPS off;
fastcgi_pass php-handler;
}
# Optional: set long EXPIRES header on static assets
location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
expires 30d;
# Optional: Don't log access to assets
access_log off;
}
}
要約すると、すべてのデバイスはローカル LAN 上では正常に動作します。デスクトップ クライアント (OS X) は、VPN 経由で接続すると正常に動作します。VPN モバイル クライアント (Android タブレット) は、ローカル マシンに SSH および VNC で接続できます。HTTP 要求も、私の簡単なテスト ページで VPN に対して正常に動作しますが、OwnCloud にアクセスできません。問題をさらに診断するにはどうすればよいでしょうか? 問題は何ですか?
答え1
ローカル ネットワーク用の DNS レコードを備えた NAT ボックスが必要です。これにより、仮想ホストの操作がはるかに簡単になり、より詳細になり、ローカル ネットワークとリモート ネットワーク間の一貫性が向上します...
Owncloud 専用のドメイン名があるのは本当に便利です。非表示の Owncloud に同じドメイン名があるのは本当に便利です。また、VPN に接続すると、ルートがローカル サブネットへのアクセスを許可している限り、問題なく動作するはずです。
私のマシンや VM サイトはすべて、独自の DNS レコードと静的 IP を持っています。これは追加の手順ですが、整理するとはるかにプロフェッショナルになります。