- Dùng [Open OSCAR Server] có thể triển khai máy chủ AIM/ICQ trên máy chủ Debian để kết nối lại nhiều client trên môi trường cũ, bao gồm cả Windows 98
- Với quy mô nhỏ, VPS cấu hình thấp là đủ, nhưng nếu muốn dùng với bạn bè bên ngoài thì cần cổng mặc định 5190, IP tĩnh hoặc DNS động, cùng cấu hình tường lửa phù hợp để công khai trên Internet
- Cần chỉnh
settings.env với OSCAR_LISTENERS và OSCAR_ADVERTISED_LISTENERS_PLAIN theo chế độ LAN hoặc WAN, đồng thời đổi để client AIM kết nối tới máy chủ riêng thay vì máy chủ AOL đã ngừng hoạt động
- Ở trạng thái mặc định, có thể đăng nhập bằng screen name và mật khẩu bất kỳ, nên cần bật xác thực mật khẩu bằng
DISABLE_AUTH=false và quản lý tài khoản qua API
- Vì trạng thái máy chủ được lưu trong cơ sở dữ liệu SQLite và tệp cấu hình, có thể duy trì môi trường AIM có thể khôi phục bằng sao lưu toàn bộ hằng đêm hoặc sao chép
rsync sau khi dừng máy chủ
Vì sao lại vận hành AIM thay cho Discord
- Trước khi điện thoại di động và tin nhắn văn bản trở nên phổ biến, rất nhiều hoạt động từ dự án ở trường tới các mối quan hệ cá nhân đều diễn ra trong cửa sổ AIM, và trải nghiệm đó đã để lại cảm giác hoài niệm với AIM
- Gần đây trải nghiệm dùng Discord không tốt nên đã thử Open OSCAR Server, và có thể kết nối nhiều client cũ khác nhau vào máy chủ AIM/ICQ tự vận hành
- Quá trình thiết lập cũng được đề cập trong video YouTube và video PeerTube, còn video riêng của Macintosh Librarian giới thiệu chi tiết hơn về chính AIM
Chuẩn bị máy chủ Debian Trixie
- Mục tiêu cài đặt là Debian Trixie, còn quá trình cài hệ điều hành thì không được đề cập ở đây
- Nếu không định trò chuyện với hàng trăm người, có thể vận hành trên cả VPS cấu hình thấp
- Ban đầu host ở nhà, nhưng sau khi bắt đầu chia sẻ với bạn bè thì đã chuyển sang gói VPS rẻ nhất
- Có khả năng cũng chạy được trên Raspberry Pi, nhưng chưa tự kiểm thử
- Nếu vận hành ở nhà hoặc sau tường lửa, cần mở cổng mặc định 5190 để client AIM kết nối
- Một số client không dễ đổi cổng, nên tốt hơn là giữ cổng mặc định
- Trong môi trường gia đình không có IP tĩnh, cần dùng DNS động
- Dịch vụ đã dùng trực tiếp là No-IP và kết quả khá hài lòng
- Nếu không quen với DNS động, có thể dùng máy chủ đám mây giá 5~10 USD mỗi tháng để có IP tĩnh và cấu hình đơn giản hơn
- Dù chọn cách nào, máy chủ vẫn phải truy cập được qua IP tĩnh hoặc tên miền và cổng 5190 phải mở
- Giá trị mặc định của Open OSCAR Server thuận tiện để thử trong mạng gia đình nhưng không phù hợp để công khai trên Internet
- Trước khi siết chặt cấu hình, nên chỉ cho phép lưu lượng của chính bạn và chặn kết nối từ nguồn khác ở tường lửa
Cài đặt Open OSCAR Server
wget [RELEASE URL]
- Cần thay
[RELEASE URL] bằng địa chỉ tệp phát hành thực tế
- Giải nén tệp đã tải bằng
tar
tar -zxvf open_oscar_server.X.XX.X.linux.x86_64.tar.gz
- Thay
X.XX.X bằng số phiên bản thực tế đã tải
Thiết lập chế độ lắng nghe và địa chỉ máy chủ
- Nếu chỉ chạy trên máy cục bộ, có thể di chuyển vào thư mục con đã giải nén và chạy ngay
- Nếu muốn cho client từ máy khác kết nối, cần chỉnh
settings.env
- Open OSCAR Server hỗ trợ ba chế độ lắng nghe client
LOCAL: mặc định, dùng khi client AIM và máy chủ ở cùng một máy
LAN: dùng khi máy chủ và client AIM ở cùng mạng nội bộ và không đi qua Internet
WAN: dùng khi kết nối client AIM của bạn bè bên ngoài qua Internet
- Trong
settings.env, cần thiết lập đồng thời hai biến
OSCAR_LISTENERS: chỉ định cách Open OSCAR Server nhận kết nối
OSCAR_ADVERTISED_LISTENERS_PLAIN: chỉ định địa chỉ máy chủ sẽ thông báo cho client như AIM
- Nếu là VPS công khai với tên miền
example.domain, có thể cấu hình như sau
OSCAR_LISTENERS=WAN://0.0.0.0:5190
OSCAR_ADVERTISED_LISTENERS_PLAIN=WAN://example.domain:5190
- Trong mạng nội bộ, thay
WAN bằng LAN và dùng địa chỉ IP được gán cho máy chủ thay vì tên miền
- Chế độ của hai biến bắt buộc phải khớp nhau, như
LAN và LAN, hoặc WAN và WAN
- Cũng có thể cấu hình để chỉ định cả hai chế độ trong cả hai biến
- Sau khi cấu hình xong, chạy thử máy chủ bằng lệnh sau
./open_oscar_server
Kết nối client AIM
- Trong nhiều phiên bản AIM, có thể thay máy chủ đăng nhập mặc định
login.oscar.aol.com hiện đã ngừng hoạt động bằng địa chỉ khác
- Trong AIM 5.1, đổi địa chỉ máy chủ qua nút
Configuration lớn trong Setup
- Chỉ cần thay địa chỉ máy chủ đăng nhập mặc định bằng địa chỉ đã chỉ định trong
OSCAR_ADVERTISED_LISTENERS_PLAIN
- Trước khi tăng cường xác thực, có thể đăng nhập bằng screen name và mật khẩu bất kỳ
- Điều kiện truy cập của người dùng khác thay đổi theo chế độ máy chủ
- Ở chế độ
LAN, họ phải ở cùng mạng với máy chủ
- Ở chế độ
WAN, cần cấp quyền truy cập để người dùng bên ngoài đi qua tường lửa
Chạy máy chủ liên tục bằng systemd
- Open OSCAR Server đi kèm dịch vụ systemd để máy chủ tiếp tục chạy kể cả sau khi kết nối SSH bị ngắt
- Việc cài đặt và cấu hình dịch vụ chỉ cần làm theo tài liệu SYSTEMD của dự án
Bật xác thực mật khẩu
- Ở trạng thái mặc định, hệ thống không kiểm tra mật khẩu thực tế, nên cần thay đổi
DISABLE_AUTH trong tệp dịch vụ systemd
- Chỉnh sửa toàn bộ tệp dịch vụ bằng trình soạn thảo mặc định với lệnh sau
sudo systemctl edit --full ras.service
- Đặt biến môi trường dưới
[Service] như sau
Environment="DISABLE_AUTH=false"
- Vì tên biến ở dạng phủ định kép, muốn yêu cầu xác thực thì giá trị phải là
false
- Sau khi lưu tệp dịch vụ, nạp lại cấu hình daemon của systemd
sudo systemctl daemon-reload
- Sau đó thử đăng nhập lại bằng screen name và mật khẩu cũ; nếu thất bại thì có thể tạo người dùng mới qua API
Quản lý người dùng và mật khẩu qua API
- Sau khi bật xác thực, quản lý người dùng và mật khẩu bằng API của Open OSCAR Server cùng
curl
-
Thêm người dùng
curl -d'{"screen_name":"NEWUSERNAME", "password":"NEWPASSWORD"}' http://localhost:8080/user
- Dùng tùy chọn
-d của curl để gửi dữ liệu POST
- Trong phần thân JSON, thêm các khóa
screen_name và password
- Đích của yêu cầu là endpoint
http://localhost:8080/user trên máy chủ cục bộ
-
Đổi mật khẩu người dùng hiện có
curl -X PUT -d'{"screen_name":"NEWUSERNAME", "password":"NEWPASSWORD"}' http://localhost:8080/user/password
- Khi cập nhật người dùng hiện có, dùng
-X PUT thay vì POST
screen_name phải là screen name đã tồn tại
- Endpoint đổi mật khẩu là
http://localhost:8080/user/password
- API cũng hỗ trợ xóa người dùng, thêm phòng chat và nhiều chức năng khác; xem thêm trong tài liệu dự án
Sao lưu và khôi phục
- Trạng thái chính của Open OSCAR Server gồm cơ sở dữ liệu SQLite và tệp cấu hình, nên việc sao lưu khá đơn giản
- Toàn bộ hệ thống VPS được sao lưu mỗi đêm và các thử nghiệm khôi phục cũng hoạt động đúng như dự kiến
- Trước các thay đổi lớn, có thể dừng máy chủ rồi sao chép toàn bộ thư mục làm việc sang máy sao lưu bằng
rsync
- Dùng Borgmatic có thể giúp đơn giản hóa quy trình sao lưu hơn nữa, và điều này dự kiến sẽ được nói kỹ hơn trong bài viết tiếp theo
1 bình luận
Ý kiến trên Lobste.rs
Đọc khá thú vị, nhưng nếu nghĩ rằng ngày xưa không có nhiều loại trình nhắn tin thì là một ngộ nhận. Nhiều người đã dành rất nhiều thời gian trên AIM hay MSN, nhưng tôi và bạn bè ở trường thì không dùng cả hai mà chuyển từ ICQ sang IRC, và mức độ phân mảnh dịch vụ cũng không hẳn tốt hơn bây giờ
https://nugget.livejournal.com/97081.html
Một tháng sau còn có cả bài viết tiếp theo sau khi nhận được phản hồi từ Google
https://nugget.livejournal.com/103322.html
Cũng có một video nói về chủ đề này. Tôi đã định tự đăng nó, nhưng lại phân vân không biết nên giữ tiêu đề gốc hơi mang tính câu kéo, hay dùng tiêu đề do DeArrow cung cấp
Khá thú vị, nhưng khi đọc bài tôi cứ chờ câu trả lời cho “thế rồi sau đó thì sao?”. Nếu không liên kết với các máy chủ khác, thì có phải tất cả những người muốn trò chuyện đều phải ở cùng một máy chủ không, hay nó chỉ để tự nói chuyện một mình?
Bài viết không bỏ lỡ ảnh chụp màn hình kinh điển lẽ ra phải có ngay ở phần mở đầu. Tính thực dụng và hữu ích của phần mềm thời đó thực sự đã được trau chuốt rất kỹ
Bản thân tôi không quan tâm đến AIM, nhưng nhìn mọi người mò lại công nghệ cũ vẫn rất vui. Xem thêm các bài khác của tác giả xong lại thấy như sắp rơi vào thêm vài hố khám phá nữa, mà điều đó cũng chẳng tệ
Tôi hoàn toàn không nhớ nhung thời ICQ và AIM, nhưng vào giai đoạn cuối của thời đó đã từng có một thời kỳ hoàng kim ngắn ngủi của ngành. Nhờ XMPP có thể liên kết liên máy chủ và các gateway nối sang những giao thức khác, bạn có thể tự dựng máy chủ hoặc đặt tài khoản trên máy chủ của người khác rồi trò chuyện với bất kỳ ai
Dù vẫn phải duy trì tài khoản trên các mạng được kết nối qua gateway, nhưng phần lớn chỉ cần chỉnh sửa rất ít, và với một tài khoản bạn có thể trò chuyện với người dùng Google Talk, Facebook Messenger, ICQ và MSN. Chỉ riêng Skype là ngoan cố từ chối khả năng tương thích
Giờ đây văn hóa đã thay đổi đến mức đáng kinh ngạc: ngay cả Signal, dù là mã nguồn mở, cũng chặn client bên ngoài, và điều đó không những không vấp phải phản cảm thích đáng mà còn được chấp nhận phần nào như một yêu cầu hợp lý. Có cảm giác như chúng ta đã đánh mất thời kỳ hoàng kim vì không còn xứng đáng được hưởng nó nữa.