2017.05.05 [金] ターミナルを学校のProxy環境で使う時の設定
以前、サーバーを構築した際に、ターミナルを使ってインストール、設定をしたのですが、最近ではSyntaxHighlighterの記事でも書いたように、ライブラリの配布や制作環境の構築にも、ターミナルを利用する事が増えてきました。
「黒い画面、怖い」とばかりは言ってられませんので、使っていきたいのですが、Proxyサーバーが設置されている学校や企業では、設定が必要です。

実際に教室のMacから利用が可能になる設定を調べてみました。
Proxyとは
まず、Proxy(プロキシもしくはプロクシ)サーバーとは何でしょうか。
通常、PCからWebサイトを閲覧する場合、Webページの置かれたWebサーバーにアクセスして、要求します。

Proxyサーバーを利用すると、ユーザのPCはProxyサーバーにアクセスして要求をします。
その要求を、Proxyサーバーが経由して目的のWebサーバーに要求を送ります。
Webサーバーは要求されたWebページを、Proxyサーバーに経由して、そこからユーザーのPCへ渡します。

ユーザのPCとWebサーバーの間にProxyサーバーが入って代理・中継していることになります。
Proxyサーバーの役割
- Webページなどのキャッシュ
- Proxyサーバーは、アクセスしたWebページなどの情報を一定の期間保存する機能を持っている場合があり、ユーザーがWebページを表示しようとした時、それがキャッシュされたページであれば、Proxyサーバーに保存されたページの情報をユーザーへ渡すことができます。
Webサーバから、再度データを取得する場合より、俊敏な対応になります。 - コンテンツのフィルタリング
- ユーザーがアクセスしようとしたWebページの情報を記録するので、任意のWebページをフィルタリングすることができます。
ユーザー(学生)のインターネット利用を制限する場合や、子どもが有害コンテンツに触れないようにする時などの利用が考えられます。 - セキュリティ
- 一般的に、Webサイトにアクセスをすると、IPアドレスや接続環境情報などがWebサーバーに送信されます。
Proxyサーバーの中には、利用者の情報をWebサーバーに記録させないものもあり、このProxyサーバーを利用してアクセスした場合は、情報がWebサーバーに記録させることを防ぎます。
また、それらの情報を利用して、攻撃しようとした場合でも、ユーザーが直接攻撃を受ける危険性を減らすことができます。 - グローバルIPを割り振る必要がない
- インターネット上ではグローバルIPアドレスが必要です。
学校などの複数台あるネットワーク環境のパソコンにすべて割り振ることはできない時に、ProxyサーバーにグローバルIPアドレスを設定することで、インターネットに接続する際には、Proxyサーバーを経由にすることで、プライベートIPアドレスだけでもデータのやり取りができるようになります。
また、外部に公開されているProxyサーバーもあり、ここを使ってIPアドレスを隠匿することで、悪用されたりする事件もあり、ネット上では、昔から「串」と呼ばれ、Proxyを経由することを「串を刺す」と言われたりもします。
Proxyサーバー経由の各種設定
まずは前提として、PCの管理者権限が必要となります。Macのシステム環境設定>ネットワーク>でも同じような設定がありますが、ターミナルを利用する場面では、その設定が効かないようです。
説明するため、仮にProxyサーバーのアドレスをproxy.trident-com.ac.jp
、ポートが5040
とします。
実際に使う時は、自分の環境に置き換えてください。
npm(Node Packaged Modules)
npmは、Node.jsと一緒にインストールされます。
ターミナルで$ npm -v
と打ちこんで、バージョンが表示されればインストールされています。
ライブラリやパッケージの管理ツールを主にパッケージマネージャと呼ばれ、このパッケージマネージャを使うことで、ライブラリの導入や削除など管理することができます。
Proxyの設定は、npm configに追記します。httpの設定は、
$ npm config set proxy http://proxy.trident-com.ac.jp:5040
httpsも設定しておきます。
$ npm config set https-proxy http://proxy.trident-com.ac.jp:5040
確認のため、$ npm config list
と打って、
; cli configs user-agent = "npm/3.10.10 node/v6.10.2 darwin x64" https-proxy = "http://proxy.trident-com.ac.jp:5040/" proxy = "http://proxy.trident-com.ac.jp:5040/" proxy@proxy.trident-com.ac.jp:5040 = "" …などとズラズラと表示されればOKです。
学外などproxyの設定が必要なく解除したい時は、
$ npm config delete proxy $ npm config delete https-proxy
Git
Gitとは、プログラムソースなどの変更履歴を管理する分散型の“バージョン管理”をするシステムのことです。
最近では、利用する機会も増えてきており、GUIのツール「SourceTree」などを利用するのですが、Windows版では環境設定でProxyの設定があり、設定をします。
しかし、Mac版では、ターミナルで設定します。
まずは、Gitがインストールされているか$ git --version
で確認します。
インストールされていなければ、Gitをダウンロードしてインストールしてください。
gitのProxyをターミナルで設定します。
$ git config --global http.proxy http://proxy.trident-com.ac.jp:5040 $ git config --global https.proxy http://proxy.trident-com.ac.jp:5040
$ git config --list
で書き込まれていれば成功です。
削除したい場合は、
$ git config --global --unset http.proxy $ git config --global --unset https.proxy
プロジェクトごとに、利用するしないを切り替えることもできるようです。
参考:いつの間にかSourceTreeが環境変数HTTP_PROXYを見なくなった? - ごずろぐ
Homebrew
Gitをアップデートさせたい時などに利用するのが、OS X上で動くパッケージ管理システム「Homebrew」です。
Homebrewをインストールするには、Webサイトのコマンドをターミナルにコピペして実行します。
※コマンドが変更する場合があるようです。実際に利用する場合は、Homebrew Webサイトからコピペしてください。
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
ところが、Proxyの環境では設定しないとインストールされませんので、
$ vi ~/.bash_profileとターミナルに打つと、viエディタが起動し、.bash_profile が編集できるようになります。
$ export http_proxy=http://proxy.trident-com.ac.jp:5040/ $ export https_proxy=http://proxy.trident-com.ac.jp:5040/
viエディタは使い方が特殊ですので、Google先生に聞きながら編集・保存してください。
$ source ~/.bash_profile
編集を反映させます。もしくは、ターミナルを再起動すると良いかも知れません。
$ exec $SHELL -l
これで、Homebrewのインストールコマンドが通るようになります。
設定を削除したい場合は、再度$ vi ~/.bash_profile
で削除します。
proxy環境と非proxy環境で設定を切り替える方法もあるようです。
参考:Macbookでproxy環境と非proxy環境のネットワーク設定をスマートに切り替えるメモ - Qiita
参考:Macのネットワーク環境に合わせてHTTP_PROXYを切り替えるシェルスクリプト - Qiita
ssh
sshとは、Secure Shell(セキュアシェル)の略称で、パスワードなどの認証部分を含む、すべてのネットワーク上の通信が暗号化されて、リモートでコンピュータと通信するためのプロトコルです。
遠隔からリモートでサーバーの操作画面を呼び出し、キーボードなどでコマンドなどを送信・実行することで、操作することができます。
サーバーの設定をする場合に利用します。
接続先サーバーをserver.example.com
、ユーザーをtridents001
とします。
$ ssh -o ProxyCommand='nc -x proxy.trident-com.ac.jp:5040 %h %p' trident001@server.example.com
何度も利用する場合は~/.ssh/config
に設定を書いておくと便利です。
$ vi ~/.ssh/config Host server.example.com ProxyCommand nc -X connect -x proxy.trident-com.ac.jp:5040 %h %p
設定以降は、
$ ssh trident001@server.example.com
でパスワードを求められますので、入力すれば接続できます。
gem install
gemは、Ruby用のパッケージ管理ツールです。
Ruby用のライブラリを使う時に必要となるソフトウェアですが、sass関連ファイルのインストールで利用したりします。
$ gem install *** -p http://proxy.trident-com.ac.jp:5040
何度も利用する場合は、設定を書いておきます。
$ vi ~/.gemrc http_proxy: http://proxy.trident-com.ac.jp:5040
おまけ
アイキャッチにもしましたが、ターミナルには、いろいろとジョークコマンドがあるので、調べてみると無機質なターミナルが楽しくなるかも。
ちなみに、マトリックス風の画面「cmatrix」は、homebrewでダウンロードして使います。
$ brew install cmatrix $ cmatrix
解除する時は、controlボタン+cです。
- 関連記事
-
- 手軽に目次機能を導入できる「TOC」がダウンロードできなかったので。 (2017/11/11)
- ターミナルを学校のProxy環境で使う時の設定 (2017/05/05)
- SyntaxHighlighter4.0.1にアップデート (2017/04/30)
- ScrollMagicでアニメーション (2015/09/25)
- ScrollMagicを調べた。 (2015/08/29)
- WordPressでCrayon Syntax Highlighterプラグイン (2015/06/09)
- canvas要素でパーティクル vol.2 (2015/04/18)
- canvas要素でパーティクル vol.1 (2015/04/16)
- 特別授業「CSS3 Animation」 (2014/09/02)
- 忘れていた「Google Web Designer」を起動してみた。 (2014/03/22)