先月から本格的な自宅勤務体制が始まりました。
ネットワーク環境が変わると、TerminalのProxy設定やらsshの設定やらを変える必要があり、従来までは、Mac OS X で ネットワークプロファイルをアクセスポイント名で自動切り替え といった方法をを使っていまいた。多くの場合、場所=アクセスポイントで良かったのです。このやり方ではWiFiのアクセスポイント名を使ってネットワークプロファイルを切り替えています。なお、 ssh関連も .ssh/config_no_proxy
.ssh/config_proxy
でproxyの有無で切り替えています。
ところが、本格的に自宅勤務するようになり、自宅のアクセスポイントでも社内にVPNするようなケースがでてきたため、自宅アクセスポイントに接続していても、ネットワーク環境が社内、というケースがでてきました。
そこで .bashrc
をこんな感じに変更しました。加えた処理としては、社内ネットワークにいないと疎通しないサーバーにpingをして、その結果も使ってproxy/ssh設定を切り替えます。アクセスポイントを見る処理はなくてもいいのですが、社内でもロケーションによって切り替えしたところがあったので残しています。
#!/bin/bash
## proxy trigger settings ##
proxy_name=http://internal.company.com:10080
switch_trigger=INTERNALWIFI # アクセスポイントの名前
INTERNAL_SITE=internal.company.com #疎通確認用
# no-proxy env.
ln -fs ~/.ssh/config_no_proxy ~/.ssh/config
# proxy env.
if [ "`networksetup -getairportnetwork en0 | awk '{print $4}'`" = "$switch_trigger" ]; then
export http_proxy=$proxy_name
export https_proxy=$proxy_name
export ftp_proxy=$proxy_name
export all_proxy=$proxy_name
ln -fs ~/.ssh/config_proxy ~/.ssh/config
else
#vpn
ping ${INTERNAL_SITE} -c 1 >> /dev/null 2>&1
if [ $? -eq 0 ]; then
export http_proxy=$proxy_name
export https_proxy=$proxy_name
export ftp_proxy=$proxy_name
export all_proxy=$proxy_name
ln -fs ~/.ssh/config_proxy ~/.ssh/config
fi
fi
VPNの接続・切断後、ネットワーク設定が変わって、proxy/sshの設定がずれていたら、新規でTerminalを開いて.bashrc
を動かせばサクッとgithubに繋がるようになりました。めでたしめでたし。
Work from Home の、ご参考になれば幸いです。