From 0197b0e65ed5e6ea62dbf3f02a0c2dd79abca5d1 Mon Sep 17 00:00:00 2001 From: walking Date: Sat, 17 Oct 2009 17:33:52 +0000 Subject: [PATCH] add *_zh.htmlx7 + *zh.pngx2 + *zh.cssx1 --- www.i2p2/pages/_layout_zh.html | 25 + www.i2p2/pages/download_zh.html | 61 +++ www.i2p2/pages/faq_zh.html | 171 +++++++ www.i2p2/pages/index_zh.html | 53 ++ www.i2p2/pages/installation_zh.html | 1 + www.i2p2/pages/links_zh.html | 35 ++ www.i2p2/pages/not_found_zh.html | 7 + .../static/images/endToEndEncryption_zh.png | Bin 0 -> 11997 bytes www.i2p2/static/images/zh.png | Bin 0 -> 472 bytes www.i2p2/static/styles/light_zh.css | 481 ++++++++++++++++++ 10 files changed, 834 insertions(+) create mode 100644 www.i2p2/pages/_layout_zh.html create mode 100644 www.i2p2/pages/download_zh.html create mode 100644 www.i2p2/pages/faq_zh.html create mode 100644 www.i2p2/pages/index_zh.html create mode 100644 www.i2p2/pages/installation_zh.html create mode 100644 www.i2p2/pages/links_zh.html create mode 100644 www.i2p2/pages/not_found_zh.html create mode 100644 www.i2p2/static/images/endToEndEncryption_zh.png create mode 100644 www.i2p2/static/images/zh.png create mode 100644 www.i2p2/static/styles/light_zh.css diff --git a/www.i2p2/pages/_layout_zh.html b/www.i2p2/pages/_layout_zh.html new file mode 100644 index 00000000..c8c04397 --- /dev/null +++ b/www.i2p2/pages/_layout_zh.html @@ -0,0 +1,25 @@ +{% set lang = "zh" %} +{% include "_urlify" %} + + + + + {% filter capture('title') %}{% block title %}{% endblock %}{% endfilter %} - I2P + + + + +
跳过导航
+ +

{{ title }}

+ +
+ {% block content %}{% endblock %} +
+ + diff --git a/www.i2p2/pages/download_zh.html b/www.i2p2/pages/download_zh.html new file mode 100644 index 00000000..a612474a --- /dev/null +++ b/www.i2p2/pages/download_zh.html @@ -0,0 +1,61 @@ +{% extends "_layout_zh.html" %} +{% block title %}下载{% endblock %} +{% block content %} +

下载 I2P

+

依赖关系

+Sun Java 1.5 或更高版本,或等效的 JRE。 +(推荐使用 Sun Java 1.6) +
+确定您安装的 Java 版本可以点这里 +或在命令行中输入 java -version 。 +

全新安装

+ + +以上文件的签名由 zzz 发布。 +这里有他的公钥。 + +

完成安装

+ +

在 Windows 系统中,安装程序运行后,点击 "启动 I2P" 按钮即可启动 路由控制台,里面有进一步的说明。

+ +

在类 Unix 系统中,使用 "i2prouter" 脚本可以将 I2P 以服务方式运行。该脚本位于 I2P 文件夹中。在命令行控制台中切换到以上目录,执行 "sh i2prouter status" 可以显示路由器的状态。 "start", "stop" 和 "restart" 参数可以控制服务状态。路由控制台总可以通过这个地址访问。如果用户使用 OpenSolaris 及其它不支持封装 (i2psvc) 的系统,可以通过执行 "sh runplain.sh" 启动i2p路由器。

+ +

第一次安装时,如果可能请记得 调整您的 NAT/防火墙 。 记住 I2P 所使用的公网端口(可以自定义),它与相关端口的描述在这里 。如果您在防火墙/路由器里成功的打开了TCP的入站端口,请在I2P路由的 配置 页面同时打开入站TCP功能。

+ +

