水木社区手机版
首页
|版面-BBS安装管理(BBSMan_Dev)|
新版wap站已上线
返回
1/1
|
转到
主题:Debian squeeze上的IPv6支持
楼主
|
lynch
|
2010-01-31 22:40:47
|
展开
最近squeeze的netbase引入了一个特别恶心的功能,在/etc/sysctl.d/目录下建了一个配置文件,默认设置net.ipv6.bindv6only=1。
设置了这个参数的结果是,所有的IPv6 socket默认都只能接收IPv6的connection,导致kbs在IPv6模式下,不能接收IPv4的请求。
删掉那个/etc/sysctl.d/bindv6only.conf后重启就好了,或者手动把net.ipv6.bindv6only改成1之后,重启bbs服务。
Debian上好多其他程序可能也面临类似的问题。
参考:
http://lists.debian.org/debian-devel/2009/10/msg00541.html
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=560238
http://www.liyao.me/lisnaz/2009/12/10/39/
--
FROM 111.193.190.*
7楼
|
lynch
|
2010-02-01 17:14:27
|
展开
嗯,有一帮socket达人在宣扬:同时支持v4和v6的正确方法,是同时listen两个socket,分别绑定到v4和v6的地址上,而不是像现在这样绑定到v6的any地址。
而达人们对正确性的解释是:有些操作系统(如Windows)不支持用一个socket同时接收v4和v6报文,所以一个“正确的”跨平台socket程序应该绑定多个socket。
所以以后Debian可能默认把内核参数net.ipv6.bindv6only设为1,程序要想支持双栈,要么管理员手动把sysctl的值改成0,要么在代码里调用setsockopt IPV6_V6ONLY = 0,要么就修改成同时绑定多个socket的方法(就不能写成阻塞模式了,要select/poll)
【 在 ilylx (ilylx) 的大作中提到: 】
: 不能同时绑定v4和v6?
--
修改:lynch FROM 111.193.190.*
FROM 111.193.190.*
9楼
|
lynch
|
2010-02-01 17:21:02
|
展开
...嗯,如果已经装了的系统有一点点小麻烦,要convert数据结构
文档在 svn.kcn.cn/repos/kbs/trunk/kbs_bbs/contrib/ipv6/README.ipv6
1. 在site.h文件里加上
#ifndef HAVE_IPV6_SMTH
#define HAVE_IPV6_SMTH
#endif
#define LEGACY_IPV4_DISPLAY
2. 在site.php加上
在site.php中增加
define("IPV6_LEGACY_IPV4_DISPLAY", 1);
3. 编译contrib/ipv6/cnv_ipv6.c
根据自己的站点调整下里面的数据结构。主要是把lasthost结构变大了,能够容纳v6的地址
4. 备份并转换.PASSWDS
5. make install
6. 重启bbs
大概这样子
【 在 xfgavin (KarF) 的大作中提到: 】
: 能否分享一下debian下配置kbs V6支持的步骤?多谢:)
--
FROM 111.193.190.*
10楼
|
lynch
|
2010-02-01 17:30:56
|
展开
是,Debian的这个改动影响面比较大,好多人在抱怨。
【 在 JulyClyde (Be stewed/被炖了) 的大作中提到: 】
: 我今天就遇见这个问题了
: nginx的ipv6支持
--
FROM 111.193.190.*
1/1
|
转到
选择讨论区
首页
|
分区
|
热推
BYR-Team
©
2010.
KBS Dev-Team
©
2011
登录完整版