无需Java使用I2P——I2Pd简单扫盲

2016/02/13
最近收到朋友的来信让我写一篇关于i2p的文章,顺便博客也好久没更新都快长草了..那就写一篇关于i2pd的简介+扫盲文章吧...
什么是I2P?
I2P是Tor的变种,比Tor网络更加安全、更据隐蔽性,如果你不知道Tor又是什么,请戳洋葱路由Tor。 TOR和I2P共同点都是通过若干个节点将你的数据进行层层转包、加密,防止你的真实IP暴露。 (摘自谷歌)
I2P与Tor有什么区别?
  1. 安全性:Tor使用单一的链路进行传输你的数据;而I2P则使用多条链路分别传输你的数据并且每条链路传输的数据量可以不一样。
  2. 难以封杀:I2P使用 Kad 算法来获取网络节点的信息,即不需要目录服务器且Kad算法拿到的节点信息只是整个 I2P 网络的一小部分并且每一台运行 I2P 的主机都可以成为中继。
  3. 速度很慢:这是I2P最大的缺点了,速度很慢...根据笔者的测试,下载速度能上20k左右就谢天谢地了,平时只有10k左右...(如图)

  1. 这么慢能干什么用呢?应急翻墙,在所有梯子都失效的情况下,可以使用I2P应急翻墙下载新的梯子.. /**难以封杀**/
什么是I2Pd,与传统的I2P有何不同?
I2Pd与I2P最大的不同是I2Pd是一个采用C++编写的I2P网络的客户端, 而传统的I2P使用的是Java语言..也就是说你再也不用安装臃肿的JRE了... /**Java退散 **/
哪里能下载到?
前面废话说了那么多,那么来进入正题吧..
I2Pd的官方网站为: http://i2pd.website/releases/ 这里可以下载已经编译好的I2Pd..点击进入最新的版本的目录.
如果你是32位系统,则下载 win32_mingw.zip 如果是64位系统,则下载 win64_mingw.zip..
/** 居然没有HTTPS, 真是奇怪呢... **/
安装与配置?
下载解压后,在任何位置建立一个目录,将i2pd.exe放到新建立好的目录中...之后在同目录下建立一个文件名为tunnnel.cfg的文件
内容如下:
[FanQiangProxy-XiaoLan-01]
type=client
host=127.0.0.1
port=8964
destination=nqiki6zqs7j6vzmwmpdcf3cyleqtzabvlzpu6bzdc27ncvjih4eq.b32.i2p
inbound.length=0
outbound.length=0
inbound.quantity=3
outbound.quantity=3
这里的nqiki6zqs7j6vzmwmpdcf3cyleqtzabvlzpu6bzdc27ncvjih4eq.b32.i2p是我搭建的出口代理,如果你找到了更好的出口代理,也可以换成其他的...
为了更方便使用,我们可以来建立一个启动器, start.bat, 内容如下
@echo off
echo i2pd daemon starting...
i2pd --socksproxy.enabled=0 --httpproxy.enabled=0 --floodfill --bandwidth=P --tunconf=tunnel.cfg --ipv6
这些都完成之后,该目录下应该有3个文件:
  • i2pd.exe - I2Pd主程序
  • start.bat - 启动器
  • tunnel.cfg - 配置文件

双击start.bat运行I2Pd后应该会弹出如下窗口,并且会卡在Reseed环节..别见怪,这很正常,因为补种的URL已经被墙


之后我们将这个程序关掉退出I2P, 打开%APPDATA%/i2pd/netDb目录(将黑体字直接贴到地址栏中回车)
然后下载补种包,补种包可以有两种方式下载
将补种包解压到%APPDATA%/i2pd/netDb目录
2. 使用脚本下载
strFileURL = "https://raw.githubusercontent.com/XL2014/I2PdSeed/master/netDb.zip"
strHDLocation = "file.zip"
Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP")
objXMLHTTP.open "GET", strFileURL, false
objXMLHTTP.send()
If objXMLHTTP.Status = 200 Then
Set objADOStream = CreateObject("ADODB.Stream")
objADOStream.Open
objADOStream.Type = 1
objADOStream.Write objXMLHTTP.ResponseBody
objADOStream.Position = 0'Set the stream position to the start
Set objFSO = Createobject("Scripting.FileSystemObject")
If objFSO.Fileexists(strHDLocation) Then objFSO.DeleteFile strHDLocation
Set objFSO = Nothing
objADOStream.SaveToFile strHDLocation
objADOStream.Close
Set objADOStream = Nothing
End if
Set objXMLHTTP = Nothing
ZipFile="file.zip"
Set objShell = CreateObject( "WScript.Shell" )
appDataLocation=objShell.ExpandEnvironmentStrings("%APPDATA%")
ExtractTo= appDataLocation & "\i2pd\"
Set fso = CreateObject("Scripting.FileSystemObject")
sourceFile = fso.GetAbsolutePathName(ZipFile)
destFolder = fso.GetAbsolutePathName(ExtractTo)
Set objShell = CreateObject("Shell.Application")
Set FilesInZip=objShell.NameSpace(sourceFile).Items()
objShell.NameSpace(destFolder).copyHere FilesInZip, 16
Set fso = Nothing
Set objShell = Nothing
Set FilesInZip = Nothing
MsgBox("补种完毕")
将以上内容保存为reseed.vbs然后双击运行,即可自动补种....(感谢不愿透露姓名的唐马儒的建议...)
之后运行运行start.bat
等待大约2分钟,将浏览器的SOCKS5代理设置为 127.0.0.1:8964 就可以使用I2Pd翻墙了.. :)
提示: 最好长期运行以便自动获取最新的种子避免封杀....

Related Posts