同时,查看并调整设置页面中的 带宽设置 。默认的 96 KBps 下载 / 40 KBps 上传速度很缓慢。

+ +

旧版升级:

+

I2P新版发布时,通过自动和手动方式都可以更新。

+

如果你使用 0.7.5 及以后的版本,有新版发布时,路由器会自动检测到。 升级只需点一下路由控制台中新出现的 'Download Update'(下载更新) 按钮。

+

如果你还在运行 0.7.4 及更老的版本,请看 0.7.5 发布说明 了解如何设置您的路由器自动接收更新。

+

如果你还在运行 0.6.1.30 或更原始的版本, 请看有关如何设置路由器接收更新的 操作说明

+ +
    +
  1. 如果你已经按 操作说明重新设置好, 路由控制台 中会出现下载和安装新版用的链接。你只需要点一下这个链接。
  2. +
  3. 此外,你可以通过下面的方法手动更新。
  4. +
+ +

旧版升级 (手动方法):

+
    +
  1. 下载 i2pupdate-0.7.7.zip
    (SHA256 0c9d8b08d9a561d3d70d99ca6e3ccd3f0d14d3abdd5e23a598dbbf7832b7bc03 + sig) 放入 I2P 安装文件夹并 改名为 i2pupdate.zip. (此外,您还可以在得到前述的源码包后运行 "ant updater",将生成的 i2pupdate.zip 复制到您的 I2P 安装目录中)。不要将此文件解压缩。
  2. +
  3. 点击 "Graceful restart"(平滑重启)
  4. +
  5. 去喝杯咖啡,11分钟后就完成了。
  6. +
+ +本文件已由 zzz 签名, +签名公钥。 + +{% endblock %} \ No newline at end of file diff --git a/www.i2p2/pages/faq_zh.html b/www.i2p2/pages/faq_zh.html new file mode 100644 index 00000000..22387834 --- /dev/null +++ b/www.i2p2/pages/faq_zh.html @@ -0,0 +1,171 @@ +{% extends "_layout_zh.html" %} +{% block title %} +常见问答 +{% endblock %} +{% block content %} +

I2P - 常见问答

+

我想我发现了软件的一个错误,到哪报告?(链接)

+

以下这些地方都可以,你可以任选其一。

+

+

请提供 router log及wrapper log中的相关信息。

+ +

我的地址簿中缺少很多匿名小站的地址。有没有什么好的地址簿订阅链接?(链接)

+

程序默认的订阅链接为 http://www.i2p2.i2p/hosts.txt ,这个地址簿很少更新。如果你没有订阅其他的地址簿,可能总要为必须使用链接“Jump”(跳转)而烦恼。

这里有一些公共地址簿的订阅链接。你可能会愿意将其中的一两个添加到你的 susidns 订阅列表中。没有必要全部订阅,因为这些地址簿之间会周期性的相互同步。使用 cgi-bin 程序的链接会自动缩减重复记录,它们应该更加高效。注意:订阅 hosts.txt 服务存在“信任”风险。因为恶意地址簿的订阅会返回错误的地址。所以订阅前请想清楚您是否信任这些地址簿。出现在以下列表中并不代表认可。

+

+ +

What happened to *.i2p.net?What happened to jrandom?Is I2P dead?(链接)

+

+Jrandom was the lead developer of i2p and +Syndie for several years. +We expect jrandom to be absent for at least the remainder of 2008. +The *.i2p.net domains were left in a non-functioning state after a power +outage at the hosting company. +

+See this page for jrandom's parting message and additional information + on the migration of *.i2p.net to +this website. +

+I2P is not dead, it remains in active development and we anticipate +several releases in 2009. +

+ +

我的路由器非常占 CPU?!?(链接)

+

有很多原因可能造成高 CPU 占用率。这里开了一份对照表:

+ +

我反对 I2P 网络中的一些内容。如何阻止传输、保存或访问他们?(链接)

+

