这是我自建AIM服务器的方法

Lobsters Hottest 工具

摘要

一份使用Debian Trixie上的Open OSCAR Server搭建个人AIM服务器的指南,涵盖安装、配置和防火墙设置。

<p><a href="https://lobste.rs/s/4dcp6w/here_s_how_i_host_my_own_aim_server">评论</a></p>
查看原文
查看缓存全文

缓存时间: 2026/07/17 02:02

# 这是我自行托管 AIM 服务器的方法 来源:https://veronicaexplains.net/open-oscar-server/ 高中时,每天的开始和结束几乎都离不开 AIM。 那时候大家还没有短信(甚至没有手机)。从课堂项目到整个恋情,都在 AIM 窗口中展开。不用多说,我对它颇有怀旧之情。 最近 Discord 用得不太顺心,所以我决定试试Open OSCAR Server (https://github.com/mk6i/open-oscar-server?ref=veronicaexplains.net),它可以让你搭建一个 AIM/ICQ 服务器,并连接许多旧版客户端。尝试后我很庆幸自己这么做了! 我在最近的一个视频中更深入地讨论了这一点(YouTube (https://www.youtube.com/watch?v=VDQTuJWST4M&ref=veronicaexplains.net) / PeerTube (https://makertube.net/w/dVCTYsbMqChaWktWDZNmMd?ref=veronicaexplains.net)),我的朋友 Kate(Macintosh Librarian (https://www.macintoshlibrarian.com/?ref=veronicaexplains.net))也发布了一个视频 (https://www.youtube.com/watch?v=KxKeugklbXM&ref=veronicaexplains.net),更详细地介绍了 AIM。但我想写一篇博客文章,详细说明我是如何托管它的。也许它能帮助你再次体验 AIM! ## 设置 Debian Trixie 服务器 我不会详细讲解如何*安装*Debian Trixie……那是另一个完全不同的话题,这篇博文假设你已经掌握了相关信息。 如果你不打算与成百上千的用户聊天,那么在一台低配的 VPS 上运行它非常容易。我一开始在家托管,后来与朋友共享时转移到了最低档的 VPS。它也可能在树莓派上运行,不过我还没有尝试过。 如果你在家托管,或者在其他防火墙后面,你需要为 AIM 开放一个端口(默认是 5190)。客户端会通过该端口连接。有些客户端可能不容易切换端口,所以最好坚持使用默认端口。 如果你在家托管且没有静态 IP 地址,你需要一个动态 DNS 提供商。我个人使用 No-IP(非赞助),结果令人满意,但处理动态 DNS 对新手来说可能有挑战:如果你愿意每月花费 5-10 美元,云提供商会让这变得容易得多(而且有静态 IP)。关键是你的服务器可以通过固定 IP 地址或域名访问,并且开放了那个端口(默认 5190)。 我还建议设置防火墙,在配置 Open OSCAR Server 期间,拒绝来自非你源地址的流量。服务器的默认设置相当开放,这对于家庭网络中的有趣项目来说很好,但不太适合在互联网上共享,所以在锁定这些设置之前,防火墙规则是你的朋友。 ## 安装 Open OSCAR Server 并进行测试 ### 下载 Open OSCAR Server Open OSCAR Server 使用 GitHub 发布版本。前往仓库 (https://github.com/mk6i/open-oscar-server/?ref=veronicaexplains.net) 获取一个发布版本。 我更喜欢通过 SSH 进入服务器后使用 `wget` 来执行此操作: ``` wget [发布版本的 URL] ``` 当然,将 `[发布版本的 URL]` 替换为项目中 `.tar.gz` 文件的实际 URL。 然后,下载后使用 `tar` 解压: ``` tar -zxvf open_oscar_server.X.XX.X.linux.x86_64.tar.gz ``` 同样,将 `X.XX.X` 替换为下载的版本号。 ### 测试 Open OSCAR Server 如果你只是在本地机器上运行,可能可以直接 `cd` 进入刚刚创建的子目录并运行程序。但如果你像我一样想在其他机器上运行,那么在开始聊天之前我们还需要进行更多配置。 我首先用 `cd` 进入子目录,然后用我最喜欢的文本编辑器编辑 `settings.env` 文件。 Open OSCAR Server 有三种监听客户端连接的模式: - `LOCAL`,这是默认模式:你的 AIM 客户端与服务器在同一台机器上。除非你知道自己在做什么,否则可能不需要这个模式。 - 在 `LAN` 模式下,Open OSCAR Server 与 AIM 客户端位于同一内部网络。如果你计划在家中的计算机之间聊天,而不是通过互联网,那么这可能就是你想要的。 - 或者在 `WAN` 模式下,Open OSCAR Server 通过互联网与你的 AIM 客户端连接。如果你打算与家庭网络之外的朋友共享服务器,那么这可能就是你想要的。 为了测试,我在 `settings.env` 中设置了两个变量: - `OSCAR_LISTENERS`,配置 Open OSCAR Server 如何监听连接 - `OSCAR_ADVERTISED_LISTENERS_PLAIN`,配置应提供给 AIM 等客户端的广播监听器 对于后者,你还应该使用计划提供给客户端的 IP 地址或域名来设置它。 例如,如果你在域名为 example.domain 的 VPS 上公开共享,你可以将 `OSCAR_LISTENERS` 设置为 `WAN://0.0.0.0:5190`,将 `OSCAR_ADVERTISED_LISTENERS_PLAIN` 设置为 `WAN://example.domain:5190`。如果你在网络内部,则将 `WAN` 替换为 `LAN`,并将示例域名替换为你分配给服务器的任何 IP 地址。 配置文件本身解释得很好。重要的是它们要匹配:`LAN` 与 `LAN`,或 `WAN` 与 `WAN`,或两者都匹配。 配置完成后,你应该可以用 `./open_oscar_server` 运行它,然后配置你的客户端。 ### 配置客户端 可能有一千种不同的客户端,但重要的是许多版本的 AIM 都有一个配置部分,你可以将默认的(已失效的)`login.oscar.aol.com` 替换为你在 `OSCAR_ADVERTISED_LISTENERS_PLAIN` 中指定的内容。在 AIM 5.1 中(我正在我的机器上使用),它在“设置”中,然后点击那个大大的“配置”按钮。 一旦你在设置中替换了那个 URL,应该很简单:只需输入任意用户名,任意密码,就应该能登录成功。 让朋友也这样做。如果你设置为 LAN 模式,他们必须在你的网络上。如果你设置为 WAN 模式,你需要让他们通过任何防火墙等,但应该可以工作!至少对我来说是这样的!:) ## 使用 systemd 控制 Open OSCAR Server 我是不是要惹麻烦了? Open OSCAR 自带一个 systemd 服务,这使得在你未 SSH 进入时运行服务器变得轻而易举。 文档详细介绍了如何设置(https://github.com/mk6i/open-oscar-server/blob/main/docs/SYSTEMD.md?ref=veronicaexplains.net),所以我不想直接复制粘贴他们的内容:如果你希望在未连接时让服务器运行,你应该去按照那个做。 ## 让用户认证真正生效 现在 Open OSCAR Server 即使在我们未登录时也能运行了,我们需要让它*真正需要*密码才能登录。 为此,我喜欢使用 `systemctl edit --full`,它会用默认编辑器编辑我们刚刚安装的服务文件: ``` sudo systemctl edit --full ras.service ``` 进入文件后,我们需要设置环境变量 `DISABLE_AUTH`。 这个变量有些令人困惑地以双重否定的形式出现,需要设置为 `false` 才能*要求*授权。我本来会把它叫做 "REQUIRE_AUTH",但无所谓了。 在文件中,在 `[Service]` 下,找到那个 `DISABLE_AUTH` 变量并修改: ``` Environment="DISABLE_AUTH=false" ``` 修改后保存文件。然后,由于我们更改了一个 systemd 守护进程,需要重新加载: ``` sudo systemctl daemon-reload ``` 现在,尝试用你之前使用的相同用户名和密码登录。应该可以了!如果不行,考虑通过 API 添加新用户。 ## 通过 API 添加/修改用户 现在 `DISABLE_AUTH` 设置为 `false`,我们需要一种方法来添加用户或更新密码。幸运的是,Open OSCAR Server 可以通过 API 做到这一点,只需几个关键命令。如果你还没有 `curl`,需要安装它。 ### 向 Open OSCAR Server 添加用户 要添加用户,我们需要使用 `curl` 向服务器在端口 8080 上提交用户名和密码: ``` curl -d'{"screen_name":"NEWUSERNAME", "password":"NEWPASSWORD"}' http://localhost:8080/user ``` 好,这里解释一下: - 使用 `curl` 的 `-d` 选项表示我们发送 `POST` 数据。 - 在大括号内,我们发送两个键值对:一个用于 `screen_name`,另一个用于 `password`。 - 我们将这个 `POST` 数据发送到 Open OSCAR Server 的 endpoint `http://localhost:8080/user`。 ### 更新 Open OSCAR Server 中用户的密码 更新用户密码的过程类似,但略有不同: ``` curl -X PUT -d'{"screen_name":"NEWUSERNAME", "password":"NEWPASSWORD"}' http://localhost:8080/user/password ``` 再次解释 `curl`: - 这次我们使用 `-X PUT` 选项,因为更新已有用户需要 `PUT` 而不是 `POST`。 - 大括号内的键值对与之前相同,但现在 `screen_name` 必须是已经存在的用户名。 - API 的 endpoint 现在是 `http://localhost:8080/user/password`。 你可以通过 API 做更多事情,包括删除用户、添加聊天室等。幸运的是,文档是你的朋友 (https://github.com/mk6i/open-oscar-server?ref=veronicaexplains.net#macos--linux--freebsd)。 ## 备份 Open OSCAR Server 总的来说,这个项目涉及一个 SQLite 数据库和一些配置文件。管理备份非常容易。 我的 VPS 每晚进行完整系统备份,效果很好。我已经测试过恢复,一切正常。 在进行重大更改之前,我会确保停止服务器,然后用 `rsync` 将工作目录的内容同步到我的备份机器上。使用像 Borgmatic (https://torsion.org/borgmatic/?ref=veronicaexplains.net) 这样的工具会让这个过程更简单,我计划在后续文章中深入介绍。

相似文章

mikeroyal/Self-Hosting-Guide

GitHub Trending (daily)

全面指南,介绍如何在本地自托管软件应用程序,涵盖云服务、LLM、WireGuard、自动化、Home Assistant 和网络。