EaseUS Todo Backup 2022がリリース

Webスクレイピングをしたいのだけど、VPNやプロキシーで一番良いサービスはないだろうか!?

Linuxで使えるベストなVPNサービスを教えてほしい!

…という形に、最適なプラクティスをご紹介します。

 

ということで、こんにちは!

Webサイトを自動で取得する「Webスクレイピング」をする上で、必ずネックとなるのがアクセスするIPアドレスの問題です。

スクレイピングする対象のサービスの営業妨害にならない範囲でスクレイピングするのは言うまでもない当然の話ですが、Webサイトによっては、少しのアクセスでも不正なアクセスと認識してIPアドレスごとブロックしてしまうことがあります。

これを回避するためには、定期的なIPアドレス変更などの対応が必要です。

 

一般的にはこうした問題はプロキシーやVPNサービスを使って回避することになりますが、具体的にはどうしたら良いのでしょう?

結論を言いますと、「NordVPN」を使うのが、LinuxとWebスクレイピング用途では最適解です。

NordVPNであれば、Linux上で自動的にIPアドレスを変更し、都度ランダムなIPアドレスで接続することが出来ます。

 

この記事では、LinuxでNordVPNを使う、具体的な設定方法をまとめました。

ぜひ、参考にしてみてください。

WebスクレイピングにはVPNサービスが便利

さて、すでにお伝えした通り、Webスクレイピングをする際には、VPNサービスを利用するのが便利です。

 

一般的に、サーバの接続元のIPアドレスを変える場合、以下の作業のうちどれかが必要です。

  1. サーバ本体のグローバルIPアドレスを変更する
  2. プロキシーサーバを利用し、つど異なるIPアドレスで接続する
  3. VPNサービスを利用し、つど異なるIPアドレスで接続する

 

①のサーバ本体のIPアドレスを変更するという方法は一番シンプルですが、非常に面倒かつ、管理も複雑となるため、プログラミングで自動化していくには不適切ですね。

②のプロキシーサーバを利用する手もOKですが、無料のプロキシーサービスは危険ですし、有料サービスであっても信頼性に欠ける怪しいサービスが主であるのが実情です。

NordVPNならWebスクレイピングにも活用できる

それらと比べると、③のVPNサービスはかなり世界的に利用されている方法です。

中でも大手サービスである「NordVPN」は、全世界で1400万人以上のユーザが利用している、VPNの中でも老舗のサービスです。

実際、日本国内でも数多くのユーザが居ます。 ぼくも、そのうちの1人です。

 

VPNサービスを利用すると、再接続ごとにランダムに用意されたグローバルIPアドレスに変更されるため、わざわざ利用者側が沢山のIPアドレスを用意しなくてもOKというわけです。

もともとVPNはセキュリティ対策として使われることが主ですが、こうしたランダムなグローバルIPアドレスを経由して通信が可能なので、Webスクレイピングにも活用できます。

現在のIPアドレスはこのページで確認可能

ちなみにNordVPNには、現在のIPアドレスと、その位置情報を確認できるページが公開されています。

現在の自分のIPアドレスと位置情報を確認する

 

こちらにアクセスするとこのように、現在の自分のIPアドレスと、どの地域から接続しているかが、誰でもチェック出来るようになっているのですね。

こうしたプライバシーの侵害を回避するという目的にも、VPNサービスが幅広く使われています。

NordVPNはLinuxでも利用可能

NordVPNはLinuxでも利用可能です。

 

NordVPNは数多くのOSやデバイス、ブラウザに対応しています。

  • Android
  • Windows
  • Mac OS
  • iOS (iPhone/iPad)
  • Linux (Debian, RHEL, Ubuntu, CentOS, etc)
  • Google Chrome
  • Firefox
  • Microsoft Edge
  • Android TV

 

通常、WebスクレイピングはLinux系サーバで行うことになるでしょう。

NordVPNのソフトはLinuxの主要なディストリビューションに対応しているので、インストールしておけばセキュリティの確保と同時に、ランダムに接続可能なVPNの機能をLinuxサーバで実現可能となるわけです。

 

