今、話題の人工知能(AI)などで人気のPython。初心者に優しいとか言われていますが、全然優しくない! という事を、つらつら、愚痴っていきます

253.ラズパイ無双[2.proxy設定]

»

初回:2022/4/20

 Raspberry Pi (ラズベリーパイ、通称"ラズパイ")で何か作ってみようという新シリーズです。今回はラズパイを社内ネットワークに接続する場合に必須?の藤井聡太五冠の設定についてです。

P子「プロキシ(プロ棋士)の事ね」※1

 企業内LANにラズパイを接続して利用することを想定した場合、外部との通信にはプロキシ経由で接続するのが一般的だと思います。

P子「外部と接続って?」

 社内のみで利用するにしても『sudo apt update』とかの呪文を唱える必要もありますし、色々なツールをダウンロードする必要もあります。なので、外部と接続できないと不便です。

 ちなみに、すでに自社のネットワークのプロキシをご存じの場合は『3.ラズパイにプロキシを設定する』から読み始めてください。

【目次】

1.現在のプロキシ設定の確認

 Microsoft Edge を使用されている場合、その設定を確認します。
  1.Edge を起動し、画面右上の設定ボタン(3つの点の部分)をクリック
  2.「設定」 をクリック
  3.設定メニューの 「システム」をクリック
  4.「システム」欄にある「コンピューターのプロキシ設定を開く」をクリック

 ここで「設定を自動的に検出する」がオンになっている場合、プロキシは判りません。
 ≪参考資料≫
  https://takaken.tokyo/dev/network/proxy/get-proxy/
  Windows端末でプロキシ情報の取得方法

 上記に書かれているコマンドプロンプトでの確認でも、取得できません。

 > netsh winhttp show proxy

現在の WinHTTP プロキシ設定:

直接アクセス (プロキシ サーバーなし)。

 と表示されます。

2.自動構成されたプロキシを調べる

 社内LANの場合、個別に設定するのは大変なので、WPAD(Web Proxy Auto-Discovery)を利用した自動構成スクリプト(PACファイル)を利用している可能性が高いと思います。

P子「なら、先に言ってよ」

 少し判りにくいので、手順を追って説明します。
  1.ipconfig /all で自分のPCの設定を確認する。
   イーサネット アダプター イーサネット: 欄の
    接続固有の DNS サフィックス . . . . .: foo.bar.co.jp
   を記録
  2.wpad.dat の場所を類推する。
   先のDNS サフィックスが、foo.bar.co.jp の場合、
    http://wpad.foo.bar.co.jp/wpad.dat
    http://wpad.bar.co.jp/wpad.dat
   にアクセスして、wpad.dat が取得できるかどうか確認する。
  3.wpad.dat の中から、
   return "PROXY 192.168.0.10:8080; DIRECT
   ...的な書き方をされている個所を見つけます。

 ≪参考資料≫
  https://festiva1300.hatenadiary.org/entry/20070511/p1
  自動構成されたプロキシを調べる

3.ラズパイにプロキシを設定する

 /etc/apt/apt.confにプロキシを記述します。
 初期設定のRaspbianOSはapt.confは存在しないので、新規作成することになります。

  $ sudo nano /etc/apt/apt.conf
    // Comment
    Acquire::http::proxy "http://192.168.0.10:8080/";
    Acquire::https::proxy "https://192.168.0.10:8080/";
    Acquire::ftp::proxy "ftp://192.168.0.10:8080/";
    Acquire::socks::proxy "socks://192.168.0.10:8080/";

 ≪参考資料≫
  http://flow-developers.hatenablog.com/entry/2016/05/05/165540
  Rapsberry piをProxy環境でネットワーク接続するTips

 とりあえず普通の事は出来ると思いますので、後の設定は必要都度行えばよいと思います。

4.その他の設定(参考情報)

 1.wget でproxyが必要な場合、bashrcに設定する。
  $ sudo nano ./.bashrc
    # Comment
    export http_proxy=http://192.168.0.10:8080/
    export https_proxy=https://192.168.0.10:8080/
    export ftp_proxy=ftp://192.168.0.10:8080/

 2.pip でproxyが必要な場合
  sudo権限で実行する場合は、-Eオプションを使用します。
   $ sudo -E pip3 install hoge

  sudo でない場合は、直接指定してみる
   $ pip3 install hoge --proxy http://192.168.0.10:8080

 3.git でproxyが必要な場合
  $ git config --global http.proxy http://192.168.0.10:8080

  実際には、~/.gitconfigファイルに記述されています。
  $ nano ~/.gitconfig

 ≪参考資料≫
  https://qiita.com/ryotaro76/items/0e40ffb6173b1580e671
  GitコマンドをProxy環境可で利用する。

 4.chromium でproxyが必要な場合
  1.プラグインをインストールします。
   $ chromium-browser --proxy-server=https=192.168.0.10:8080
   ブックマークバーからアプリを開き右下のWebストアをクリック。
   ※ (Proxy SwitchyOmega が新バージョンです)
  2.chromium-browserを--proxy-serverオプションなしで再起動します。
   $ chromium-browser

   右上の地球儀のアイコンをクリックし、Optionでプロキシを設定する。
   Proxy Profilesを設定するだけなので直感的に設定できると思います。

 ≪参考資料≫
  https://qiita.com/tsubu-mustard/items/41e0f230a3203c01c355
  Linuxのchrome,chromiumでプロキシを通す

 5.subversion でproxyが必要な場合
  $ nano ~/.subversion/servers

   [global]
   http-proxy-host:192.168.0.10
   http-proxy-port:8080

 ≪参考資料≫
  http://masaoo.blogspot.jp/2011/01/subversion-proxy.html
  subversion を proxy 経由で使用する設定(svn)

 6.curl でproxyが必要な場合
  1.コマンドに直接指定
   $ curl www.yahoo.co.jp -x http://192.168.0.10:8080/
  2.~/.bashrcに設定
   $ cd
   $ sudo nano ./bashrc
   export http_proxy=http://192.168.0.10:8080/
   export https_proxy=http://192.168.0.10:8080/
  3.~/.curlrcに設定
   $ cd
   $ sudo nano ./curlrc
   proxy=http://192.168.0.10:8080/

 ≪参考資料≫
  https://qiita.com/tkj/items/c6dad4efc0dff4fecd93
  curlコマンドにてproxy設定

 7.デフォルトの環境変数を設定する
  ターミナルを立ち上げて実行する場合は、.bashrcに設定 で構いませんが、シェルを直接実行する場合は、効かない(みたい)なので、デフォルトの環境変数に設定しておきます。ただし、RDPで接続した環境では効かない(みたい)です。

   $ sudo nano /etc/environment
    export http_proxy=http://192.168.0.10:8080/
    export https_proxy=http://192.168.0.10:8080/

5.最後に

 実は、昔のOSでは、色々と設定していましたが、今はまだ apt と wget くらいしか使っていません。なので、/etc/apt/apt.conf の設定だけで使っています。今後、必要なケースが出てきたときに、都度設定してくことにしたいと思います。

ほな、さいなら

======= <<注釈>>=======

※1 P子「プロキシ(プロ棋士)の事ね」
 P子とは、私があこがれているツンデレPythonの仮想女性の心の声です。

Comment(0)

コメント

コメントを投稿する