特にモノアイと関係ないけど暗号通貨周りとかで気になったことを適当に書くブログ

FXか暗号通貨辺りの気になったことをたまに書きます。

VPNを使わずにシンガポールのIPアドレスから海外Webサイトにアクセスする(約500円/月・無料期間あり)

前書き

日本からのアクセスお断りという海外サイトがある時、まずはVPNの利用を検討すると思いますが「どこのVPN業者が信用できるの?」という問題にまずぶち当たると思います。

こういう記事を読んだりするとVPNのサービスを使うこと自体ためらってしまいます。
gigazine.net

「海外のVPNサービスを使うとマルウェア(悪意のあるプログラム)を仕込まれたり、通信内容を盗まれたりするんじゃないか」と漠然と不安に思う方も多いと思います。

そうなると「自分でVPNサーバーを立てて使おうぜ!」という話になってきますが、それもそこそこの知識と手間がかかります。

なので、この記事では開き直って、「IPアドレスさえ変わればいいんだから、適当な格安サーバーを借りて必要最低限の設定をしたら、それを踏み台にして使おうぜ!」という方針で行きます。
具体的にはSSHのダイレクトポートフォワーディングとSOCKSプロキシを使っていきます。

環境はWindows10、(もちろんMacで応用可、というかMacの方が設定簡単)でいきます。

コマンドプロンプトやviエディタを使う箇所が出てくるので、基本的な使い方が分からない方は適宜ググってください。親切な先達が沢山いらっしゃいます。Qiitaとかの記事がおススメ。

本文

1)サーバーを借りて準備する(VPSを契約)

過去記事で紹介したDigitalOceanを使っていきます(EC2使っている人はEC2の方が多分いい)。
踏み台のためのサーバーなので、月5ドルのプランで良いでしょう。
下記リンクから登録して貰えれば、60日間使える100ドル分のクレジットが貰えますので(2021年11月現在)、月50ドルくらいのプランで豪遊していただいても大丈夫です(2か月後にサーバーを削除するのを忘れないように)。私にも少し報酬が入るので投げ銭感覚で登録して貰えると泣いて喜びます。
m.do.co


mono-i-love.hatenablog.com

登録が終わったら、過去記事の以下の項目を実行してください。
Macを想定した記事ですが、Windowsでも基本は同じなので適宜読み替えてもらえればと思います。
また、後述しますが、サーバーのOSやリージョン(国)は目的に合わせて適宜変更します。

1-2)SSH鍵作成とDigitalOceanへの登録
1-3)DigitalOceanのDropletを作成
2-1)root権限での初期作業
2-2)root権限でSSHのセキュリティを設定する
3)新ユーザでログインしてセキュリティを設定


Windowsではコマンドプロンプトを使えばOKです。

f:id:mono_i_love:20211121192457p:plain
コマンドプロンプトの起動

Windowsでの秘密鍵生成などは、こちらの記事等が分かりやすいです。
qiita.com


過去記事ではUbuntu18.04.3でNYのサーバーでしたが、今回はUbuntu20.04でシンガポールを選択していきます。
(20211122付記)シンガポールからだとログインできなかったり何かしらの制限がある所も多いそうなので、その場合は別の国でもOKです。

f:id:mono_i_love:20211121191832p:plain
DigitalOcean Droplets選択画面 OSとスペック
f:id:mono_i_love:20211121192006p:plain
DigitalOcean Droplets選択画面 リージョン

2)SSHのダイレクトフォワーディングを使って、借りたサーバーに接続

前項でサーバーの準備が出来たら、コマンドプロンプトから-Dオプションを使ってSSH接続しましょう。

ssh -D 1080 -p <任意のport番号> <任意のユーザ名>@<IPアドレス>

※1080の部分は1080でも8888でも任意のもので構いませんが、分かりやすいように今回は1080としています。

f:id:mono_i_love:20211121193913p:plain
Windowsコマンドプロンプト SSHのダイレクトフォワードを使ってサーバーにログイン
  • fNオプションをつけてバックグランドで起動しても良いですが、ここでは分かりやすいようにコマンドプロンプトで開きっぱなしにしておきます。

※閉じるときはexitコマンドを入力して閉じてください(入力後もしばらく応答が無ければCtrl + Cで閉じる)。

3)Windows10 or Macのプロキシを設定する

では、この1080のポートを経由してWebサイトに繋げるようプロキシを設定していきます。

実はここが結構な詰まりポイントでして…
SSHのダイレクトフォワードでSOCKSプロキシを使おうというのが今回の目的なんですが、Windows10だとHTTPプロキシの設定などと分けて設定するのが上手くできなくて手こずりました。
結果から書くと、下記のように設定して貰えれば大丈夫です。

f:id:mono_i_love:20211121194305p:plain
Windows10のスタートメニュー>歯車アイコンの「設定」>ネットワークとインターネット>プロキシ

・手動プロキシセットアップから、「プロキシサーバーを使う」をON
・アドレス欄に「http://socks=localhost」と入力
・ポートにダイレクトフォワードで設定したポート番号を入力。ここでは1080

ただ、ここで設定してもなぜか設定が元に戻ってしまう事が頻発したので、その時のためにコントロールパネルからインターネットオプションを開いてプロキシ設定する方法を併記しておきます。

f:id:mono_i_love:20211121194834p:plain
Windows10でコントロールパネルを起動
f:id:mono_i_love:20211121194908p:plain
コントロールパネル>ネットワークとインターネット>ネットワークと共有センター>インターネットオプション
f:id:mono_i_love:20211121195050p:plain
インターネットオプションからプロキシを設定する

なお、Macの場合は、設定 > ネットワーク > 詳細 > プロキシ で下記のように設定すればOKです。

f:id:mono_i_love:20211122231617j:plain
Mac OSでのSOCKSプロキシ設定

3)ブラウザから自分のIPアドレスが変わっている事を確認

自分のIPアドレスを確認できるWebサイト(https://myip.ms/https://www.ugtop.com/spill.shtmlなど)で確認する。

f:id:mono_i_love:20211121195836p:plain
自分のIPアドレスシンガポールが借りているサーバーと同じになっているか確認

4)おまけ(SSH用のconfigファイル)

コマンドプロンプトを開いた後に毎回ssh -D 1080だなんだを入れるのは面倒なので、Windows端末でのssh用にconfigを設定しておきます。
サーバーに接続するために公開鍵や秘密鍵を「c:\Users\XXXXX\.ssh」フォルダ等に保存していると思うので、同じフォルダにconfigという名前のファイルを作ります(拡張子不要)。

f:id:mono_i_love:20211121200603p:plain
SSHの公開鍵・秘密鍵が保存されている場所にconfigファイルを作る

ファイルの中身は以下のようにしてもらえればOKです。
ホスト名は任意のものを、他は設定した接続先のサーバーの情報を入力します。

#踏み台
Host <任意のホスト名>
  HostName <接続先サーバーのIPアドレス>
  Port <接続先のポート番号>
  User <接続先のユーザー名>
  DynamicForward 1080

秘密鍵を明示的に指定する場合は「IdentityFile <秘密鍵の保存場所(例えば~/.ssh/id_rsa)」の行も追加してください。

f:id:mono_i_love:20211121201743p:plain
configファイルの内容

以降はコマンドプロンプトで<任意のホスト名>でSSH接続すれば自動的にダイナミックフォワードを使ってくれます。

ssh <任意のホスト名>

上記の画像のconfig設定例であれば「ssh test」と入力すればOKです。


以上です。