どうもみむらです。
VPN 越しに NAS のコンテンツに、しかも DLNA 対応アプリ経由で触りたいと思ったことはありませんか。
数ヶ月前に NAS を購入して、速攻で静音化の記事 ( ASUSTOR DataSync Center の HDD アクセスを静かにする ) を書いたりしていたのですが、DLNA 経由で音楽ファイルに触れるようにしてみた所これが大変使いやすく、ぜひ VPN 越しにもこれを享受したい・・と。。
DLNA は UPnP を用いており、その機器発見に SSDP (1900/udp) を用いているのですが、早い話が VPN 越しにブロードキャストが上手く動作しないので、これを改善してみようというそういう話です。
1.サーバから VPN 感を感じ取れないようにする
DLNA は同一ネットワーク上での動作を想定しているものになります。
他のネットワークからアクセスしようとすると上手く動いてくれないケースがいくつか見られましたので、下記のようにしてサーバからの 「VPN 感」を少し消してみます。

NAS 側には “192.168.1.0/24” のネットワークに属しているように見せ、VPN 用に “192.168.1.224/28” のネットワークを用意しておきます。
VPN サーバには Proxy ARP の設定を入れて、192.168.1.0/24 のネットワーク上からも 192.168.1.224/28 の端末の MAC アドレスの解決 (といっても VPN サーバが指し示されるだけ)が出来るようになります。
なお、Proxy ARP については、こちらのサイトが詳しいですので参照ください:
Proxy ARP(プロキシARP)とは / ネットワークエンジニアとして
https://www.infraexpert.com/study/gateway.htm
具体的な設定方法としては
“/proc/sys/net/ipv4/conf/<device>/proxy_arp” を 1 に書き換えるか
systemd-networkd の “[Network]” セクションに “IPv4ProxyARP=yes” とする方法が
簡単かなと思います。
設定する際は、“192.168.1.0/24” の方に ProxyARP の設定を適用する形になります。
systemd-networkd の設定例)
# cat /etc/systemd/network/eth0.network
[Match]
Name=eth0
[Network]
Address=192.168.1.240/24
Gateway=192.168.1.254
IPv4ProxyARP=yes
# cat /etc/systemd/network/eth1.network
[Match]
Name=eth1
[Network]
Address=192.168.1.238/28
[Link]
MTUBytes=12002. SSDP をプロキシする
探索プロトコルの通信を転送するようにしてみます。
転送しないと探索が VPN のネットワーク内で閉じてしまい、本来の機器まで届かなくなってしまいます。
SSDP の中身は概ね下記のような HTTP ベースの通信になっています。
# リクエストの例。(クライアントからサーバに対して送る)
# 239.255.255.250:1900/UDP に対して送出される
---
M-SEARCH * HTTP/1.1
MX: 5
ST: urn:schemas-upnp-org:device:MediaServer:1
MAN: "ssdp:discover"
User-Agent: UPnP/1.0
Host: 239.255.255.250:1900
Connection: close
---
# 応答例。
# サーバからリクエストを行ったクライアントのポートに対してユニキャストで応答が入る
---
HTTP/1.1 200 OK
Cache-Control: max-age=1800
EXT:
Location: http://192.168.1.22:55247/dms
Server: Linux 4.0.0 UPnP/1.0
ST: urn:schemas-upnp-org:device:MediaServer:1
USN: uuid:xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxx::urn:schemas-upnp-org:device:MediaServer:1
Date: Sun, 16 May 2021 19:42:50 GMT
---見ていただくとわかるように、応答の中にユニキャストアドレスが含まれているため、発見処理のみプロキシしてあげれば後は1対1での通信となります。
ということで下記のようなプログラムを書いてみました
#!/bin/python3
#
# SSDP (DLNA の探索プロトコル) を吸って吐くプロキシ。
# Wireguard のように純粋にbridgeできないネットワーク間で使うと幸せになれる気がします。
# (使ったことでネットワークがダウン等しても保証は出来ませんので、自己責任でどうぞ。)
#
# Author : Satoshi Mimura (@mimura1133)
#
import socket
from contextlib import closing
def main():
multicast_group = '239.255.255.250'
src_adapter_ip = '' # DLNA クライアントがいるネットワークの IP アドレスを指定
dst_adapter_ip = '' # DLNA サーバがいるネットワークの IP アドレスを指定
port = 1900
timeout = 5.0
with closing(socket.socket(socket.AF_INET,socket.SOCK_DGRAM)) as src_sock:
src_sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR,1)
src_sock.bind(('',port))
src_sock.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP,
socket.inet_aton(multicast_group) + socket.inet_aton(src_adapter_ip))
while True:
request_data, client_addr = src_sock.recvfrom(4096)
with closing(socket.socket(socket.AF_INET,socket.SOCK_DGRAM)) as dst_sock:
dst_sock.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_IF, socket.inet_aton(dst_adapter_ip))
dst_sock.settimeout(timeout)
dst_sock.sendto(request_data,(multicast_group,port))
print("\033[31m [FORWARDED:REQUEST]\033[0m {} -> {}".format(client_addr,(multicast_group,port)))
print(request_data)
while True:
try:
response_data, server_addr = dst_sock.recvfrom(4096)
src_sock.sendto(response_data,client_addr)
print("\033[32m [FORWARDED:RESPONSE]\033[0m {} -> {}".format(server_addr,client_addr))
print(response_data)
except Exception:
break
return
if __name__ == '__main__':
main()動かしてみた結果は下図の通り。中々上手く動いてます。


