Transmission早已经支持IPv6了,但是大多数Linux系统上默认安装的版本都没有提供这个支持,需要自己修改源代码重新编译。网上搜到的很多文章给出的解决办法都是修改libtransmission/web.c,然而仅仅如此在六维上还是行不通。
1. 下载Transmission的源码
可能有些人上不了国外网站,不过163的镜像应该都能访问的:
http://mirrors.163.com/gentoo/distfiles/transmission-1.76.tar.bz2已失效
2. 解压
tar xvf transmission-1.76.tar.bz2
3. 修改两处代码
进入源码目录,找到libtransmission/web.c文件,搜索如下代码:
curl_easy_setopt( easy, CURLOPT_IPRESOLVE,
CURL_IPRESOLVE_V4 );
将CURL_IPRESOLVE_V4改为CURL_IPRESOLVE_V6(仅支持IPv6),或者CURL_IPRESOLVE_WHATEVER(同时支持IPv6和IPv4)
这对大多数支持IPv6的BT网站来说都已经足够了,也是网上大部分文章给出的解决方案,但要在六维使用,还需要修改另外一个文件:
找到libtransmission/tracker.c,搜索函数is_rfc2396_alnum( char ch ),找到如下代码:
- static int
- is_rfc2396_alnum( char ch )
- {
- return ( '0' <= ch && ch <= '9' )
- || ( 'A' <= ch && ch <= 'Z' )
- || ( 'a' <= ch && ch <= 'z' );
- }
将其修改为:
- static int
- is_rfc2396_alnum( char ch )
- {
- return ( '0' <= ch && ch <= '9' )
- || ( 'A' <= ch && ch <= 'Z' )
- || ( 'a' <= ch && ch <= 'z' )
- || ( ch == '.' )
- || ( ch == '-' )
- || ( ch == '_' )
- || ( ch == '~' );
- }
4. 编译安装
然后按照正常的流程
./configure
make
make install
其中第一步可能会报找不到ssl及libcurl,如果是Fedora的话直接yum即可:
yum install openssl-devel
yum instal libcurl-devel
Ubuntu的话apt-get一下,具体内容网上搜搜。
到此为止,就完全搞定了~~在六维上下了个音乐,速度还不错
。