2010年12月03日

指定した世代までを残して古いファイルを削除するRubyスクリプトを作ってみた

会社の業務ではWordPressをウェブサイトに、Redmineを社内のタスク管理に使っている。
業務で使っているからには、システムのバックアップは必須である。
WordPressもRedmineもファイルシステムとデータベースのバックアップさえあれば、別の環境に復元できる。そのため、ファイルシステム全体とデータベースのダンプファイルを圧縮ファイルに固めて、別のマシンに自動でコピーするような仕組みを使った。

この仕組みを作ってから、手動のバックアップから解放された。
放っておいても自動でバックアップが取得されるのである。気分的にもとてもよい。

しかし、気づかないうちにバックアップファイルがどんどん溜まってハードディスクを圧迫してきてしまった。古いバックアップファイルは、手動で削除すればよいのだが・・・。
やはり、エンジニアとしては、そういうところも自動でやってしまいたいものである。

ということで、Rubyを使って古いバックアップファイルを削除するスクリプト(purge.rb)を作成してみた。使い方は下記のとおり、

ruby purge.rb <directory> <generations to be remained> <extension> 
  • directory: バックアップファイルが保存されているディレクトリーを指定する。
  • generations to be remained: 残しておきたい世代を数字で指定する。
    たとえば最近の5世代残して、古いものはすべて削除するのであれば"5"と指定する。
  • extension: バックアップファイルの拡張子を指定する。例)"zip"

purge.rb

def show_usage
  puts "Usage: purge.rb   "
  puts "  Ex) purge.rb /home/backup/wordpress 7 zip"
  puts "      This command delete zip files except the latest 7 generations."
  exit
end

dir = ARGV.shift
show_usage unless dir

gen = ARGV.shift.to_i
show_usage unless gen

ext = ARGV.shift
show_usage unless ext

puts "Target directory: " + dir
puts "Generations to be remained: #{gen}"

#Store file name and update date to the hash.
hash = {}
Dir::glob("#{dir}/*.#{ext}").each do |fn|
  hash[fn] = File::stat(fn).mtime
end

#Sort array by date.
array = hash.to_a.sort{|a,b|
  b[1] <=> a[1];
}

#Delete files except the latest generations.
for i in 0..(array.size-1)
  if i >= gen
        file = array[i][0]
        puts "Deleting " + file + " ..."
        File::delete(file)
  end
end

使用例

$ ls -l
total 366460
-rw-r--r-- 1 backup backup 40526207 Sep 20 02:00 wordpress_20100920.zip
-rw-r--r-- 1 backup backup 43049695 Sep 27 02:00 wordpress_20100927.zip
-rw-r--r-- 1 backup backup 47605291 Oct  4 02:00 wordpress_20101004.zip
-rw-r--r-- 1 backup backup 49300621 Oct 11 02:00 wordpress_20101011.zip
-rw-r--r-- 1 backup backup 54476254 Oct 18 02:00 wordpress_20101018.zip
-rw-r--r-- 1 backup backup 68447805 Oct 25 02:00 wordpress_20101025.zip
-rw-r--r-- 1 backup backup 71424873 Oct 28 17:39 wordpress_20101028.zip

$ ruby ../bin/purge.rb . 5 zip
Target directory: .
Generations to be remained: 5
$ ls -l
total 366460
-rw-r--r-- 1 backup backup 47605291 Oct  4 02:00 backup_20101004.zip
-rw-r--r-- 1 backup backup 49300621 Oct 11 02:00 backup_20101011.zip
-rw-r--r-- 1 backup backup 54476254 Oct 18 02:00 backup_20101018.zip
-rw-r--r-- 1 backup backup 68447805 Oct 25 02:00 backup_20101025.zip
-rw-r--r-- 1 backup backup 71424873 Oct 28 17:39 backup_20101028.zip

5世代を残して、古いzipファイルが削除されているのが分かる。
なお引数なしで実行すると、ヘルプが表示される。

posted by cpractice at 22:30| Comment(19) | TrackBack(0) | ツール | このブログの読者になる | 更新情報をチェックする