嗯... I2P 是个匿名网络,所以这个问题实在很难回答。I2P 设计来为任何个人使用而不检查过滤任何类型的数据。让您的计算机远离这些数据 (尽管它们已经层层加密) 的方法只有不用 I2P。Freedom of speech总会有代价。当然,让我们将你的问题分为 3 个部分来讨论:

+

+ +

我的 Active peers(活动节点) / Known peers(已知节点) / Participating tunnels (共享隧道)/ 连接数/ bandwidth (带宽)总是不停的变化!哪里出了问题?(链接)

+

不。这很正常。所有路由器都会根据网络状况和需要作出动态调整。

+ +

我的路由器已经运行几分钟了连接数仍然为0或很少。 (链接)

+

reseed (补种 - 即bootstrap引导网络启动)链接已改变。如果这是第一次安装I2P软件,又恰巧装了旧版本 (0.6.1.30 或更早),或者很早以前装的I2P很久没用了,您需要改变上面的地址并在路由控制台中选择 "Reseed"(补种)。您的路由器运行后,在 configadvanced.jsp 中添加一行 i2p.reseedURL=http://netdb.i2p2.de/i2p.reseedURL=http://i2pdb.tin0.de/netDb/ (任选其一),点击 "应用",最后点击右侧的链接 "reseed"(补种) 。

这个方法适用于 0.6.1.27 或更高版本的 I2P 。如果您在运行 0.6.1.31 或更高版本,可能用不着这样做。如果运行中的 I2P 为 0.6.1.26 或更早的版本,参见下面的 手动补种(ReSeed)操作指南 或安装 最新发布的版本。其他可能有效的方法 - 将 wrapper.java.additional.5=-Di2p.reseedURL=http://netdb.i2p2.de/ 添加至 wrapper.config 中,完全关闭再启动路由器后点 "reseed"(补种)。如果此方法可行请告诉我们。

+ +

我的路由器中Active(活动) 节点很少,是否正常?(链接)

+

如果数量大于10 就没关系。 0.6.1.31 及 0.6.1.32 版中的变化改进了路由器的效率和并有效的降低了活动节点的数量。任何时候,路由器 总是与少量的节点间维护连接。让路由器与其他节点 "较好地相连" 的最好办法是增加共享带宽。

+ +

我的路由器是否会成为访问普通互联网的 "出口节点" ?我不想做出口。(链接)

+

不。与 Tor 不同, "出口节点" 或 "出口代理" 并不是 I2P 网络固有的一部分。只有正确设置并运行额外代理程序的志愿者才能向 Internet 转接数据。只有非常非常少的人会这样做。

+ +

我无法通过 I2P 访问普通的Internet。(链接)

+

见上。I2P网络中的 HTTP "出口代理" 非常少。它们不是 I2P 网络固有的一部分,可能不在线。此外,过去的出口代理 squid.i2p, true.i2p, 和 krabs.i2p 已经销声匿迹。目前仅存的出口代理是 false.i2p。使用这个代理时,编辑 eepProxy 的 i2ptunnel 设置 并在出口代理列表中只填 'false.2p' 。然后停止并重新启动 eepProxy。如果不管用,出口代理可能目前不在线。这不是 I2P 的问题。如果你使用匿名网络的主要原因仅仅是匿名访问常规网络,可以试试 Tor

+ +

我通过 I2P 不能访问 https:// 或 ftp:// 网站。(链接)

+

I2P 网络中没有使用 HTTPS 加密的必要,因为所有数据都已经端到端加密。I2P 出于技术原因不支持FTP 。

至于通过 HTTPS 或 FTP 协议访问常规网络,问题是 I2P 网络内没人架设支持 HTTPS 或 FTP 的 "出口代理"。如果有人愿意架设,I2P完全支持 HTTPS 协议。FTP 可能不行。实际上,谈到其他任何类型的出口代理能不能用,设置好你的出口并指向(在I2P中设置的)一个标准隧道,一试便知。上面解释过多次了,任何类型的出口代理都不属于I2P网络的核心部分,他们是志愿者个人提供的服务,他们的运行并不可靠。如果你也想架设出口代理,请考虑清楚其中可能的隐患。与有关代理的外部程序架设问题可以来问,但I2P 社区不保证能提供你需要的技术帮助。

