retro-proxyで、レトロブラウザで今日のWebを閲覧できるようにする

はじめに

こんにちは。私は普段からいろいろなレトロデバイスを集めては動かして楽しんでおりますが、古いPC/Mac/携帯などでWeb閲覧をしようとした際に大きな壁となるのが現代のSSLとCSS、JavaScriptです。
SSLは暗号化方式が新しくなったりルート証明書が更新されることで、アップデートの止まったレトロデバイスでは接続することができなくなります。
特に、近年は対話的なサイトだけではなく閲覧するだけのページでさえSSLを要求してくることが一般化したため、Windows XPのIE6くらいでもWikipediaすら表示できない事態になっています。
CSSについては規格が新しくなることでアップデートの止まったレトロデバイスでは正しく処理できなくなっています。
また、JavaScriptはクライアントサイドでのレンダリングなどでどんどん処理量が増えることでレトロなデバイスには処理しきれなくなっています。

実際にiMac G3などを動かしてみると、2023年現在ではアクセスできるページが壊滅的であることに気がつくと思います。

こうした状況で、見つけたのが以下のGithubリポジトリです。

https://github.com/DrKylstein/retro-proxy

こちらはHTTP/HTTPSのプロキシとして動作し、現代のマシンでSSL通信などを肩代わりし、レトロデバイスには処理済みのほぼプレーンなHTMLだけを流すようにすることで、問題を解決しようというものです。さらに、レトロデバイスのために画像を縮小してくれる機能まであります!

おそらくですが、Win95やMacOS9あたりからのブラウザ(基本的なHTMLやJPEGの表示ができるくらい)であれば、これを使うことで現代のWebページを見られるようになると思われます。ちょっと試した限りでは、MacOS 9.2のIE、MacOSX 10.2のIE、10.4のSafari、VineLinux 5.2のFirefoxなどでYahooニュースやWikipediaを閲覧することができました。

以下はMacOSX 10.2のIE5での例です。

OS9のIE5(クラシック環境)でもAppleのホームページを表示できました。

さすがに、OS9のNetScapeでは日本語がほとんど化けてしまいまともに見ることはできませんでした。

このように、現代のデバイスと完全に同じようにWeb閲覧することはできず、JS/CSSはほぼカットされた状態になります。ちょうど90年代中頃くらいの見た目かもしれません。
今の仕様のCSSなどを、制作者の意図を保ったまま当時の仕様に翻訳することは容易ではないので、こちらは仕方ないと思われます。また、JSはそもそも処理負荷的にレトロデバイスでは追いつかないので、JSを多用した現代のSNSなどは使えません。Twitterもできないです。

ただ、閲覧オンリーのブログなどはかなり見ることができるようになり、Googleなどの検索も動作します。これだけでも、レトロファンには感涙ものです。

retro-proxyサーバを動かしてみる

動かすのはかなり簡単でした。macOS 13 Ventura, Ubuntu 22.04環境で試しました。サーバサイドJavaScriptで動作し、yarnというパッケージマネージャを利用するようです。

Ubuntuの場合、以下の通り準備します。yarnはaptで入るバージョンが古くてエラーが出たため、npm経由でインストールします。ついでにgitも入れておきます。

※ 私はjsには詳しくないためお作法が違うかもしれません。

sudo apt update
sudo apt install git nodejs npm
sudo npm install --global yarn

macOS(Homebrew)の場合、以下でいけました。

brew install yarn

後はREADMEの通り、以下を実行するだけです。

git clone http://github.com/DrKylstein/retro-proxy.git
cd retro-proxy
yarn install
cp example.env .env
yarn start

ただし、処理途中で落ちてしまうことが多々あるため、以下のように落ちたら自動的に再起動するような簡易スクリプトを作りました。

#!/bin/bash
while true
do
    echo "Starting..."
    yarn start
done

クライアント側(レトロデバイス側)の設定

幸いなことに、90年代中盤以降くらいのブラウザであればHTTP/HTTPSプロキシの設定機能は持っていることが多数です。それぞれのデバイスでプロキシ設定を開き、HTTPとHTTPS双方について、retro-proxyサーバーのIP、ポート(デフォルトは3000になる)を設定します。

例えば、MacOSX 10.4なら以下のような感じです。

これで、例えばhttps://wikipedia.orgなどに接続してみて、表示できたら成功です!

注意事項