2010年11月25日

PureVPNの料金体系

PureVPNのサイトでは、いまいち料金プランが分かりにくいので料金表を下記にまとめてみた。

PureVPNの料金プラン

プランは大きく分けて3つある。
シルバー(Silver)、ゴールド(Gold)、プラチナ・セキュリティ(Platinum Security)の3つである。

シルバープランは共有IP(Share IP VPN)の接続で、VPNのユーザー間で共有でIPアドレスを使うということらしい。おそらく、同時に使うユーザーが多くなると、アクセス速度が遅くなりますよという意味だと思う。シルバーの中では、標準(Standard)と広帯域(High Bandwidth)の2種類を選択できる。広帯域を選ぶと、もちろんアクセス速度が速くなるのだろう。

ゴールドプランは占有IP(Dedicated IP VPN)とあり、文字通りIPアドレスを占有できる。
他のユーザーが使っていても、アクセススピードは変わらない・・・というプランだと思う。

プラチナ・セキュリティは、何のためにあるかいまいちよくわからない・・・。

料金表を見ればわかるが、契約期間が長いほど、割引率が高くなる。
その割引率も一緒に計算してみた。割引率は、一ヶ月の料金をもとに計算したものである。
1年契約にすると、もちろん一番割引率が大きくなる。(当たり前か)。
PureVPNに契約するときの参考にどうぞ。

posted by cpractice at 22:31| Comment(0) | TrackBack(0) | VPN | このブログの読者になる | 更新情報をチェックする

2010年11月24日

フリーエージェント社会のオフィス

百式で紹介されていたloosecubesというサイトが面白い。

2010-11-24_204503 

貸オフィスを検索できるサイト。
地域ごとに、アメリカ国内のレンタルオフィスを検索できる。

「フリーエージェント社会の到来」という本の中には、アメリカの労働人口の四人に一人がフリーランスで活動していると報告されている。この数字を知ってかなり驚いたのを記憶している。
こういうウェブサイトがあるのも、フリーランスで活動する人が増えてきている証拠なのだろう。

日本でも今後このようなサイトが出てくるのではないだろうか。

このサイトを眺めていると、おしゃれなオフィスがあって、見ているだけで楽しい。
ちなみに下はこのサイトで紹介されていたオフィスの一つ。

2010-11-24_204810

月額150ドルと、なかなか安いのではないだろうか。
それにしても、MacBookを使っている人が多いな。

posted by cpractice at 21:51| Comment(0) | TrackBack(0) | その他 | このブログの読者になる | 更新情報をチェックする

2010年11月23日

WordPressのContact Form 7が動作しない

WordPressのプラグイン「Contact Form 7」ではまってしまった。
かなり時間がかかったが、最終的には解決した。
他の誰かも同じような問題に遭遇しているかもしれないので、少しでも役に立てばという意味でメモを残しておく。

問題は、Contact Form 7で新規にフォームが作れないという現象。
Contact Form 7のプラグインをインストールし、ドキュメント通りに下記の画面で「新規追加」をクリックしても、うんともすんとも言わない。本来であれば、ダイアログが出てくるはずのだが・・・。

cf000

問題が発生したのは、下記の環境。

  • WordPress (3.0.0)
  • Contact Form 7 (2.4.2)

Googleで調べても、それらしき問題も報告されていない。
FirefoxのデバッガーでJavaScriptのエラーなどを探るも、よくわからない。

別のバージョンのContact Form 7やWordPressを入れてみたりと、組み合わせを試してみた。
最終的に、一緒にインストールしていた「Bind user to category」というプラグインが原因であった。(このプラグインは、WordPressのユーザーごとに記事へのアクセス権限を変更するもの。調査のために以前インストールしたままであったのだ。)

Bind user to category」プラグインを無効にしたあと、「新規追加」をクリックすると下記のようにダイアログが出るようになった。

cf002

これで分かったのは、WordPressではプラグインの競合で問題が発生する可能性があるということ。プラグインを使うときは、注意する必要がありそうだ。