+ +

使用出口代理安全吗?(链接)

+

这需要你自己判断。这要看你在做什么,你的 安全模型是怎样的,你是否信任出口代理的管理员。

与 Tor 一样, I2P 并不能神奇地将整个Inernet加密。你可能受到出口代理管理员的侦听。 Tor 的常见问题 页面有很好的解释了这个问题。I2P 内没人架设 HTTPS 出口代理,在普通HTTP代理面前你无法隐藏自己的数据。

此外,如果你使用了相同的隧道("共享客户端"),还可能受到出口代理及其他I2P服务管理员间的共谋攻击。 zzz.i2p上有关于这一点的进一步讨论。

+ +

如何访问常规 Internet 上的 IRC、 BT 或其他服务?(链接)

+

不能。必须有人为这些服务架设出口代理。目前只有两种服务有出口代理: HTTP 和 电子邮件。还没有 SOCKS 出口代理。如果需要 SOCKS 出口代理,也许你该尝试 Tor

+ +

I2P 中的很多匿名站点(eepsite)都下线了吗?(链接)

+

如果你指过去曾出现过的所有eepsite,是的,大部分都下线了。eepsite和创建它的人们来来去去。开始 I2P 之旅的第一步最好是查看一下都有哪些eepsite网站在线。inproxy.tino.i2pperv.i2p 会跟踪活动的 eepsite 站点。

+ +

如何建立我自己的 eepsite 站点?(链接)

+

点一下路由控制台顶部的 我的 Eepsite 链接 ,里面有详细的操作指南。

+ +

为什么 I2P 这么慢?(链接)

+

为什么用 I2P 下载,BT,看网页等等都比正常慢?I2P网络内数据的加密和路由增加了额外的数据量,限制了带宽。 匿名总要有代价。

+

此外,大家可能需要放宽带宽限制。两个主要设置项是 configuration(配置)页面 入站和出站带宽限制。在默认设置 32KBps 下, I2PSnark 的速度一般不会超过 15KBps 。增大这些设置 (在实际带宽范围内) 将增加 I2PSnark 及其他潜在程序的速度。

此外,你是否已经设置了足够的共享带宽,允许共享隧道经过您的路由器呢?信不信由你,打开共享流量能够保持路由器在 I2P 网络中有效整合,帮助获得更好的传输速度。

I2P 仍在改进中。很多改进和修正在不断地应用到 I2P 中。总的来说,运行最新版会得到更好的性能。如果还没有 安装最新版

+ +

有关 Bittorrent / I2PSnark / Azureus I2P 插件的问题?(链接)

+

参见 I2P Bittorrent 常见问答 (公网链接) + +

如何连接 I2P 内的 IRC 服务器?(链接)

+

I2PTunnel configuration(I2P隧道配置)页面中,启动 ircProxy。之后通过 IRC 客户端连接到本机 localhost 的 6668 端口。

怎样远程访问I2P的Web控制台或使用密码保护?(链接)

+

出于安全考虑,I2P 路由的管理员控制台默认监听于本地接口。不过远程访问的设置也很简单:

+ +
    +
  1. 打开文件 clients.config 将
    clientApp.0.args=7657 127.0.0.1 ./webapps/
    替换为
    clientApp.0.args=7657 0.0.0.0 ./webapps/
  2. +
  3. 转到 http://localhost:7657/configadvanced.jsp 并插入新选项: consolePassword=foo (或你需要的其他密码)
  4. +
  5. 转到 http://localhost:7657/index.jsp 点 "Graceful restart", 重启Java虚拟机重新载入客户端程序
  6. +
+ +

