简介
随着人们对个人隐私和数据安全的关注日益增加,许多用户希望摆脱商业搜索引擎的控制。YaCy 是一个去中心化的对等搜索引擎,旨在解决数据隐私问题。它没有中央服务器存储用户数据,而是通过连接运行 YaCy 的节点网络,创建分布式网站索引。本指南将介绍如何在 Ubuntu 20.04 VPS 上安装和配置 YaCy,用于为全球对等网络贡献索引或为个人网站创建搜索功能。
安装 YaCy
1. 安装依赖
YaCy 依赖较少,主要需要 OpenJDK。以下命令安装 OpenJDK 11(推荐版本):
sudo apt-get update
sudo apt-get install openjdk-11-jdk
安装完成后,验证 Java 版本:
java -version
2. 下载 YaCy
访问 YaCy 官方网站 下载最新版本。右键复制 GNU/Linux 的下载链接,或者使用以下命令直接下载(版本号可能需要更新):
cd ~
wget http://yacy.net/release/yacy_v1.92_20250722_9000.tar.gz
解压文件:
tar xzvf yacy_v1.92_20250722_9000.tar.gz
解压后,YaCy 的安装文件将位于 ~/yacy
目录中。
启动 YaCy
1. 配置管理员账户
进入 YaCy 目录并编辑默认配置文件:
cd ~/yacy
nano defaults/yacy.init
找到 adminAccount
参数,默认如下:
adminAccount=
adminAccountBase64MD5=
adminAccountUserName=admin
修改为以下格式,设置管理员用户名和密码:
adminAccount=admin:your_secure_password
adminAccountBase64MD5=
adminAccountUserName=admin
保存并关闭文件。
2. 启动服务
运行以下命令启动 YaCy:
./startYACY.sh
YaCy 将在默认端口 8090 上运行。
访问 YaCy Web 界面
在浏览器中访问以下地址:
http://your_server_ip:8090
你将看到 YaCy 的主搜索页面,类似传统搜索引擎界面。你可以直接使用搜索栏,也可以通过“管理”链接进入配置界面。
配置基本设置
- 语言:选择适合你的语言。
- 使用模式:
- 全球搜索网络(默认):加入对等网络,参与全球网页索引。
- 网站搜索门户:为特定网站创建搜索功能。
- 本地网络索引:为本地网络创建索引。
选择“全球搜索网络”以加入对等网络。
- 对等名称:为你的 YaCy 实例设置唯一名称,方便多实例区分。
- 路由器配置:VPS 通常无需配置路由器,保持默认设置。
点击“设置配置”保存更改。
为全球索引贡献内容
YaCy 的搜索效果依赖于对等节点的贡献。你可以通过抓取网站为分布式索引添加内容。
- 在左侧菜单中,点击“索引生成” > “抓取工具/收割机”。
- 在“开始网址”字段输入要索引的 URL(例如
http://example.com
)。 - 选择抓取选项:
- 抓取整个域名:索引域名下的所有链接。
- 仅抓取子路径:仅索引指定 URL 的子页面。
- 设置抓取文档数量限制(可选)。
- 点击“开始新抓取”。
抓取进度可在“创建监视器”页面查看。YaCy 将以每秒 2 个请求的速率抓取,直到达到限制或链接耗尽。
为网站配置 YaCy 搜索
YaCy 可为你的网站提供定制化搜索功能。以下是如何设置:
1. 配置为网站搜索门户
在“对等控制” > “管理控制台” > “基本配置”页面,选择“为您自己的网页搜索门户”选项,点击“设置配置”。
2. 抓取网站
返回“抓取工具/收割机”,输入你的网站 URL(例如 http://yourdomain.com
),选择抓取选项并开始抓取。
3. 集成搜索到网站
- 前往“搜索设计” > “搜索集成到外部网站”。
- 选择“通过选定的 YaCy Peer 进行远程访问”,复制自动生成的 HTML 代码。
- 在你的网站上创建搜索页面(例如
search.html
),并嵌入以下代码(需替换 IP 和端口):
<html>
<head>
<title>Search Page</title>
</head>
<body>
<h1>搜索你的网站</h1>
<script src="http://your_server_ip:8090/jquery/js/jquery-1.7.min.js" type="text/javascript"></script>
<script>
$(document).ready(function() {
yconf = {
url: 'http://your_server_ip:8090',
title: 'YaCy Search Widget',
logo: '/yacy/ui/img/yacy-logo.png',
link: 'http://www.yacy.net',
global: false,
width: 500,
height: 600,
position: ['top', 30],
theme: 'start'
};
$.getScript(yconf.url + '/portalsearch/yacy-portalsearch.js', function(){});
});
</script>
<div id="yacylivesearch">
<form id="ysearch" method="get" accept-charset="UTF-8" action="http://your_server_ip:8090/yacysearch.html">
实时搜索 <input name="query" id="yquery" class="fancy" type="text" size="15" maxlength="80" value=""/>
<input type="hidden" name="verify" value="cacheonly" />
<input type="hidden" name="maximumRecords" value="20" />
<input type="hidden" name="resource" value="local" />
<input type="hidden" name="urlmaskfilter" value=".*" />
<input type="hidden" name="prefermaskfilter" value="" />
<input type="hidden" name="display" value="2" />
<input type="hidden" name="nav" value="all" />
<input type="submit" name="Enter" value="搜索" />
</form>
</div>
</body>
</html>
- 保存文件并通过浏览器访问
http://your_web_domain/search.html
。输入搜索词后,你将看到与你网站相关的结果。
结论
YaCy 提供了灵活的搜索解决方案。你可以将其用于:
- 贡献全球索引:通过抓取网站为去中心化搜索网络做贡献,打造隐私友好的搜索引擎替代方案。
- 网站搜索:为你的网站创建定制化搜索功能。
YaCy 的去中心化设计使其成为保护隐私的强大工具,适合个人和开发者探索使用。