iPhoneのテザリング制限解除方法を探していると、ある方の投稿を見つけた。
iPhoneでPythonサーバーを立ち上げてデータを送信するという内容だ。
この方の投稿とGitHubを参考に進めてみた。

1. IOS-SOCKS-SERVER
SOCKSはソケット通信を中継するプロトコルだ。
これをiPhoneで実行すると、iPhoneがデバイスの代わりにTCPソケットを開いてGoogleサーバーに接続し、データを中継する。
問題はこれをiPhoneにインストールしないといけないが、GitHubアプリからはダウンロードが見えない。
Chromeでアクセスしてzipファイルをダウンロードしよう。

2. iSH Shell
投稿者はPythonista3という有料アプリを購入して使用しているが、探してみたら無料のターミナルアプリがあった。
名前はiSH Shellだ。
アプリに入ると、デフォルトでPythonがない。
Linuxのaptのようにapkという公式パッケージマネージャがある。
apk update
apk add python3こうした後、Pythonのバージョンを確認すると3.9バージョンが入っている。
このぐらいで半分進んだ感じだ。

3. パイソンバージョンアップ
このままGitHubからダウンロードしたPythonファイルを実行するとエラーが出る。
Python 3.10+で導入されたユニオン文法のためだ。
コードを変えるよりもPythonバージョンアップが簡単そうだった。
以下のコードをコピーしてください。
echo "https://dl-cdn.alpinelinux.org/alpine/edge/main" >> /etc/apk/repositories
echo "https://dl-cdn.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories
apk update
apk upgrade
python3 --versionこれで他のライブラリと一緒にPythonもアップグレードされる。

4. ファイル移動と実行
pwdをしてみたところ、現在のパスは/rootだった。
さっきダウンロードしたファイルをアプリの該当パスに入れて解凍する。
そしてフォルダーの名前が複雑なので、単にsocksに変えた。

lsコマンドでファイルを確認した後、以下のコマンドでファイルを実行しよう。
python3 socks5.pyエラーがいくつか出るが、それほど致命的なものではないようだ。
以下のように表示されたら成功だ。

5. MacBookで設定する
次にMacBookでホットスポットの設定を行う。
設定 > ネットワーク > ... に進む。

そして位置で新しい位置を追加する。
私はsocksという名前で追加した。

設定が成功すると、下の既存の他のサービスがすべて消える。

次にWi-Fiに移動し、iPhoneホットスポットを接続する。
そして接続の詳細をクリックする。

PROXY > SOCKSに移動し、iPhoneに表示されているSOCKSプロキシをそのまま入力する。
このように設定した後、インターネットに接続してみたところ、正常に動作する。

6. 画面をオンに保つ
残念な点は、IOSの方針によりバックグラウンドでのサーバー稼働が制限されていることだ。
そのため、ホットスポットを使い続けるには、iPhoneアプリを常に起動しておく必要がある。
キーボードの上にある歯車アイコンを押し、スクリーンオンのオプションをオンにする。

7. 感想
格安通信会社を使うことにより多少の不便さを我慢せざるを得ないのは仕方がないようだ。
今回の回避策でSOCKSプロトコルとiSH Shellを初めて学んだ。
そして、どこにでも方法と抜け道があることを改めて認識した。
本当に有益な勉強だった。
댓글을 불러오는 중...