![如何使 Synology 反向代理在我的本地/专用网络内和/或通过 VPN 工作(我需要这样做吗?)?](https://linux22.com/image/760529/%E5%A6%82%E4%BD%95%E4%BD%BF%20Synology%20%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%E5%9C%A8%E6%88%91%E7%9A%84%E6%9C%AC%E5%9C%B0%2F%E4%B8%93%E7%94%A8%E7%BD%91%E7%BB%9C%E5%86%85%E5%92%8C%2F%E6%88%96%E9%80%9A%E8%BF%87%20VPN%20%E5%B7%A5%E4%BD%9C%EF%BC%88%E6%88%91%E9%9C%80%E8%A6%81%E8%BF%99%E6%A0%B7%E5%81%9A%E5%90%97%EF%BC%9F%EF%BC%89%EF%BC%9F.png)
我有一个 Synology NAS,可以通过本地网络通过直接 IP 和 URL 访问:
https://192.168.5.10
https://cloud.local
我的 Synology NAS 中运行着 docker,其中有些应用程序在不同的端口上运行。例如,在我的家庭本地网络中,我可以使用以下 URL 访问这些应用程序:
APP 1 accessible over: http://192.168.5.10:9000
APP 2 accessible over: http://192.168.5.10:9500
APP 3 accessible over: http://192.168.5.10:9800
我还配置了 openVPN,因此当出门在外时,我可以连接到它并使用上述 URL 访问相同的应用程序。
这样,我的路由器上就不会暴露除 openVPN 之外的任何端口。但是,尽管我的 NAS 只能通过本地网络或 VPN 访问,但我想通过 https 而不是 http 访问这些应用程序来增加另一层安全性,在我的设置之上添加一层 SSL 加密。
为此,我了解到我的 Synology NAS 具有反向代理功能,可以通过 https 为我提供这些应用程序。因此,我在 Synology 应用程序门户 > 反向代理界面中添加了以下配置:
SOURCE
Protocol: HTTPS
Hostname: app.cloud.local
Port: 443
DESTINATION
Protocol: HTTP
Hostname: 192.168.5.10
Port: 9000
我希望能够使用我的浏览器访问https://app.cloud.local并获得对我的 APP1 的安全访问权限http://192.168.5.10。相反,什么也没有发生,页面尝试加载但只是挂起而不执行任何操作。
也许我对网络的理解有误,但我的浏览器似乎无法翻译https://app.cloud.local什么都做不了。我做错了什么?谢谢。
答案1
您需要运行 DNS 服务器,并将域指向内部 IP,当然您的设备也使用 Synology 作为 DNS 服务器。这样,它会首先在本地找到这些域。这正是我的做法
答案2
我猜,https://app.cloud.local/不通过 VPN。相反,在“外部访问”下设置 dyndns。我不使用 VPN。相反,我在代理接口中设置了两个条目:http://app.dyndns.diskstation.me:80到https://app.dyndns.diskstation.me:443和https://app.dyndns.diskstation.me:443到 http://localhost:9000 然后为子域创建证书。这样,您就可以通过标准 http 访问您的应用,而无需使用 vpn。