GUIだけでなく、コマンドラインやシェルからの実行も可能です。

シェルにVPNの切替コマンドを記載しておけば、あとはそのシェルスクリプトを実行するだけでIPアドレスを変更して接続が可能です。

(その詳しい手順は次の項目にて!)

具体的なNordVPNの設定方法

実際にLinux上でNordVPNを利用する手順やコマンドについても解説しておきます。

 

まずは、NordVPNをLinuxにインストールする必要があります。

以下のページにアクセスして、NordVPNをインストールしましょう。

一般的な「apt-get」コマンドなどでインストール可能です。

NordVPNのダウンロードとインストール

 

  NordVPNを利用するためには、有料のアカウント契約が必要です。

1ヶ月の単月プランでは月1,370円で、

1年間プランでは570円で利用可能です。

 

若干の費用はかかりますが、同じことを自分で実現しようとした場合、これ以上の莫大なコストがかかります。

アクセス拒否されないほどのグローバルIPアドレスを確保するだけで…月間3〜4万円以上は軽くかかることでしょう。

それを考えたら、これぐらいの月額料金、軽いものだといえます。

 

インストールとアカウントが用意できたら、まずはLinuxでNordVPNへのログインが必要です。

コマンドライン(CUI)でログインする場合は、以下のコマンドを実行します。

すると、メールアドレスとパスワードを求められるので、ここでアカウント情報を入力しましょう。

nordvpn login --legacy

 

ログインできるとこのように「Welcome to NordVPN!」と表示されます。

 

続いて、実際に日本国内のNordVPNに接続してみます。

が!

SSH接続でLinuxサーバに接続している場合、VPN接続した時点で接続が解除されてしまい、操作不能になってしまうので、事前にSSH通信と自分のIPアドレスをホワイトリストに入れてあげる必要があります。

ということで、以下のコマンドを実行します。

nordvpn whitelist add port 22
nordvpn whitelist add subnet [自分の端末のIPアドレスとサブネットマスク]

自分の端末で固定IPアドレスを利用している方はそのIPアドレスを入力。

IPアドレスが固定でない方は、IPアドレスの範囲をサブネットマスクで入力します。

例えば、以下のような形です。

nordvpn whitelist add subnet 110.155.22.0/24

 

上記が入力できたら、以下のコマンドを使って実際にNordVPNのサーバに接続します。

nordvpn connect

 

ちゃんとホワイトリストが設定できていれば、「You are connected to Japan #***」というメッセージが表示され、無事にVPN接続できたことがわかります。

このサーバ番号はランダムで毎回変わるので、実行するのは上記のコマンドだけでOKです。

 

現在、VPNで利用しているIPアドレスと、そのサーバの位置、接続時間などはこのコマンドで確認できます。

実際のサーバのIPアドレスとは、異なるIPアドレスになっていることが確認できるはずです。

nordvpn status

シェルでNordVPNに接続するには

さて、ここまで解説すれば、Linuxで日常的にプログラミングやスクレイピングを実行している方はもう問題なくVPN接続可能かと思います。

補足として解説しますと、これらのnordvpnのコマンドはシェルから実行可能です。

なのでぼくの環境では、シェルで一連の操作のスクリプトを作成して、スクレイピングを行う際にこのシェルスクリプトを実行しています。

このような感じですね。

 

例えばPythonなどでは、簡単にシェルを実行することが可能なので、このスクリプトを実行する関数を作ってあげれば、あとは超簡単にVPN接続の切替が可能、という仕組みです。

まとめ

以上、LinuxでNordVPNを利用する方法まとめでした!

 

インストールと設定さえしておけば、あとはコマンド1つだけでVPNとIPアドレスを切り替えて通信可能なのは、とても魅力的です。

プログラミング上での処理も、かなり簡単になることでしょう。

 

すでにお話した通り、多少のコストがかかりますが、Webスクレイピングをしていくのであれば必要経費の範囲内だと、ぼくは思っています。

ぜひ、この方法を活用することをオススメします。

 

以上、ご参考までに。

それでは!