posted by cpractice at 22:24| Comment(0) | TrackBack(0) | WordPress | このブログの読者になる | 更新情報をチェックする

2010年11月22日

PureVPNの利用方法

中国に住んでいると、VPNは欠かせないサービスである。
中国からはアクセスできない友人のブログを観たり、YouTubeを観たり、Facebookを使ったり、これなしでは成り立たないという感じがある。

3ヶ月契約していたPureVPNのアカウントが最近失効してしまったので、再度契約をした。
購入方法が前回紹介したときと比べて変わってしまったので、今回改めて利用方法をまとめてみる。

PureVPNアカウントの作成

1. まずはアカウントを作成する必要がある。PureVPNのトップページで「Signup」をクリックする。

001

2. プランを選択するページが現れるので、今回は一番料金の安い「PURE SILVER」というプランを選択。「Order Now!」をクリックする。

002

3. ポップアップ画面が出てくるので、「Standard Package Available」の方を選択。
より高速なアクセスが必要なら、「High Bandwidth Package Available」の方を選択。
こっちの方を選ぶと、YouTubeなどの動画はより快適に見ることができるはず。

003

4. 「Product Configuration」という画面が出てくるので、VPNサービスを使用する期間を選択する。期間は、下記の4つが選べる。今回は、1ヶ月を選んでみる。

  • $6.00 USD Monthly(1ヶ月)
  • $14.00 USD Quarterly(3ヶ月)
  • $28.00 USD Semi-Annually(6ヶ月)
  • $55.00 USD Annually(1年)

選択後、「Update Cart」をクリック。

004

5. 確認画面が表示されるので、間違いなければ「Checkout」をクリックする。

005

6. アカウント作成のための基本情報を入力する画面が現れるので、名前、住所などを入力する。

006

また支払い方法を選ぶところがあるのが、通常は一番左の項目(Credit Card or PayPal [2CheckOut])をチェックすればよいだろう。「I have read and agree to the Terms of Service」をチェックして、問題なければ「Complete Order」をクリックする。

007

7. 下記のような処理中の画面が表示されるので、しばらく待つ。

008

8. すると下記のような画面が表示される。
このページ以降は言語を切り替えることができるので、日本語を選択する。

009

8. すると下記のように日本語に画面が切り替わる。

ここで支払い方法を選択する必要がある。ここではクレジットカードでの支払いをするので、「チェックアウトを続ける」をクリックする。

012

9. 支払い情報入力画面になるので、ここでもまた氏名、住所等を入力する。
入力後「チェックアウトを続ける」をクリックする。

013

10. 支払い方法を選択する画面が表示されるので、PayPalかクレジットカードを選択する。
ここではクレジットカードでの支払いを選択する。 そして、「チェックアウトを続ける」をクリックする。

014

11. クレジットカード情報を入力する。
CVVはクレジットカードの裏に記載されている3桁または4桁の番号。
入力後「チェックアウトを続ける」をクリックする。

015

12. クレジットカードの処理が完了後、下記のような画面が表示される。

016

13. 支払い完了後、しばらくするとPureVPNから登録したメールアドレスにVPNアクセス用のユーザー名とパスワードが送付される。私の場合は、申し込んでから20分くらいでユーザー名とパスワードが送られてきた。

017

PureVPNへの接続方法

1. VPNの接続は簡単である。メールの説明には接続先のホスト名などがたくさん書かれているが、自動接続プログラムがあるので、そちらを利用する。自動接続プログラムを利用すれば、ホスト名などは入力する必要はない。自動接続プログラムを使うには、同じメールの下のほうにPPTP接続の項目があるので、そこに記載されているURLをクリックする。

019

すると、「PureVPN Automatic Dialer (PPTP).pbk」というファイルがダウンロードされるので、それを適当な場所に保存する。

020

2. ダウンロードしたファイルをダブルクリックすると、接続先のサーバーを選択するダイアログが表示される。適当に場所を選択して、「接続」をクリックする。

021

3. ユーザー名とパスワードを入力するダイアログが表示される。そこにメールに送られてきたものを入力し、「接続」をクリックすればよい。

022