启动后,就可以远程访问控制台了。控制台会询问用户名和密码,用户名为 "admin" 密码为刚刚你在第二步中设置的密码。注意: 上面的 0.0.0.0 设置了 网络接口,而非网络地址或子网掩码。0.0.0.0 表示 "绑定到所有接口",这样 127.0.0.1:7657 和任何 LAN/WAN IP都可以访问。

+ +

如何使用远程计算机上的程序?(链接)

+

默认情况下, 路由器的 I2CP 界面 (端口 7654) 绑定在 127.0.0.1上。要与 0.0.0.0 绑定,可以设置路由器高级设置选项为 i2cp.tcp.bindAllInterfaces=true 并重启。

+ +

什么是 "eepsite" ?(链接)

+

eepsite 是匿名运行的站点 - 可以通过I2P的HTTP代理(一般是 localhost:4444)浏览。

+ +

控制台中的 Active x/y 数字是什么意思?(链接)

+

x 为最近一分钟内路由器曾与其成功收发消息的节点数量, y 为最近一小时内发现的节点数量。

+ +

能否将 I2P 作为 SOCKS 代理使用?(链接)

+

I2P 自 0.7.1 版开始支持 SOCKS 代理(与Tor类似)。I2P 支持 SOCKS 4/4a/5 。由于没人架设 SOCKS 出口代理,所以此功能用途有限。

而且,很多程序可能泄露敏感信息。I2P 只能过滤连接数据,如果你使用的程序会将敏感信息作为数据内容发送,I2P则无法保护你的匿名性。例如,一些电子邮件客户端会将用户的IP发送给邮件服务器。 I2P 无法过滤这些信息,因此通过 I2P 'socksify' 普通程序是可行的但存在风险。

要了解更多有关 socks 代理程序的信息。socks 页面 中有些有用的提示。

+ +

I2P 使用哪些端口?(链接)

+

下面是默认端口列表, (当然,所有端口通过参数都可以自定义):

+ +

+

+ + +

+ +

本地的 I2P 端口和 I2PTunnel(I2P隧道)端口不需要允许外部计算机访问,但本地计算机 *应该* 可以访问。你也可以通过 I2PTunnel页面 http://localhost:7657/i2ptunnel/ 创建其他的I2P隧道实例。(此后,可能需要在防火墙中允许本地地址访问这些端口,除非有需要不要放行远程访问。)

+ +

总的来说,I2P不需要远程节点连入,但如果你能设置你的NAT/防火墙允许到本地8887端口的UDP或TCP连接,I2P会获得更好的性能。此外I2P还必须能够向任意远程节点发送UDP出站数据包 (使用PeerGuardian之类的软件随机封堵IP只会让你的体验变糟,不要这样做)。

+ +

如何手动补种(帮助网络启动)?(链接)

+

I2P 路由器只需要补种一次,以便它在第一次启动后能找到I2P网络。补种不过就是向预定义的URL发送 HTTP GET 请求获取目录列表并下载一些 "routerInfo" 文件。

+ +

自动补种失败的常见症状是(路由控制台左侧的已知节点) "Known" 显示的数值很小 (通常少于5个) 且不增长。如果防火墙限制出站通信,拦截了连接补种请求,就会发生这种情况。

+ +

为 I2P 路由器手动补种方法如下:

+

+ +
+

我有问题要问!(链接)

+

太棒了!来 IRC irc.freenode.net #i2p 找我们聊聊或到 论坛 发帖,我们会把你的问题(很可能连同回答)添加到这里。

+{% endblock %} diff --git a/www.i2p2/pages/index_zh.html b/www.i2p2/pages/index_zh.html new file mode 100644 index 00000000..1224649c --- /dev/null +++ b/www.i2p2/pages/index_zh.html @@ -0,0 +1,53 @@ +{% extends "_layout_zh.html" %} +{% block title %}I2P Anonymous Network{% endblock %} +{% block content %} + +
+
+最新版本: +
+2009-07-31 - I2P 0.7.7 - {{ urlify("release-0.7.7", "Announcement", "html")}} +- 下载 +
+2007-09-28 - Syndie 1.101a - + +- 下载 +
+
+最新动态:
+2009-10-12 - I2P 0.7.7 +Released +
+2009-07-31 - I2P 0.7.6 +Released +
+2009-06-29 - I2P 0.7.5 +Released +
+2009-06-13 - I2P 0.7.4 +Released +
+
+
+

