Yesod devel服务器只能监听ipv6

时间:2011-09-20 13:49:54

标签: haskell yesod

我正在使用yesod 0.9.2.2运行“cabal install&& yesod devel”,但它只是使用ipv6进行监听。有谁知道如何配置它来监听ipv4?我在Windows 7上运行它。

由于

2 个答案:

答案 0 :(得分:2)

到目前为止,您所描述的症状已在BSD和Debian上观察到,但看起来Windows也受到了影响。

这是Yesod的一个已知问题,或者实际上是Wasp,或者确切地说,与网络库有关。关注此问题的一个地方是this githup issuecurrent discussion on haskell-lists,这部分是由您的问题引起的。

答案 1 :(得分:0)

虽然我目前没有类似的设置来测试这个,但您可能会发现,如果某些内容正在侦听IPv6端口X,并且没有任何内容侦听同一个端口X上的IPv4,那么IPv6端口将会收到连接。 IPv6服务器将看到来自“IPv6”地址:: ffff:1.2.3.4的连接(这称为IPv4映射的IPv6地址)。内核提供IPv6和IPv4端点之间的转换。 IPv4通过网络使用。

我不了解Windows 7,但是某些系统(例如某些 Linux发行版)默认会通过设置特定的sysctl禁用此功能,这意味着服务器需要绑定到单独的IPv4和IPv6套接字(根据我的经验,这是更好的选择)。应用程序可以自由覆盖此默认行为。