接続後、中国からでもYouTube等にアクセスすることが確認できた。

023

posted by cpractice at 00:17| Comment(0) | TrackBack(0) | VPN | このブログの読者になる | 更新情報をチェックする

2010年11月21日

「走ることについて語るとき僕の語ること」

先日、村上春樹氏の「走ることについて語るとき僕の語ること」という本を読んだ。
自分の人生観としっくりくるものがあって、とても共感した本である。

小説も含め、彼の著書には音楽がよく登場してくるのだが、読んでいるとそこに書かれている曲を実際聞いてみたくなる。そして、この本に関して言えば、実際にそれらの曲を聞きながらジョギングしたくなってしまう。

ということで本書に登場した曲を引用と共にまとめてみた。

p17
ハワイに来てからも、毎日欠かさず走り続けている。やむを得ない場合を別にして、一日も休まずに走るという生活を再開してから、そろそろ二ヶ月半になる。今朝はラヴィーン・スプーンフルの『デイトリーム』と『ハムズ・オブ・ザ・ラヴィーン・スプーンフル』という二枚のアルバムを一つに録音したMDをウォークマンに入れて、それを聴きながら1時間10分走った。

p46
8月14日、日曜日。朝のうちにカーラ・トーマスとオーティス・レディングの音楽をMDで聴きながら1時間15分走る。午後にはジムのプールで1300メートルを泳ぎ、夕方にはビーチに行って泳ぐ。そのあとでハナレイの街の入口近くにある「ドルフィン・レストラン」でビールを飲み、魚料理を食べる。ワルー(walu)という白身の魚だ。炭火焼にしてもらい、醤油をかける。つけあわせは野菜のケバブ。大きなサラダがついてくる。

p145
昨日はローリング・ストーンズの『ベガーズ・バンケット』を聴きながら走った。『悪魔を憐れむ歌』の「ホッホー」という例のファンキーなバックコーラスは、走るのには実にぴったりだ。その前日はエリック・クラプトンの『レプタイル』を聴きながら走った。どちらもけちのつけようのない音楽だ。心にしみるし、何度聴いても飽きない。とくに『レプタイル』は、走りながらずいぶん何度も聴いた。個人的な意見を言わせてもらえれば、『レプタイル』はゆっくりとランニングする朝に聴くにはうってつけのアルバムである。

posted by cpractice at 13:03| Comment(2) | TrackBack(0) | その他 | このブログの読者になる | 更新情報をチェックする

2010年11月07日

Redmineプラグインでメニューの表示順を変えてみる

最近はRedmineプラグインの作り方を調べている。
今回はプラグインを使って、プロジェクトメニューの項目を消したり位置を変えてみる。
(プロジェクトメニューとは、プロジェクトを選択したときに表示されるメニュー。)

試してみたのは、プロジェクトを選択したときに表示される「概要」タブを削除し(個人的にほぼ使わないタブなので)、「活動」タブ(あまり使わないタブなので)を「設定」の直前に持ってくること。

試した環境は下記の通り。

Redmine 1.0.2
Rails 2.3.5
Ruby 1.8.6
WindowsXP

なおRedmineのプラグインの作り方をダイジェストにまとめた記事「Redmineプラグイン作成方法のまとめ」もあるので、必要であれば参考に。

では、プラグインの作成方法を下記に示す。

1. Redmineプラグインの雛形を作成

Redmineプラグインの雛形をgenerateコマンドで作成する。
ここではプラグインの名前をNewUIとする。

> cd <REDMINE_HOME> 
> ruby script/generate redmine_plugin NewUI

すると、vendor/plugins/redmine_new_ui というディレクトリーと、それ以下にプラグインに必要なファイルが作成される。

2. init.rbの編集

メニュー位置の変更は、自動生成されたinit.rbで定義できる。
下記のようにinit.rbを変更する。

vendor/plugins/redmine_new_ui/init.rb

