我有一个包含 2 个 VLAN 的网络,一个用于个人设备的个人互连和互联网访问,另一个用于 IOT 设备等不受信任的设备。这是网络拓扑:
简而言之,我有两个子网和两个 VLAN。192.168.1.0/24 和 192.168.2.0/24 分别具有 VLAN 1 和 2。他们不允许相互交流。我有一个在 Ubuntu Server 20.04.02 LTS VM 上运行的 Jellyfin 服务器,它与一个静态 IP 192.168.1.223 的 Hyper-V 交换机桥接。它是反向代理的,以便于访问。(http://jellyfin/)。
我想让任何连接到 VPN (192.168.2.15) 的人都可以在浏览器中输入 Jellyfin 的 VM VLAN 2 IP (192.168.2.17) 并访问我的 jellyfin 服务器。我可以处理的 apache2 方面。我的问题始于我的 jellyfin 服务器似乎无法访问第二个 VLAN。我设置它:
sudo ip link add link eth0 name eth0.2 type vlan id 2
然后我编辑了 /etc/NetworkManager/NetworkManager.conf
[keyfile]
unmanaged-devices=*,except:type:wifi,except:type:wwan,except:type:ethernet,except:type:vlan
我添加了“除了:类型:vlan”。我重新启动了网络管理器。然后我打开 NMTUI 并将 eth0.2 设备设置为静态 IP 192.168.2.17,网关 192.168.2.1,DNS 192.168.2.1,子网 192.168.2.0/24
然后我激活了设备。
这打破了虚拟机的 DNS 记录,但我仍然能够从子网 1 上的任何设备访问 http://jellyfin/。我可以从 VLAN 1 ping 任何 IP 地址,但 VLAN 2 的主机目标无法访问。
关于如何改进的任何想法?如果有人问我,我愿意用更多信息来编辑它。谢谢!
我解决了这个问题。我添加了一个 Nginx 反向代理。我添加了 PiHole。我用 PiHole 创建了一个封闭的解析器。
防火墙只允许某些 IP 地址访问端口 53 和端口 443,从而使其成为封闭式解析器而不是开放式解析器。
我不再需要 VPN,因为我有 TLS。
我需要一个封闭的解析器的原因是你不能在 iOS 上更改主机文件,而且我不拥有我正在使用的域名。(去他妈的 ICANN!)