我需要容器才能使用sshuttle工具。
我尝试在主机或包含器中的任何一种方式。但它都不会起作用。
这就是我需要的:
我在主持人中运行:sshuttle -r mysshaccount@my.remote.server --dns 0/0
。它可以通过sshuttle帮助托管应用程序访问Internet。但对于容器,它无法解析DNS请求。似乎--dns会影响容器的DNS功能。如何让容器与主机的sshuttle一起工作?
如果我在容器内运行sshuttle也是如此。似乎容器在sshuttle中没有"--dns"
选项的权限。
无论如何,我需要在容器中使用此选项"--dns"
,因为这是在中国克服政府防火墙(GFW)的唯一途径。
任何人都可以帮助它发挥作用吗?
答案 0 :(得分:13)
试试sshuttle -l 0.0.0.0 --dns -vvr XXXXXX@YY.YY.YY.YY 0/0
,这对我有用。我想我们需要-l 0.0.0.0
,以便具有“remote ip”的docker容器可以连接到隧道。
答案 1 :(得分:7)
通常情况下,设置0.0.0.0
需要监听外部可用接口,这是also the case with sshuttle。
以下是一种更安全的方法 - 在您的主机上:
sshuttle
实例,监听localhost,sshuttle
实例,聆听docker主机虚拟网络接口。例如:
sshuttle --dns -r <your-ssh-server> 0/0
sshuttle -l 172.17.0.1 --dns -r <your-ssh-server> 0/0
请注意,这会干扰主机&lt; - &gt;容器通信(例如端口绑定),但它允许容器的安全外部连接(您可以进一步帮助自己排除Docker的子网,例如使用-x 172.17.0.0/24
)。
答案 2 :(得分:0)
您可以看到网桥子网并将其排除在shuttle中 例如,
document.getElementById("SkillPoints").innerHTML = SkillPoints; // causes error
// ( There is no html element with id 'SkillPoints' )
cookies = 0;
document.getElementById('cookies').innerHTML = cookies;