监狱中的 gethostbyname 失败和网络超时

监狱中的 gethostbyname 失败和网络超时

我有一个 FreeBSD DigitalOcean droplet,我在其中遵循本指南 确切地用于设置监狱。问题是我无法在监狱内获得可靠的网络连接。curl https://www.google.com/当我尝试连接到服务器时,我遇到了大约 1 分钟的延迟:

卷曲失败

在第二个星号之后,连接非常非常快地建立起来。ping我得到了 100% 的数据包丢失,有时我无法解析主机名。它在执行一个命令时不起作用,但在我尝试下一个命令之前,它会在短暂的延迟后起作用。

我尝试查看 SSH 是否可靠地工作并且我似乎总是能够获得连接(当主机名查找工作时)。ssh -T [email protected]

我只在监狱中遇到这些问题,在主机上没有遇到。

答案1

嗯,除非你明确允许,否则你不能ping从 jail 中退出。默认情况下是这样,因为它会引发安全问题。你可以允许 jail 退出ping,但只有在你真的没有其他解决方案时才应该这样做。更多信息那里

ping现在,您可以用它host来检查网络连接是否正常,而不是使用:

# host google.com

至于curl问题:在 pf.conf 中,您应该为端口 http 启用 tcp 和 udp 输入和输出(如果需要,也可以启用 https),但也要为端口 dns 启用 udp。例如:

pass in on $ext_if proto { tcp, udp } from any to $ext_if port $webports
pass out on $ext_if proto { tcp, udp } from $ext_if to any port $webports 

pass out on $ext_if proto udp from $ext_if to any port $dns_port

您应该在其中定义 webports 和 dns_port 以满足您的需要。

此外,当您按照指南操作时,您复制了主机的 /etc/resolv.conf。也许检查一下其中的内容,这取决于主机的配置,在某些情况下,它可能无法在 jail 中工作。

PS:至于 gethostbyname 失败,它写在你的标题中,但你的帖子中没有提到。这可能与 /etc/hosts 配置有关,但我不能再多说了。

答案2

问题出在 DigitalOcean 的网络中。Twitter 上的其他人也报告了同样的问题,并使用完全相同安装工作 100% 正常。

相关内容