Redmine::Plugin.register :redmine_new_ui do
  name 'Redmine New Ui plugin'
  author 'Author name'
  description 'This is a plugin for Redmine'
  version '0.0.1'
  url 'http://example.com/path/to/plugin'
  author_url 'http://example.com/about'
  
  Redmine::MenuManager.map :project_menu do |menu|
    menu.delete :overview
    menu.delete :activity
    menu.delete :settings
    menu.push :activity, 
{ :controller => 'activities', :action => 'index' } menu.push :settings,
{ :controller => 'projects', :action => 'settings' }, :last => true end
end

上記青字部分が追加した箇所。
menu.deleteでメニューを削除、menu.pushでメニューを追加できる。

上の例では、「概要(overview)」、「活動(activity)」、「設定(settings)」の3つのタブを削除し、「活動(activity)」、「設定(settings)」を再度後半に加えている。 結果的に「概要」タブがなくなって、「活動」タブが「設定」タブの左に移動した形になるはずである。

3. Redmineを再起動

プラグインを有効にするにはRedmineを再起動する必要がある。

> ruby script\server

すると下記のようにメニューの位置が変更されているのが分かる。

プラグイン追加前

menu1

プラグイン追加後

menu2

menu.pushで独自のメニューを追加することもできる。controllerやactionにプラグイン内で作成したコントローラーやアクションを指定すればよい。

Redmineに既存のメニューを追加する場合は、controllerやactionの設定をどのような値を設定すればよいか迷うかもしれない。そんなときは、lib\redmine.rbを参考にすればよいだろう。このファイルを読むとプロジェクトメニューや管理権限メニューが、どのように設定されるかが分かると思う。

参考リンク

posted by cpractice at 23:14| Comment(0) | TrackBack(0) | Redmine | このブログの読者になる | 更新情報をチェックする

2010年11月06日

テーマを使ってRedmineにロゴマークを入れてみる

自分たちの会社やグループでRedmineを使っていると、ページにロゴマークを入れたくなることはないだろうか?前回の記事「Redmineの外観を変える」でも紹介したが、Redmineではテーマと呼ばれる外観を変える仕組みを持っている。今回はそれを利用して、Redmineのページにロゴマークを入れてみる。

Redmineには公式のロゴがあるようなので、それを利用してみた。

画像は横40px、縦30pxのサイズに調整し下記のような透過PNG画像(logo.png)にした。

logo

テーマの作成方法

1. CSSファイルの作成

下記のように、application.cssを作成する。

application.css

/* load the default Redmine stylesheet */
@import url(../../../stylesheets/application.css); 

#header {
    background: #507AAA url('../images/logo.png') no-repeat scroll 3px 0%;
}
#header h1 {
    padding-left: 45px;
}

Redmineの各ページのヘッダー部分のソースコードは、下記のようになっている。

<div id=”header”>

<h1>Redmine</h1>
</div>

上のCSSではdiv#header部分に背景としてロゴマークを入れている。またh1要素のタイトルをpadding-leftを使って右に45pxずらしている。

2. テーマディレクトリーの作成とCSSファイル、画像ファイルの配置

<REDMINE_HOME>/public/themesの下にredmine_logoというディレクトリーを作成する。
このディレクトリー名がテーマ名になる。
そのディレクトリーの下にapplication.cssとlogo.pngを下記のように配置する。

public 
│ 
└─themes 
    . 
    . 
    │ 
    ├─redmine_logo 
    │  ├─images 
    │  │      logo.png
    │  │ 
    │  └─stylesheets 
    │          application.css

3. Redmineの再起動

配置後、Redmineを起動する。

> ruby script\server 

起動後、管理者権限でログインし、「管理」→「設定」を選択。「表示」タブをクリックすると「テーマ」のプルダウンリストに今回追加したテーマ「Redmine logo」が表示されるはず。

そのテーマを選択し適用すると、下記のようにヘッダー部分にロゴが表示されるようになる。

redmine_logo

青系の背景にRedmineの赤のロゴマークは、どうもしっくりこないが・・・。
いずれにしても、テーマファイルを作成することで、Redmineのオリジナルなコードを変更せずにロゴマークを追加することができる。

posted by cpractice at 14:16| Comment(0) | TrackBack(0) | Redmine | このブログの読者になる | 更新情報をチェックする

