我已经在我的 RockPro64 (运行openmediavault(版本4.1.27-1 Arrakis)的ARMv8处理器修订版2(v8 |))上安装了几个容器。一切工作都像一个魅力。 / p>
我使用的容器包括Transmission,Jellyfin,Radarr,Sonarr,Jackett ...等。我希望能够通过VPN连接这些容器,从而使连接更加私密。
理想的情况是,我有一个与我的VPN提供商连接的“ VPN容器”(目前是PIA,但我想有一个灵活的解决方案)。我的其他容器将通过此容器连接到Internet,以便它们具有VPN连接。
也许值得一提的是,我有两个容器(Jellyfin和Nextcloud),我可以通过域名从互联网上从外部访问这些容器。通过VPN进行连接可能会有所不同。
我找不到任何清晰的指南来为我的设置提供解决方案。我希望有人可以提出一些建议,从何处着手或分享对我有用的指南。
答案 0 :(得分:1)
这看起来像您需要容器来保护传出的连接:https://jordanelver.co.uk/blog/2019/06/03/routing-docker-traffic-through-a-vpn-connection/。您要使用--net container:name-of-vpn-container
来启动容器。
我想像一下,如果希望传入容器通过VPN,则需要确保VPN提供程序为您提供静态IP /主机名并转发端口。我怀疑您不想走这条路,因为这很复杂。最好的选择是继续通过域名访问它们,只需确保它位于https *之上,并确保您正在使用的设备(您的电话/平板电脑/笔记本电脑等)在VPN上即可。
*在linuxserver.io的出色工作中,没有什么比这更多的了:https://blog.linuxserver.io/2020/08/21/introducing-swag/
答案 1 :(得分:1)
我通过https://github.com/qdm12/gluetun在PIA vpn后面运行了雷达,声纳,激光雷达,巴扎尔,pyload,洪水,果冻,护套,空速容器(在amd64上,但也提供了arm64的图像)。
有据可查并得到了积极维护。在撰写本文时,它支持Private Internet Access,Mullvad,Windscribe,Surfshark,Cyberghost,Vyprvpn,NordVPN,PureVPN和Privado。
对于gunktun容器,我使用它来暴露端口:
version: '3.7'
services:
gluetun:
image: qmcgaw/private-internet-access
container_name: gluetun
cap_add:
- NET_ADMIN
network_mode: bridge
ports:
- 8888:8888/tcp # HTTP proxy
- 8388:8388/tcp # Shadowsocks
- 8388:8388/udp # Shadowsocks
- 8000:8000/tcp # Built-in HTTP control server
# other containers ports
- 8112:8112 # deluge webui
- 58846:58846 # deluge daemon
- 6767:6767 # bazarr
- 8989:8989 # sonarr
- 7878:7878 # radarr
- 8686:8686 # lidarr
- 9117:9117 # jackett
- 4040:4040 # airsonic
- 8096:8096 # jellyfin/emby
- 8227:8227 # pyload
volumes:
- ./data_gluetun:/gluetun
- ./data_gluetun/port_forward:/tmp/gluetun/forwarded_port
environment:
- VPNSP=private internet access
- TZ=Europe/London
- USER=${PIA_USER}
- PASSWORD=${PIA_PASS}
- REGION=${PIA_REGION}
- PORT_FORWARDING=on
- FIREWALL_OUTBOUND_SUBNETS=192.168.1.0/24
- HTTPPROXY=on
- SHADOWSOCKS=on
- SHADOWSOCKS_PASSWORD=${SHADOW_PASS}
restart: unless-stopped
,然后在我希望通过上述容器进行路由的容器中,我注释了任何现有的网络设置,并用network_mode: "container:gluetun"
替换了它们。
要让自动化的letencrypt证书和反向代理从本地局域网访问,我将https://github.com/jc21/nginx-proxy-manager与在64位ubuntu服务器的RPi4b上运行的与手臂兼容的mariadb yobasystems/alpine-mariadb:latest
结合使用。