通过 SSTP VPN 实现 DLNA

通过 SSTP VPN 实现 DLNA

在我的网络上,我有一个托管在 Windows Server 2008 上的 SSTP VPN,以及托管在 Ubuntu Server 14.04 上的 minidlna。

当我将我的客户端连接到 VPN(从 LAN 外部)时,除了我的 DLNA(minidlna)服务器之外,一切都运行正常。

通过在线搜索,我发现多播可能存在问题。

客户端上的 PPP 适配器的子网掩码为 255.255.255.255,这可能是问题所在,也可能不是问题所在。

假设问题与服务器设置有关,我需要在 Server 2008 中的 RRAS 中进行哪些更改?

附加信息:

我已经设置了 DHCP 转发器,以便为 VPN 客户端提供 VPN 网络的 IP 地址

  • 网络掩码:255.255.255.0
  • 范围:192.168.0.100 - 192.168.0.200
  • DNS:(外部 DNS)

VPN 服务器配置:

  • IP:192.168.0.6, 192.168.0.7
  • 网络掩码:255.255.255.0
  • DNS:(外部 DNS)

答案1

您现在拥有的是所谓的点对点连接。这对于 PPP 来说是正常的,也是意料之中的,而 PPP 正是 SSTP 所封装的。不幸的是,它默认不适合依赖广播或多播的任何东西。

根据我的个人经验,您需要 OpenVPN (此处提供开源版本),使用dev tap,实现可靠的第 2 层 VPN 机制。

这是一个基本的示例服务器配置:

local myhost
port 12345
proto udp
dev tap
ca /path/to/ca.pem
cert /path/to/server-cert.pem
key /path/to/server-key.pem

ifconfig-pool-persist /path/to/ip-pool

server-bridge 10.0.0.1 255.255.255.0 10.0.0.10 10.0.0.200

persist-key
persist-tun

client-to-client
keepalive 10 120

此配置会导致所有客户端位于同一第 2 层广播域中,使用具有永久客户端 IP 的 10.0.0.0/24 子网。这与大多数消费级互联网网关使用 DHCP 的方式类似。

客户端配置也相当简单:

client
proto udp
dev tap

remote myhost 12345

nobind
persist-key
persist-tun

ca /path/to/ca.pem
cert /path/to/client-cert.pem
key /path/to/client-key.pem

ns-cert-type server

OpenVPN 需要 PEM 编码的证书。OpenSSL 可以在各种编码之间进行转换。密钥不需要密码,除非您希望客户端和/或服务器每次启动时都要求输入密码(不适合自动启动)。

所有证书都必须由同一证书颁发机构签名。服务器证书必须是服务器证书,反之亦然。

这绝不是一份完整的指南,仅仅是一个配置示例。如果需要,必须手动设置物理网络和虚拟网络之间的桥接。您还应注意自动地址分配职责不会发生冲突(路由器与 OpenVPN 等)。

相关内容