Ubuntu 14.04 PCでOpenVPN(トンネル、ブリッジなし)サーバーとminidlnaサーバーを実行しています。それぞれが個別に機能します(VPNが機能するように、Samba共有に接続して参照でき、インターネットトラフィックはVPNを通過します。minidlnaサーバーはLANに接続されたクライアントで機能します)が、クライアント(Android)が3G経由でVPNに接続する場合/ 4G、minidlnaサーバーを認識できません。 /etc/minidlna.conf
ファイルnetwork_interface=eth0,tun0
のインターフェイス行を編集しましたが、うまくいきませんでした。これはブロードキャストと関係があり、iptables
ルールに追加する必要があるかもしれないとどこかで読みましたが、詳細はありませんでした。これを機能させるにはどうすればよいですか?
IPv4転送は/etc/sysctl.conf
で許可されており、 パブリックwifiで安全にWebを閲覧するためのこのOpenVPNガイド :に従ってiptablesに以下を追加しました。
Sudo iptables -I FORWARD -i tun0 -o eth0 -s 10.8.0.0/24 -m conntrack --ctstate NEW -j ACCEPT
Sudo iptables -I FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
Sudo iptables -t nat -I POSTROUTING -o eth0 -s 10.8.0.0/24 -j MASQUERADE
iptables-persistent (Ubuntu 14.04ではデフォルトのリポジトリから利用できますが、リストに表示されていませんが)を使用して、iptables
の変更が再起動後も存続することを確認しました。執筆時点でリンクされているWebページ)。
編集dev tun
からdev tap
に移行しようとしましたが、OpenVPNアプリはそれをサポートしていません。 GREというものについても読んだ。 OpenVPNはそれをサポートできますか?
私はあなたと同じ問題を抱えていました、これが私の解決策です:
minidlnaのconfファイルには、コメント付きの引数「listen_ip」があります。コメントを外し、VPNサーバーのアドレスをインターフェイスtun0に書き込みます。あなたの場合、それは10.8.0.1のようです。 minidlnaサーバーを再起動します。VPN経由で接続されているネットワークの外部にいるときに機能するはずです。
警告:これを行うと、minidlnaがローカルネットワークに表示されなくなります。私はここで解決策を探しています: MiniDLNaローカルAND over openvpn
UPnP用にこれを設定する方法については、ここを参照してください openvpn-with-upnp-support-in-10-minutes 。 (DLNAがこれにどのように適合するかはわかりません)。私はこれをAndroidクライアントとOpenVPNで動作させることができました。
重要なビットは linux-igdパッケージによって提供されるupnpd
のようです。 VPNと「ローカル」ネットワークを何らかの形で橋渡しします。
私は、OpenVPN経由のUPnP/DLNAは行く方法ではないと判断しました。代わりに、Apache2、h.264をインストールし、ストリーミングしたいメディアを含むフォルダーをこのようにリンクしました
cd /var/html/www
ln -s /path/to/media myfoldername
したがって、クライアントにVPNに接続すると(デフォルトのindex.html
ファイルを削除した後)、サーバーのローカルIPにWebブラウザーを向けると、myfoldername
ストリーミングしたいメディアを閲覧できます。ファイルをクリックすると、h.264プレーヤーが開き、ビデオがストリーミングされます。
編集
そして、Plex MediaServerを見つけました。これが最善の解決策のようです。私がしなければならなかったのは、PlexでVPNサブネットを許可することだけでした。もちろん、メディアをPlexライブラリに追加した後、電話でWebインターフェイスをリモートで使用してすべてのメディアをストリーミングできます。