はじめに
職場や学校などでは、ネットワークに接続するためにプロキシ(Proxy)サーバーと呼ばれるものを介する場合が多いと思います。そのような環境下では、本書でネットワーク接続を必要とする演習をそのままでは実行できません。下記の設定を行えば、全ての演習を実行できるようになりますが、上級者向けの内容ですので、職場や学校のネットワーク管理者など、ネットワークに詳しい方と一緒に作業することをお勧めします。
aptコマンド
ソフトウェアのインストールの際などに実行するaptコマンドを用いるための方法です。まず、ターミナルソフトウェアLXTerminalを起動し、以下のようにテキストエディタleafpadで設定ファイル/etc/apt/apt.confを作成します。
$ sudo leafpad /etc/apt/apt.confなお、NOOBS 3.2.1以降ではテキストエディタとしてleafpadではなくmousepadを用います。
$ sudo mousepad /etc/apt/apt.confこのファイルに下記の内容を記述します。「プロキシサーバー名」や「ポート番号」は環境によって異なりますので、ネットワーク管理者にお尋ねください。
Acquire::http::proxy "http://プロキシサーバー名:ポート番号/"; Acquire::https::proxy "https://プロキシサーバー名:ポート番号/"; Acquire::ftp::proxy "ftp://プロキシサーバー名:ポート番号/"; Acquire::socks::proxy "socks://プロキシサーバー名:ポート番号/";記述が終わったら、ファイルを保存してからleafpadを閉じてかまいません。
以上で、「sudo apt install (パッケージ名)」、「sudo apt update」などのコマンドが実行できるようになります。
wgetコマンドやブラウザなど (Raspbian Stretch編)
次に、ファイルのダウンロードなどで用いるwgetコマンドや、ブラウザを利用するための方法です。まずは、RaspbianのStretch用の方法を記します。ターミナルソフトウェアLXTerminalを起動し、以下のように管理者権限のテキストエディタleafpadで設定ファイル/etc/environmentを編集用に開きます。
$ sudo leafpad /etc/environmentなお、NOOBS 3.2.1以降ではテキストエディタとしてleafpadではなくmousepadを用います。
$ sudo mousepad /etc/environmentRaspbianのバージョンにもよりますが多くの場合 /etc/environment は何も書かれていない空のファイルですので、そのまま以下の3行を記入してください。「プロキシサーバー名」や「ポート番号」は環境によって異なりますので、ネットワーク管理者にお尋ねください。もし何かが書かれていた場合も、その内容を壊さないように注意しながら、ファイルの末尾に以下の内容を記します。
http_proxy=http://プロキシサーバー名:ポート番号/ https_proxy=http://プロキシサーバー名:ポート番号/ ftp_proxy=http://プロキシサーバー名:ポート番号/以上の設定を記述したらファイルを保存してleafpadを閉じます。この設定を読み込むためにRaspberry Piを再起動してください。再起動後、ブラウザでインターネット上のウェブサイトを閲覧できるようになっているはずです。
wgetコマンドやブラウザなど (Raspbian Jessie および Wheezy編)
同じく wgetコマンドやブラウザを利用するための、 Raspbian Jessie や Wheezy 用の方法を記します。ターミナルソフトウェアLXTerminalを起動し、以下のようにテキストエディタleafpadで設定ファイル.bashrcを編集用に開きます。
$ leafpad .bashrcなお、NOOBS 3.2.1以降ではテキストエディタとしてleafpadではなくmousepadを用います。
$ mousepad .bashrc.bashrcファイルは既存のファイルなので様々な内容が書かれています。この内容を壊さないように注意しながら、ファイルの末尾に下記の内容を追記します。「プロキシサーバー名」や「ポート番号」は環境によって異なりますので、ネットワーク管理者にお尋ねください。
export http_proxy=http://プロキシサーバー名:ポート番号/ export https_proxy=http://プロキシサーバー名:ポート番号/ export ftp_proxy=http://プロキシサーバー名:ポート番号/以上の設定を記述した後、この設定を読み込む必要がありますが、そのためにはRaspberry Piを再起動してしまうのが簡単です。
再起動後、ブラウザでProxyを有効にするにはターミナルからコマンドでブラウザを起動しなければなりません。ご注意ください。
Chromiumブラウザの場合
chromium-browser &epiphanyブラウザの場合
epiphany &
gitプロトコルに対するgitコマンド
以上で本書の内容のほとんどを実行できるようになりましたが、wiringPiをインストールするために本書213ページで紹介したコマンド「git clone git://git.drogon.net/wiringPi」だけはまだ実行できません。それを可能にする方法を記します。なお、NOOBS 1.4.2以降に含まれるRaspbian(JessieまたはStretch)には、wiringPiはデフォルトでインストールされていますので、上記コマンドの実行の必要はありませんのでご注意ください。まず、ターミナルソフトウェアLXTerminalを起動し、以下のようにcorkscrewというコマンドをインストールします。
$ sudo apt-get install corkscrew次に、以下のようにテキストエディタleafpadでホームディレクトリ上にgit-proxy.shという名前のファイルを作成します。
$ leafpad git-proxy.shなお、NOOBS 3.2.1以降ではテキストエディタとしてleafpadではなくmousepadを用います。
$ mousepad git-proxy.shこの中に、下記のような3行を記します。「プロキシサーバー名」や「ポート番号」は環境によって異なりますので、ネットワーク管理者にお尋ねください。
#!/bin/bash CORKSCREW=`which corkscrew` $CORKSCREW プロキシサーバー名 ポート番号 $1 $2記述したら保存してからleafpadを閉じて構いません。次に、そのままLXTerminal上で下記のコマンドを実行し、git-proxy.shを実行可能ファイルにします。
$ chmod a+x git-proxy.sh最後に、leafpadで設定ファイル.bashrcを開きます。
$ leafpad .bashrcなお、NOOBS 3.2.1以降ではテキストエディタとしてleafpadではなくmousepadを用います。
$ mousepad .bashrcこのファイルの末尾まで移動し、下記の1行を追記します。
export GIT_PROXY_COMMAND=/home/pi/git-proxy.sh記述したら保存してleafpadを終了します。その後、Raspberry Piを再起動して設定を再読み込みすれば、 wiringPiのダウンロード用のコマンド
$ git clone git://git.drogon.net/wiringPiが実行できるようになっているはずです。
時刻合わせ
プロキシ環境下ではRaspberry Piの時刻合わせが機能しない場合が多いと思います。そのような場合、もし職場や学校内に時刻合わせサーバーが存在すれば、下記の方法で時刻を合わせることができます。まず、RaspbianのStretch (NOOBS 2.4.3)以降の場合です。 時刻合わせにsystemd-timesyncdが用いられていますので、その設定を行います。 leafpadで設定ファイル/etc/systemd/timesyncd.confを開きます。
$ sudo leafpad /etc/systemd/timesyncd.confなお、NOOBS 3.2.1以降ではテキストエディタとしてleafpadではなくmousepadを用います。
$ sudo mousepad /etc/systemd/timesyncd.confファイル内で下記のような箇所を見つけます。
(略) [Time] #NTP= #FallbackNTP=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3 .debian.pool.ntp.orgこのうち、NTPに関する行の先頭の「#」を削除し、「=」の右辺にお使いの時刻合わせサーバーを記述します。 時刻合わせサーバが存在するかどうかはネットワーク管理者にお尋ねください。
記述後、Raspberry Piを再起動すれば時刻が合うようになります。
一方、RaspbianのWheezy/Jessie (NOOBS 2.4.2まで) の場合、時刻合わせにntpdが用いられていますので、その設定を行います。
leafpadで設定ファイル/etc/ntp.confを開きます。
$ sudo leafpad /etc/ntp.confファイル内で下記のような箇所を見つけ、編集します。時刻合わせサーバが存在するかどうかはネットワーク管理者にお尋ねください。
(略) # You do need to talk to an NTP server or two (or three). #server ntp.your-provider.example server その環境の時刻合わせサーバ ←時刻合わせサーバが存在すれば記す # pool.ntp.org maps to about 1000 low-stratum NTP servers. Your server will # pick a different set every time it starts up. Please consider joining the # pool: <http://www.pool.ntp.org/join.html> #server 0.debian.pool.ntp.org iburst ←ここは#でコメントアウト #server 1.debian.pool.ntp.org iburst ←ここは#でコメントアウト #server 2.debian.pool.ntp.org iburst ←ここは#でコメントアウト #server 3.debian.pool.ntp.org iburst ←ここは#でコメントアウト (略)記述後、Raspberry Piを再起動し、数分待てば時刻が合うようになります。
カーネルやファームウェアのアップデートに用いるrpi-updateコマンド
Raspberry Piのカーネルやファームウェアのアップデートにはrpi-updateと呼ばれるコマンドを用いますが、やはりプロキシ環境下では実行できません。 本書内ではこのコマンドを使いませんが、参考のためにその方法を記しておきます。ターミナルソフトウェアLXTerminalを起動し、ホームディレクトリで以下のコマンドを順に実行します。
$ sudo -E rpi-update補足すると、「-E」というオプションを付ける必要があるというわけです。
プロキシ(Proxy)環境下での本書9章と10章の実行
さて、以上で本書の内容をプロキシ環境下で学べるようになりましたが、9章と10章を学ぶ際にはもう一点、注意すべきことがあります。これらの章では、PCやスマートフォンのブラウザを通して、同一ネットワーク内のRaspberry Piにアクセスし、回路を制御します。この際の模式図が下図です。このPCやスマートフォンでは、通常のインターネットへのアクセスの際にプロキシサーバを経由しなければなりませんが、同一ネットワーク内のRaspberry Piへアクセスする場合は、プロキシサーバーを経由せず直接アクセスせねばなりません。
そのために、Raspberry PiのIPアドレス(ここでは192.168.1.3とします)を「プロキシの例外サイト」としてあらかじめ登録しておく必要があります。
Windowsの場合の例外サイトの設定法を示したのが下図です。「インターネットオプション」から「LANの設定」を辿るとプロキシサーバーを設定できます。さらに「詳細設定」ボタンをクリックすることで、例外サイトを設定できます。図では192.168.1.3が登録されていることがわかるでしょう。
この「例外サイト」の設定はMac OSXにも存在します。「システム環境設定」→「ネットワーク」
→「詳細」→「プロキシ」です。
しかし、iOS(iPhoneやiPad)の場合、この例外サイトの設定は存在しないため、iOSでプロキシの設定自体を無効にする(すなわち、上の図でインターネットへのアクセスができない状態にする)しかありません(pacファイルと呼ばれるものをサーバーに設置してこの問題を回避する方法もありますが、ここでは割愛します)。
androidの場合、Wifiの設定に例外サイトの設定があるのですが、この設定が機能しないことも多く、やはりプロキシの設定を無効にしてRaspberry Piにアクセスせざるを得ない場合があります。
記事を拝見しました。
返信削除ラズパイ3bを学校の有線ネットワークに繋げたいのですが、プロキシサーバーアドレスとポート番号に加えてユーザー名、パスワードなどの認証情報が必要な場合の設定はどのようになりますか?
下記サイトの情報が参考になるのではないでしょうか。
削除ただし、私は試しておりませんのでご注意ください。
https://qiita.com/showsuzu/items/9ee031208d38ff8ac889