2010年11月03日

Redmine1.0.2をインストールしてみた(Windows編)

Redmine、しばらくぶりに本家ページを覗いてみたら1.0.2までリリースされていた。
過去のバージョンアップの頻度を見てみると、以下のような感じである。

  • 1.0.2 (2010/09/26)
  • 1.0.1 (2010/08/22)
  • 1.0.0 (2010/07/18)
  • 0.9.6 (2010/07/07)

一ヶ月に一回のペースでマイナーバージョンアップがなされている。
なかなか活発なコミュニティーである。

ということで、最新版の1.0.2をWindows環境にインストールしてみた。
インストール方法はRedmine0.9.xのときとあまり変わらない。
インストールした環境はWindowsXP。

1. 前提条件の確認

Redmine1.0.2がサポートしているのは下記の環境。

モジュール名 必須バージョン 確認コマンド
Ruby 1.8.x (RedmineはRuby1.9をサポートしていないので注意) ruby -v
Rails 2.3.5 rails -v
Rack 1.0.1 gem list rack
MySQL 5.0以上 mysql --version

このバージョンがインストールされていなければ、RailsとRackについては下記のコマンドでインストールしよう。

Rails 2.3.5
> gem install rails -v=2.3.5

Rack 1.0.1
> gem install rack -v=1.0.1

2. zipファイルのダウンロードと展開

redmine-1.0.2.zipを下記パージからダウンロードして、適当な場所に展開する。
(以下ではc:\rails\redmine-1.0.2に展開したとして話をすすめる。)

3. データベースとメール設定ファイルの変更

データベースの設定に関しては、config/database.yml.exampleをdatabase.ymlという名前でコピーして、内容を適宜変更する。

productionモードで使用するならばproductionの項目を、developmentモードで使用するならば、developmentの項目を設定する。

> cd c:\rails\redmine-1.0.2\config
> copy database.yml.example database.yml

メール設定に関しては、config/email.yml.exampleをemail.ymlという名前でコピーして、内容を適宜変更する。

> cd c:\rails\redmine-1.0.2\config
> copy email.yml.example email.yml

詳しくは「WindowsにRedmineをインストールしてみた (1)」の記事を参照のこと。

4. 環境変数の設定

productionモードで環境を作りたいのであれば、最初に環境変数RAILS_ENVをproductionに設定しておく。

> set RAILS_ENV=production

developmentモードで環境を作るのであれば、上記コマンドは不要。

5. DBの作成

下記コマンドでdevelopment環境でのデータベースを作成する。

> cd c:\rails\redmine-1.0.2
> rake db:create

実行するとdatabase.xmlで指定した名前のデータベースが作成できているはず。

なお、このコマンドを実行すると下記のエラーが返ってくることがある。

!!! The bundled mysql.rb driver has been removed from Rails 2.2. 
Please install the mysql gem and try again: gem install mysql.

そのときは、Rubyのmysqlパッケージをインストールする必要がある。

> gem install mysql

mysqlをインストール後、さらに下記のエラーが表示される場合がある。

!!! The bundled mysql.rb driver has been removed from Rails 2.2.
Please install the mysql gem and try again: gem install mysql. C:/Ruby/lib/ruby/gems/1.8/gems/mysql-2.8.1-x86-mingw32/
lib/1.8/mysql_api.so: 126 : 指定されたモジュールが見つかりません。  
- C:/Ruby/lib/ruby/gems/1.8/gems/mysq l-2.8.1-x86-mingw32/lib/1.8/mysql_api.so (LoadError)

そのときは、下記URLからlibmySQL.dllをダウンロードして、Rubyのbinディレクトリー(Ruby\bin)の下にコピーすればよい。

http://instantrails.rubyforge.org/svn/trunk/InstantRails-win/InstantRails/mysql/bin/libmySQL.dll

これは、新しいバージョンのMySQLを使っていると発生する問題であるようだ。

6. セッションストアの設定

> rake generate_session_store 

これを実行すると config\initializers\session_store.rb というファイルが生成されているのが分かる。

