1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

テレワーク時代の MacOS X Terminal の Proxy切り替え

Posted at

先月から本格的な自宅勤務体制が始まりました。

ネットワーク環境が変わると、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 の、ご参考になれば幸いです。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?