3.永続化する
毎回手動で起動するのは筋がよくありませんので、systemd のサービスにしてしまいましょう。
まずは、先ほどの Proxy をするプログラムからデバッグ用の print 文を消去したものを準備します。
#!/bin/python3
#
# SSDP (DLNA の探索プロトコル) を吸って吐くプロキシ。
# Wireguard のように純粋にbridgeできないネットワーク間で使うと幸せになれる気がします。
# (使ったことでネットワークがダウン等しても保証は出来ませんので、自己責任でどうぞ。)
#
# Author : Satoshi Mimura (@mimura1133)
#
import socket
from contextlib import closing
def main():
multicast_group = '239.255.255.250'
src_adapter_ip = '' # DLNA クライアントがいるネットワークの IP アドレスを指定
dst_adapter_ip = '' # DLNA サーバがいるネットワークの IP アドレスを指定
port = 1900
timeout = 5.0
with closing(socket.socket(socket.AF_INET,socket.SOCK_DGRAM)) as src_sock:
src_sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR,1)
src_sock.bind(('',port))
src_sock.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP,
socket.inet_aton(multicast_group) + socket.inet_aton(src_adapter_ip))
while True:
request_data, client_addr = src_sock.recvfrom(4096)
with closing(socket.socket(socket.AF_INET,socket.SOCK_DGRAM)) as dst_sock:
dst_sock.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_IF, socket.inet_aton(dst_adapter_ip))
dst_sock.settimeout(timeout)
dst_sock.sendto(request_data,(multicast_group,port))
while True:
try:
response_data, server_addr = dst_sock.recvfrom(4096)
src_sock.sendto(response_data,client_addr)
except Exception:
break
return
if __name__ == '__main__':
main()上記を /usr/local/sbin/proxy_dlna.py として保存しておきます。
保存が完了したら下記のように systemd のサービスを作成します。
今回は下記の内容を /etc/systemd/system/proxy_dlna.service として作成しました。
[Unit]
Description=Launch DLNA Proxy (/usr/local/sbin/proxy_dlna.py)
# After=wg-quick@wg0.service #WireGuard を使っている場合はこうしておくと WireGuard が起動した後に起動するようになります。
[Service]
Type=oneshot
ExecStart=/usr/local/sbin/proxy_dlna.py
[Install]
WantedBy=multi-user.target保存が完了しましたら systemctl enable proxy_dlna 等で有効にすれば完了です。
手順は以上となります。
ただ上記のようなプロキシで全て動作するかというとそうではなく、特に DTCP-IP 等を用いるシステムの場合は「TTL は 3ホップ以下」「RTT は 7ms 以下」という制約が存在するため実現するのが大変難しい状況になっています。
もしそのような場合については NTT の NGN 網の特殊性を用いて回避しているケースや、L2TPv3 などを上手く組み合わせて回避しているケースがネット上にいくつか転がっていますのでそちらを用いるのが良いかなと思われます。
とはいえ、当方環境ではこれで VPN ライフがかなり改善されましたので、もしよろしければ参考にしていただけたらと!
https://obgtj75.exblog.jp/35802341/
Use the filters to kind by silhouette, neckline, cloth, and size.
https://classic-blog.udn.com/d5947cc1/183735568
Not sure the place to start out with your search for that picture-perfect mother-of-the-bride dress?
https://classic-blog.udn.com/a1f94eaa/183931221
Teri Jon has a big number of plus dimension evening robes, and some even with prolonged sizing to dimension 20.
https://telegra.ph/boginhall-2-10-18-3
Floral prints and delicate colours play well with decor that’s positive to embrace the blooms of the spring and summer season months.
https://classic-blog.udn.com/6f2514d9/184810787
This hard-to-beat basic style is seamless for moms of all ages to flaunt an beautiful fashion assertion on their daughter’s D-day.
https://classic-blog.udn.com/f5ce5c81/184039795
If you’re not sure where to start out (or you just want to see what’s out there), consider us your personal stylist.
https://telegra.ph/accounting-5-10-29
Choose a gown with structure that holds its shape all on its own.
https://ypddbblkwahotmail.wordpress.com/2025/12/17/3/
This consists of most variations of white, such as ivory and champagne.
https://sites.google.com/view/seo-12-12-2025
Wear yours with grass-friendly shoes like block heels or woven wedges.
https://mypaper.pchome.com.tw/danielmoore18/post/1382127886
Look for dress choices that least complement the wedding theme colors without mixing in too much.
https://classic-blog.udn.com/d0e59675/183834039
Colors similar to fuchsia, green and silver are just a few ideas!
https://daniel20496.jimdofree.com/2025/10/05/4/
The giant florals with the black background are significantly on pattern and the ruching adds a flattering factor.
https://mypaper.pchome.com.tw/kaitlynrussell9/post/1382130709
Jovani is a stylish but simple model that caters to the fashionable lady.
https://www.tumblr.com/alex436712/795219719171997696/4?source=share
This will help her discover the complementary ensemble and forestall her from being over or underdressed.
https://classic-blog.udn.com/7b209430/183759067
For her mom, it involved a beaded silver gown fit for a queen.
https://classic-blog.udn.com/a52b0677/184214718
Neither a daytime occasion nor a formal summer time evening soiree requires a full-length gown.
https://telegra.ph/accounting-4-09-30
With a mild fit on the hips, this costume is designed to flatter you in all the proper places.
https://classic-blog.udn.com/a2c1f494/183785443
Otherwise, photos will seem off-balanced, and it may be misconstrued that one mother is attempting to outshine or outdo the other.
https://jack76001.wixsite.com/my-site-1/post/____5
Then you’ll find a way to view your saved listings each time you login.
https://classic-blog.udn.com/48112fe7/183887994
A hint of sheen makes pastels like this dove gray really feel wealthy and applicable for the evening.
https://defeated-jeri-fdaflm1k.dcms.site/
For this romantic marriage ceremony at Brooklyn’s Wythe Hotel, the bride’s mother chosen a short-sleeved, full-length teal gown.
https://sdpxrtbkzv.wordpress.com/2025/12/17/4/
Here’s a tea-length mother-of-the-bride dress you’ll find a way to simply pull out of your wardrobe time and time again.
https://qr.ae/pCP6RG
An event as particular as your kid’s wedding would not come around every day.
https://classic-blog.udn.com/5ed0c38b/184014257
With that in mind, you’re totally entitled to need an outfit that lives up to the special occasion.
https://combative-flory-b7tmb59n.dcms.site/RudQw
Inspired by bold flowers, a blooming print pops off every inch of this strapless ball gown, from the phantasm plunge corset bodice to the full, sweeping skirt.
https://thomasandrews.exblog.jp/35719449/
Jovani Plus size mother of the bride attire suits any body type.
https://classic-blog.udn.com/f91e6a70/183926052
Our mothers are beautiful and wonderful and they should rock what they have.
https://classic-blog.udn.com/2c7a4499/183727828
That said, having such all kinds of options would possibly really feel slightly overwhelming.
https://telegra.ph/accounting-1-10-24
Find the right tie styles for 2021 and past on your wedding.
https://classic-blog.udn.com/50461722/184470124
There are many dressing choices available for each finances.
https://classic-blog.udn.com/0d44c938/184026931
So, you’ll need to put on one thing that doesn’t conflict with the the rest of the group in pictures.
https://qr.ae/pCPxDE
You can nonetheless embrace these celebratory metallic shades with out overlaying your self head to toe in sequins.
https://mypaper.pchome.com.tw/david748/post/1382124566
Plan nicely prematurely, so you’ll not get too confused and might help both your son or daughter with the marriage preparations.
https://classic-blog.udn.com/d54b65db/183785036
Don’t be afraid of anything oversized—the large bow of this robe will flatter small busts, and make waists and arms seem petite compared.
https://telegra.ph/accounting-3-10-24
Keep the strains of communication open throughout the marriage planning course of.
https://classic-blog.udn.com/26f1923e/184108920
The cowl neck provides some very subtle intercourse attraction, the ruching helps to cover any lumps and bumps and the 3D flowers add a sense of luxurious.
https://classic-blog.udn.com/c60bdf61/184478907
Wear yours with heels in a neutral tone and delicate shoulder-grazing earrings.
https://classic-blog.udn.com/04731c42/183883342
Black is pretty much accepted nowadays, irrespective of the event.
https://classic-blog.udn.com/ddc8a690/183705075
MISSMAY creates lovely vintage fashion dresses that can be worn again and again in nearly any setting.
https://classic-blog.udn.com/0a3b1d8e/183820686
Look for cinched-in jackets that will not only cover her wobbly bits, but also assist her change her look from day to nighttime.
https://carlaklein8819.exblog.jp/35704630/
For the mother whose style is glossy and minimal, go for a robe with an architectural silhouette in her favorite color.
https://mypaper.pchome.com.tw/ella_baker13/post/1382125859
You don’t need to put on brilliant pink for instance, if the style of the day is extra natural and muted.
https://telegra.ph/accounting-7-10-20
This desert coloured dress is perfect if what the bride desires is for you to wear a color closer to white.
https://jspvsayywm05.wixsite.com/my-site-1/post/____2
This mother’s knee-length patterned costume completely matched the mood of her child’s outdoor marriage ceremony venue.
https://classic-blog.udn.com/e1eb21da/184580453
This type is finished with quick sleeves and a below the knee hem, and has a concealed centre again zip fastening.
https://ameblo.jp/johnduffy/entry-12947404054.html
Jovani presents you the highest best quality MOB robes for a low value.
https://classic-blog.udn.com/41736157/184029776
Read on for the most effective mom of the bride attire for every season, physique sort, and price range.
https://classic-blog.udn.com/33ad65db/184872954
Make it pop with a blinged-out pair of heels and matching equipment.
https://rylin3104.blogspot.com/2025/12/blog-post_15.html
Fall and winter weddings name for stylish muted tones like silvery gray.
https://mypaper.pchome.com.tw/6537426272475/post/1382134615
You can match elegant strapless gowns with items corresponding to a jacket or shawl.