具有OpenVPN / privateinternetaccess.com端口转发的Docker容器内的传输守护进程

时间:2014-01-12 19:57:11

标签: docker openvpn transmission

我一直在尝试将我的种子盒移动到Docker容器中,我认为我遇到了鸡/蛋问题:

当前的种子箱设置通过privateinternetaccess.com运行OpenVPN(所有互联网通过VPN)。我有一个脚本(https://github.com/firecat53/pia_transmission_monitor),它使用PIA检查分配的转发端口,然后使用端口和绑定地址相应地更新传输守护进程。

问题是每小时检查分配的转发端口,它可以随时更改......我需要在运行Docker容器之前知道端口,以便知道哪些端口要传入/传出容器。我打算在容器内运行OpenVPN,但事先不知道分配给容器的端口,我不确定这是否会起作用。

非常 hackish解决方案可以在一个容器中运行OpenVPN和另一个Docker守护程序,然后在OpenVPN容器内运行传输容器。这似乎很复杂,但我还没有真正尝试过。

我错过了一些非常明显的东西吗?还有其他想法吗?

谢谢!

斯科特

4 个答案:

答案 0 :(得分:2)

我终于设法通过与Privateinternetaccess.com的OpenVPN连接在Docker容器内运行Transmission-daemon。

Here是Dockerfile以及使其工作所需的各种配置文件和脚本。我愿意接受任何简化和/或替代方法来实现这一目标!一些说明:

  1. OpenVPN要求使用--privileged标志运行容器以创建tun0连接。

  2. 我只能通过在主机上使用Pipework和一个桥接器来使其正常工作,以便在网络上为容器提供自己的IP地址。

答案 1 :(得分:0)

将Docker分配的端口设置为-p <publicport>:<containerport>

是否有帮助?

例如,假设传输侦听容器内的端口10000,您可以告诉Docker“嘿,在端口1234上暴露,是吗?”通过docker run -p 1234:10000 …

答案 2 :(得分:0)

我会寻找一个通用套接字代理,可以将所有流量复制到动态分配的端口或从静态分配端口复制到您静态使用的端口。例如。

$ docker run -p 1000 your_container /bin/bash
# PORT=$(pia_setup_script)
# proxy_command 1000 $PORT

当然,你可以使这更优雅,但这是一般概念

答案 3 :(得分:0)

有些东西值得检查一些相同的行,虽然缺少vpn部分,这是很好的顺便说一句。当循环出现时,我想有人会添加它。

https://github.com/Ohge/Docker-TransHeadCouchRage