I2P 是一个匿名网络项目,它提供了一个简单的网络层供对身份敏感的程序进行安全的匿名通讯。I2P 网络是动态的分布式网络,它在设计上并不信任网络中的任何一方,其中的所有数据都经过多层加密。

+ +

很多程序可以使用 I2P,他们的用途涉及 Email,P2P,IRC 聊天等。

+ +

I2P 项目成立于 2003 年意在为建立和谐社会的人们提供一套安全、匿名、免受审查的通讯系统。I2P 的开发致力于建立一套低延迟、全分布式、自主管理、可扩展、适应性强的匿名安全网络。它的目标在于能够在充满敌意的网络环境内成功运行。~I2P网络的各个部分都是开源免费的,这既可以保证 I2P 软件的真实有效,又方便人们捐献代码帮助 I2P 改进。

+ +

匿名性不存在是和否这样的绝对状态 - I2P的努力不并在于实现所谓的 "完美匿名",而在于让针对匿名性的攻击消耗更多的资源以至于难以进行。I2P 属于低延迟混淆网络(例如Tor网络),这种类型的网络系统所提供的匿名性存在限制,但基于I2P的程序例如Syndie, I2P Mail,及 I2PSnark 扩展了它并提供了额外的功能性和保护。

+ +

I2P 仍然处于开发状态目前 I2P 网络的规模还不大,缺乏广泛的学术审查,请不要指望它特供“有保证”的匿名性。出于低延迟混淆网络(例如Tor网络)自身的限制,在拥有无限资源的攻击者面前,I2P 并不是无懈可击的。

+ +

I2P 运行时通过其他节点路由数据,其工作方式见下图。所有数据均经过端到端加密。关于 I2P 工作原理的更多信息请看 介绍. +

+

+
+端到端加密 +
+
+

+ +{% endblock %} diff --git a/www.i2p2/pages/installation_zh.html b/www.i2p2/pages/installation_zh.html new file mode 100644 index 00000000..e3369ff4 --- /dev/null +++ b/www.i2p2/pages/installation_zh.html @@ -0,0 +1 @@ +{% extends "_layout_zh.html" %} {% block title %}安装{% endblock %} {% block content %}详情参见 下载 页面。{% endblock %} \ No newline at end of file diff --git a/www.i2p2/pages/links_zh.html b/www.i2p2/pages/links_zh.html new file mode 100644 index 00000000..01947778 --- /dev/null +++ b/www.i2p2/pages/links_zh.html @@ -0,0 +1,35 @@ +{% extends "_layout_zh.html" %} +{% block title %} +链接 +{% endblock %} +{% block content %} +

推荐链接 & 资源

+ +{% endblock %} diff --git a/www.i2p2/pages/not_found_zh.html b/www.i2p2/pages/not_found_zh.html new file mode 100644 index 00000000..95b66982 --- /dev/null +++ b/www.i2p2/pages/not_found_zh.html @@ -0,0 +1,7 @@ +{% extends "_layout_zh.html" %} +{% block title %} +未找到 +{% endblock %} +{% block content %} +您搜索的页面或资源的名称不正确或不存在或已被删除。 +{% endblock %} \ No newline at end of file diff --git a/www.i2p2/static/images/endToEndEncryption_zh.png b/www.i2p2/static/images/endToEndEncryption_zh.png new file mode 100644 index 0000000000000000000000000000000000000000..480426e51a1acd8f9b7addcf99f2843ac2fa2127 GIT binary patch literal 11997 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 O0000