7. テーブルの作成

rakeのmigrationコマンドを実行。

> rake db:migrate 

実行するとデータベースにテーブルが生成されているはず。

8. デフォルトデータの設定

テーブルにデフォルトデータを設定する必要があるので下記コマンドを実行する。

> rake redmine:load_default_data 

途中、デフォルトデータの言語を聞かれるので、日本語にする場合はjaと入力してエンターキーを押す。

C:\rails\redmine-1.0.2>rake redmine:load_default_data 
(in C:/rails/redmine-1.0.2) 

Select language: bg, bs, ca, cs, da, de, el, en, en-GB, es, eu, fi, fr, 
gl, he, hr, hu, id, it, ja, ko, lt, lv, mk, mn, nl, no, pl, pt, pt-BR, 
ro, ru, sk, sl, sr, sr-YU, sv, th, tr, uk, vi, zh, zh-TW [en] ja 

9. Redmineの起動

下記コマンドでredmineを起動する。

> ruby script\server 

productionモードの場合は、

> ruby script\server -e production 

で起動。

起動後、http://localhost:3000/にアクセスして下記のページが表示されればインストール成功である。

2010-10-31_154352

ログイン名: admin
パスワード: admin

でログインできる。

参考リンク

posted by cpractice at 12:41| Comment(0) | TrackBack(0) | Redmine | このブログの読者になる | 更新情報をチェックする

2010年11月01日

PureVPNを使ってもTwitterやYouTubeにアクセスできないときの対処法

中国からPureVPNを使ってもTwitterやYouTubeにアクセスできない、といったことはないだろうか?

そんなときは、DNSサーバーの設定を変更すると解決する可能性が高い。
(PureVPNって何?という方は、「VPNサービスを使ってみた」を参照のこと)

変更方法は下記の通り(以下はWindowsXPの場合)。

1. PureVPNに接続するときの要領で、接続ダイアログを開き、「プロパティ」をクリックする。

2010-10-31_184319

2. 「ネットワーク」タブをクリックし、「インターネット プロトコル(TCP/IP)」をダブルクリックする。

2010-10-31_184333

3. 下記のようなダイアログが表示されるので、「次のDNSサーバーのアドレスを使う」を選択し下記の値を入力する。

優先DNSサーバー: 8.8.8.8
代替DNSサーバー: 8.8.4.4

2010-10-31_184347

入力後OKをクリック。

このDNSサーバーは、Googleが無償で提供しているGoogle Public DNSサーバーというものである。詳しくは下記リンクを参照してみてほしい。

ただし、必ずしもこの値を入力する必要はなく、中国国外の他のDNSサーバーを知っている場合は、そのIPアドレスを入力してもよい。

なぜアクセスできなかったのか?

インターネット上にあるサーバーは、それぞれIPアドレスというものを持っている。
IPアドレスは、いわばインターネット上の住所のようなもので、一意に決まっているものである。
住所ようなものと言えど、そのIPアドレスは 37.61.54.158 のような数字の羅列で人間にとって扱いにくい。ということで、「もっと人間にも分かりやすい住所にしよう」ということで、考え出されたのが「名前解決」という仕組み。

この名前解決を使うと、IPアドレス37.61.54.158は、www.youtube.comという住所でアクセスできるようになる。そして、その名前解決を管理しているのが、DNSサーバーというものである。

通常PCからウェブサイト(例えばhttp://www.youtube.com/)にアクセスする場合、DNSサーバーを使ってIPアドレスを手に入れる必要がある。なぜなら、IPアドレスを知らないと、そのサーバーにアクセスできないからである。そして、取得したIPアドレスを元にコンピューターの内部では実際のアクセスが行われる。

PureVPNに接続しているにも関わらず、YouTubeやTwitterにアクセスできなかったのは、名前解決をしようとして中国国内のDNSサーバーに問い合わせたみたが、正しいIPアドレスを取得できなかったから、ではないかと予想できる(あくまで私の推測だが)。

参考リンク

posted by cpractice at 22:21| Comment(0) | TrackBack(0) | VPN | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。