学校のWi-Fiなどでフィルタリングを回避するもう一つの手段(Windowsのみ)

この記事はあくまで手段として提示するだけであり、フィルタリングを強要、または勧める記事ではありません。
試したり実際に使用する場合は自己責任でお願いします。
また、全ての環境で必ず回避できるという証拠はありませんのでできればラッキー程度に思ってください。


まず、私の学校のWi-Fi環境について説明します

  1. 専用のproxy(http)が用意されており、そのproxyを通さないとネットに接続できない

  2. そのproxyはhttp/https/websocket以外の接続が不可

  3. ドメインフィルタリングはブラックリスト形式

このような環境ですが、色々調べて完全に回避する方法があったのでここでお教えします。
また、別途ルート環境があるサーバーとドメインが必要です

  • サーバーとドメインを紐付ける (どんな方法でもwebsocketが接続できる状態であればok)

  • サーバーにalgovpnをインストール 

  • https://github.com/Doridian/wsvpn をサーバーとクライアントどちらにもアーキテクチャにあったものをダウンロードする

  • 一度サーバーでwsvpnをサーバーモードで起動

  • htpasswdを生成

  • server.ymlが生成されるため

tunnel:
  mtu: 1500
  subnet: 192.168.30.1/24
  mode: TUN
...

server:
    listen: "127.0.0.1:80" # ドメインの設定により変える (Aならおそらく0.0.0.0:80)
    enable-http3: false
    authenticator:
        type: "htpasswd"
        config: "/root/.htpasswd"

のように設定する

(subnetの欄は接続するWi-FiのIPv4と被らないIPにする)

  • もう一度nohupやtmuxなど(バックグラウンド維持)でサーバーモードとして起動する

  • クライアント側も同じ手順を踏む

  • client.ymlに

tunnel:
  mtu: 1500
  subnet: 192.168.30.1/24
  mode: TUN
...

とhtpasswdを紐付ける

  • クライアント側でも起動する、このとき必ず管理者で実行 (ここで数時間つまりました)

  • クライアントにWireSockUIを入れる

  • algovpnを正常にインストールできていればalgo/configs/<algovpnのセットアップ時に入れたexit ip>/wireguard/*.confがあるので、それのどれかをクライアントに移してWireSockUIでインポート

  • インポートしたらconfigを編集できるので一番下にDisallowedApps = "wsvpn-windows-amd64.exe"を追加してください。

  • configを保存して、activateを押し、vpnを有効化

これでtcp/udpなども全部使える完全なネットワークになると思います。
みなさんも試してみてください。

なぜ回避できるのかについて

理由は大まかに2つです

ドメインフィルタリングがブラックリスト形式なこと
websocketが使えること

1つ目の理由のドメインフィルタリングに関してですが、まず僕の学校のproxyは直ip接続ができませんでした。(おそらくブロックされてる)
で、ドメインが必要だったので自分のドメインを使用しましたが、ブラックリスト形式というのは指定したドメインのみをブロックします。なので僕のドメインは有名ではないのでブロックされていないと言うわけです。
じゃあホワイトリスト形式ならいいのかと言うとそうでもありません。なぜなら管理者がいちいち確認して追加する必要があるためかなり面倒なことになります。
なのでブラックリストのほうが現実的ですが、学校によってはホワイトリストのとこもあるみたいです。

2つ目の理由のwebsocketというのは相互通信できるプロトコルの名前です。
文字列だけでなく、いわゆるバイナリと呼ばれるデータのバイト列をそのまま送ることもできます。(まあ文字列だけしか送れなくてもbase64などに変換すればいけます)
pcに対してvpnとしてつけて送られた情報をwebsocketでバイナリとして送っています
もちろん相互通信可能なプロトコルですので返ってきたデータをvpnのネットワークアダプターに送ればそれで相互通信ができるというわけです。

この記事が気に入ったらサポートをしてみませんか?