古いデバイスで最新サイトを閲覧出来るようにする方法

阿部寛氏のウェブサイトがついにHTTPS化することで古いデバイスのWebブラウザからの閲覧が不可能になる。というニュースが流れ、なかなか古い仮想環境を扱ってる手前、現在数限りない接続確認サイトは「Lisa2」のサイトくらいしかなくなってしまった。

しかし、なんとかして古いサイトだけじゃなく新しいサイトも見れないだろうか?ということで探してみた所、見つけたのが「retro-proxy」というプログラム。これで別のサーバで動かしプロキシーサーバとして、レトロPCはそのプロキシ経由であれば見られるようなので試してみました。

今回利用する素材

今回は、VMとしてARM版のUbuntu Linux 24.04を一台、それとは別にレトロPCのVMとしてWindows95とXPの2台を用意しました。Ubuntu側にプロキシーサーバを立てて、そちらに対してWindows側がプロキシー設定して経由させるという手法です。

仮想環境としてはUTMを利用して複数のVMを起動して相互で通信出来るように構築をしています。UTMについての詳細は以下のエントリーを御覧ください。

※VMに通信さえ出来れば同じWiFi環境下の古いスマホからプロキシー経由でウェブサイト閲覧も可能といえば可能ですがオススメしません。

M1 MacやiOSでも動く高機能な仮想環境UTMを使ってみた

ホスト側の注意点

今回、なぜかインターネットには出られるのにVM側からローカルエリアネットワーク参照出来ないなと思ったら、Chromeじゃないのにローカルネットワークに増殖問題がUTMでも置きました。どうやら元々UTMと4.7.0のUTMを同居させる為にUTM470にリネームして追加していたら、古いほうのUTMが後者に上書きされて、ローカルエリアに接続出来なくなっていた模様

UTM470のほうは通過できていたので、そちらでテストしています。といったわけでこのやっかいなローカルネットワーク問題が発生する可能性もあるので注意が必要です。

図:この問題にまた嵌まってしまった

macOSのChromeでローカルネットワーク問題

接続手順

VM側の設定

Ubuntu LinuxのVMに対して、WindowsのVMが接続する必要があるためルーターを介して双方直接接続出来るようにする必要があります。よって、UTM側として双方のVMに対して必要な設定としては、ネットワークを必ずブリッジ接続にするということ。

ルーター側のIPアドレスが192.168.1.1であるならば、ゲストのUbuntuやWindowsはブリッジ接続により、192.168.1.3といったIPアドレスを直接割り振られるので双方でpingを打って通じるかどうかを確認しましょう。またホスト側のmacOS側からもゲスト側のIPアドレスに対して通じるかどうか?確認しましょう。

図:すべてのVMはブリッジ接続にする

Ubuntu側にインストール

yarnのインストール

yarnを利用する為、以下の手順でUbuntu Linuxに対して事前に、ターミナルからインストールを実行しておきましょう。そこまで手間も掛からずあっという間に終わると思います。

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

retro-proxyのインストール

同様に今回利用するプロキシーサーバであるretro-proxyを以下の手順でインストールしておきます。こちらもターミナルからインストールする必要があります。インストールが完了すると自動的にサーバーが起動してポート3000番で待機するようになります。

もしもファイアウォールにブロックされる場合には、ufwが動いていてブロックしてる可能性があるのでポート3000番を開けるか?ufwを停止しておきましょう。

git clone https://github.com/DrKylstein/retro-proxy.git
cd retro-proxy
yarnpkg install
cp example.env .env
cp allowed.txt.example allowed.txt
yarnpkg start

図:ポート3000番で待機してる様子

Windows側でプロキシー設定

レトロPCはそもそもHTTPSでの接続方法そのものが存在しません。そこで今回のretro-proxyを使って通常のHTTPで接続して、代理をやってもらいます。その為にはプロキシー設定をしておいてあげる必要があります。

  1. Internet Explorerを起動する
  2. メニューからツール=>インターネットオプションを開く
  3. 接続タブをクリックし、LANの設定を開く
  4. プロキシーサーバーのチェックを入れて、IPアドレスをUbuntu側のIPアドレス、そしてポートは3000を指定する
  5. 詳細設定を開いてすべてのプロトコルに同じプロキシーサーバーを利用するにチェックを入れてOKをクリックする
  6. OKをクリックして閉じる

これで通信が通っていれば、Windows側VMからUbuntu側のVMに対して接続されて、retro-proxyが代理でウェブに接続してくれるようになります。

接続方法

殆どのウェブサイトが現在はHTTPS化されており、通常レトロPCのWebブラウザではどこにも接続が出来ません。例えばAppleのウェブサイトもURLは「https://www.apple.com」なのでHTTPSです。そこで、今回はプロキシー経由であるためSを抜いて「http://www.apple.com」としてURLを入力して実行してみましょう。

Ubuntu側のターミナルに反応があり、代理で静的なウェブサイトとして取ってきてくれます。但しJavaScriptとかはすでにもうレトロPC側のブラウザは未対応なので完全にレンダリング結果のみが送られてきます。画像もサイズを自動的に縮小してくれますので負担が少なくなるよう作られているようです。

これで本来は見られるはずもないWindows95環境からAppleの最新ページでiPhone17 Airの情報をInternet Explorerを使って閲覧することが出来ました。

図:retro-proxyが動いている様子

図:最新のiPhoneの情報を入手出来ました

利用上の注意点

HTTPSではないということは、SSLが効いていない状態で通信してるわけなので、暗号化も何もされていません。あくまでもretro-proxyが代理で取ってきて色々加工してる為、その内容も現在の最新のウェブブラウザのように綺麗にレンダリングも出来ません。必要最低限見られるレベルで表示が出来る程度です。よってログインを必要とするようなサイトや検索エンジンといったボタンでアクションするようなサイトは使えません。

どちらかというとウェブ経由でないと古いツールが入手しにくいであったり、同じLAN内の古いウェブツールを使うといったような用途に限られます。自分の場合であればインターネット接続確認程度。実用になるものではありませんが、上記の注意点を踏まえた上で使っているということに注意しましょう。

今回はUTMを使っていますが、BasiliskIIやSheepShaverといった他のエミュレータも通信さえ出来れば使えますし、場合によってはTCP/IPが使えるならばWindows3.1のInternet Explorer 4.01でも接続は出来ました。

図:Windows3.1でも利用できました

M1 Macでも68K MacOSを動かしてみた

M1 MacでもPowerPC MacOSを動かしてみた

関連リンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)