SSLが何のためにあるかといえば、通信路を暗号化して傍受・改ざんを防ぐためです。ここで紹介している方法は通信を(プロキシとの間では)平文にして流してしまうため、セキュリティ的には本末転倒なのは言うまでもありません。

保護されたLAN内であればリスクはあまりないとは思いますが、あくまで趣味で楽しむ範囲に留めておくことをおすすめします。

おわりに

今回はひとまず古いMacで試してみましたが、ほぼピュアHTMLで画像も縮小されて送られるため、iMac G3ですら高速に表示ができていました。後はWin95のIEやザウルスとかのブラウザも試してみたいような気がします。

ちなみに、retro-proxyのコードは200行くらいで、既存のjsモジュールをうまく組み合わせることでできているようです。作者様のアイディアには脱帽です。

気に入られた方は、ぜひGithubでスターをつけてあげましょう!

Ubuntu 22.10 on MacBook Proでファンクションキーの入れ替え

Macではファンクションキーがデフォルトではメディアキーとして利用されるようになっていて、 それはLinuxをインストールしても同様です。

以下を参考にしつつ設定を行いましたが、Ubuntu 22.10ではモジュール名が変わっていたのでメモです。(どのバージョンから変わったのかはわかりません。)

環境の詳細は、Ubuntu Unity 22.10、MacBook Pro 13インチタッチバーなし2017、です。

参考: https://dhils0750.fc2.net/blog-entry-1.html

一時設定にて、正常動作するか確認します。

$ sudo -s
# echo 2 > /sys/module/applespi/parameters/fnmode

この状態で標準ファンクションキーが有効になっていることを確認します。

上記で確認ができたら、設定を恒久化します。

カーネルモジュールの設定ファイルを作成し、

$ sudo vi /etc/modprobe.d/applespi.conf

以下の内容を書き込みます。

options applespi fnmode=2

再起動して標準ファンクションキーが有効になっていたら成功です。

複数コンピュータ間でデスクトップをオンラインストレージで共有する

複数コンピュータ間で、デスクトップをオンラインストレージで共有する設定を行ったので紹介します。とりあえずMacとWindows PC間では共有に成功しました。同じような方法でLinuxも設定していきたいと思いますが、それは別途記載しようと思います。

私はオンラインストレージとしてNextcloudを使用していますが、おそらくGoogle DriveやOneDriveなどでも同様の手順で実現できると思われます。

“複数コンピュータ間でデスクトップをオンラインストレージで共有する” の続きを読む

NVIDIA GPU搭載MacにWindows/Linuxをインストールした場合に公式ドライバを入れると画面がブラックアウトする

表題のような現象で何回か悩まされたため共有しておきます。

NVIDIA GPUを搭載したMacにデュアルブートで他OSをインストールした場合に、NVIDIAの公式ドライバを入れると、公式ドライバが読み込まれた瞬間に画面がブラックアウトして戻ってこなくなるような問題を何度か見ています。

これについて、日本語ではあまり情報がなく、海外のフォーラムなどでいくつか情報が上がっていました。

結論から言うと、UEFIモードでWindowsやLinuxをインストールした場合に起きるようで、解決策としてはBIOSモードでOSインストールするしかないようです。

“NVIDIA GPU搭載MacにWindows/Linuxをインストールした場合に公式ドライバを入れると画面がブラックアウトする” の続きを読む

Mac ProにBIOSモードでWindows 11をインストールする

はじめに

さて、Mac ProにWindows 11を入れてみたはいいものの、NVIDIAドライバを入れて読み込まれたと思われるタイミングで画面がブラックアウトして帰ってきません。そういえば、以前Ubuntuをインストールした際にも似たような現象が見られました。さらには、もっと前にMacBook Pro(2007)にUbuntuを入れた際にも、似たような現象があったことを思い出しました。

どうも調べてみると、MacにUEFIモードでWindowsやLinuxをインストールすると、NVIDIAドライバでブラックアウトするような現象がみられるようで、回避するにはレガシモード(BIOSモード)でインストールするしか方法がないようです。(Ubuntuの場合は、オープンソースのnouveauドライバを使うことでも回避できていましたが、アクセラレーションは弱くなると思います。)

この現象はすべてのMac+NVIDIAの環境で起こるのかどうかは不明です。

このため、Windows 11をBIOSモードでインストールしようとしたところMac Proではいろいろ苦労があったのでまとめておこうと思います。

“Mac ProにBIOSモードでWindows 11をインストールする” の続きを読む