ATOM
SublimeText
proxy

Atomの認証proxy設定(ドメイン有りの場合)

概要

proxyの設定に関しては下記サイトを参考にします。

ATOMエディタのproxy設定

それでも、proxyを通すことができなかった経緯と、解決策について記載します。

経緯

転職先の会社でAtomをインストールしようとしたところ、proxyが全く通らない。
色々試していくうちに、proxyのユーザー名の先頭に必要な ドメイン が悪いらしい
(転職先の会社はどうやらシンクライアント?)。

つまり、proxyを通してインターネットに接続する際、

ユーザー名: DOMAIN¥USERNAME

というように、「ドメイン名+バックスラッシュ+ユーザー名」という形式になっていました。

解決策(認証proxy記述方法)

apmコマンドで登録するか、.apmrcに設定を記述します。

ドメイン無し

http-proxy http://username:password@proxy-host:port
https-proxy http://username:password@proxy-host:port

※ https-proxyでも、値は「http://」

ドメイン有り

http-proxy http://domain%5Cusername:password@proxy-host:port
https-proxy http://domain%5Cusername:password@proxy-host:port

説明

ドメイン無しと比較すると、domain%5Cを追加しています。

形式 内容
domain ドメイン名(ネットワークに接続する際のバックスラッシュの前部分)
%5C バックスラッシュのURLエンコードの記述
username proxy認証ユーザー名
password proxy認証パスワード
proxy-host proxyのホスト(e.g. proxy.company.co.jp
port 10080や、8080など、設定による

その他(SublimeText3の場合)

Atomが重くて動かなくなったので、SublimeText3でも同様にproxy設定を行いました。
その際にも若干ハマったので、備忘録として記載します。

基本は以下を参考にしました。

認証付きプロキシの環境でPackage Controlを導入する方法

PackageControlのインストール

コンソール経由でPackageControlを入れる際のドメイン付きプロキシ設定は以下の通りです。

...
urllib.request.ProxyHandler({"http": "http://[domain]%5C[username]:[password]@[proxy_server]:[port]", "https": "https://[domain]%5C[username]:[password]@[proxy_address]:[port]"})) );
...

※ 抜粋しています。全文は公式ページで取得を推奨。

つまり、[username]の前に、[domain]%5Cを挿入します。

PackageControlの設定

インストール後、各パッケージをインストールする際にもproxyを通さないといけないので、その設定を行います。

上記参考サイトに従って、ユーザーの設定に以下を追記します。

{
    "http_proxy": "http://[proxy_server]:[port]",
    "https_proxy": "https://[proxy_server]:[port]",
    "proxy_username": "[domain]¥¥username",
    "proxy_password": "password"
}

変更点は、proxy_usernameのユーザー名にドメイン([domain])を挿入していますが、ドメイン名とユーザー名の繋ぎは、今回はURLエンコードではなく、バックスラッシュをエスケープする形で、「¥¥」が正解です(1個じゃだめ)。