2020年6月20日土曜日

プロキシ(Proxy)環境下での本書の演習の実行

はじめに

職場や学校などでは、ネットワークに接続するためにプロキシ(Proxy)サーバーと呼ばれるものを介する場合が多いと思います。そのような環境下では、本書でネットワーク接続を必要とする演習をそのままでは実行できません。

下記の設定を行えば、全ての演習を実行できるようになりますが、上級者向けの内容ですので、職場や学校のネットワーク管理者など、ネットワークに詳しい方と一緒に作業することをお勧めします。

aptコマンド

ソフトウェアのインストールの際などに実行するaptコマンドを用いるための方法です。この設定を行うことで、OSの更新も可能になります。

まず、ターミナルソフトウェアLXTerminalを起動し、以下のように管理者権限のテキストエディタmousepadで設定ファイル/etc/apt/apt.confを作成します。
$ sudo mousepad /etc/apt/apt.conf
このファイルに下記の内容を記述します。「プロキシサーバー名」や「ポート番号」は環境によって異なりますので、ネットワーク管理者にお尋ねください。
Acquire::http::proxy "http://プロキシサーバー名:ポート番号/";
Acquire::https::proxy "https://プロキシサーバー名:ポート番号/";
Acquire::ftp::proxy "ftp://プロキシサーバー名:ポート番号/";
Acquire::socks::proxy "socks://プロキシサーバー名:ポート番号/";
記述が終わったら、ファイルを保存してからmousepadを閉じてかまいません。

以上で、「sudo apt -y install (パッケージ名)」、「sudo apt update」などのコマンドが実行できるようになります。

ブラウザやwgetコマンドどなど

次に、ブラウザや、ファイルのダウンロードなどで用いるwgetコマンドを利用するための方法です。
(wget コマンドは、本書の旧バージョンでは用いましたが、最新バージョンでは用いません)

ターミナルソフトウェアLXTerminalを起動し、以下のように管理者権限のテキストエディタmousepadで設定ファイル/etc/environmentを編集用に開きます。
$ sudo mousepad /etc/environment
多くの場合 /etc/environment は何も書かれていない空のファイルですので、そのまま以下の3行を記入してください。「プロキシサーバー名」や「ポート番号」は環境によって異なりますので、ネットワーク管理者にお尋ねください。もし何かが書かれていた場合も、その内容を壊さないように注意しながら、ファイルの末尾に以下の内容を記します。
http_proxy=http://プロキシサーバー名:ポート番号/
https_proxy=http://プロキシサーバー名:ポート番号/
ftp_proxy=http://プロキシサーバー名:ポート番号/
以上の設定を記述したらファイルを保存してテキストエディタを閉じます。この設定を読み込むためにRaspberry Piを再起動してください。再起動後、ブラウザでインターネット上のウェブサイトを閲覧できるようになっているはずです。

時刻合わせ

プロキシ環境下ではRaspberry Piの時刻合わせが機能しない場合が多いと思います。そのような場合、もし職場や学校内に時刻合わせサーバーが存在すれば、下記の方法で時刻を合わせることができます。

ターミナルソフトウェアLXTerminalを起動し、以下のように管理者権限のテキストエディタmousepadで設定ファイル/etc/systemd/timesyncd.confを開きます。
$ 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を再起動すれば時刻が合うようになります。

プロキシ環境下で時刻合わせサーバーが提供されていない場合、Raspberry Piの時計を自動で合わせることができません。
その場合、下記のコマンドで手動で時計を合わせるのが良いでしょう。
例えば、2024年8月6日23:07に合わせたい場合、下記のコマンドで実現できます。
sudo date 080623072024

下記の省略形も可
sudo date 0806230724
sudo date 08062307


プロキシ(Proxy)環境下での本書9章と10章の実行

さて、以上で本書の内容をプロキシ環境下で学べるようになりましたが、9章と10章を学ぶ際にはもう一点、注意すべきことがあります。

これらの章では、PCやスマートフォンのブラウザを通して、同一ネットワーク内のRaspberry Piにアクセスし、回路を制御します。この際の模式図が下図です。このPCやスマートフォンでは、通常のインターネットへのアクセスの際にプロキシサーバを経由しなければなりませんが、同一ネットワーク内のRaspberry Piへアクセスする場合は、プロキシサーバーを経由せず直接アクセスせねばなりません。
そのために、Raspberry PiのIPアドレス(ここでは192.168.1.3とします)を「プロキシの例外サイト」としてあらかじめ登録しておく必要があります。


Windowsの場合の例外サイトの設定法を示したのが下図です。「設定」から「ネットワークとインターネット」→「プロキシ」と辿り、「手動プロキシ セットアップ」の「編集」ボタンをクリックするとプロキシサーバーおよび例外サイトを設定できます。図ではセミコロン(;)で区切ったうしろに、192.168.1.3が例外サイトとして登録されていることがわかるでしょう。
この「例外サイト」の設定はmacOSにも存在します。「システム環境設定」→「ネットワーク」
→「詳細」→「プロキシ」です。

しかし、iOS(iPhoneやiPad)の場合、この例外サイトの設定は存在しないため、iOSでプロキシの設定自体を無効にする(すなわち、上の図でインターネットへのアクセスができない状態にする)しかありません(pacファイルと呼ばれるものをサーバーに設置してこの問題を回避する方法もありますが、ここでは割愛します)。

androidの場合、Wifiの設定に例外サイトの設定があるのですが、この設定が存在しない場合(あるいは機能しない場合)は、やはりプロキシの設定を無効にしてRaspberry Piにアクセスせざるを得ないことがあります。

0 件のコメント:

コメントを投稿