🌐
学内無線LANのプロキシ設定/解除を自動化させたい
概要
私の通っている学校では、学内の無線LANを使用する際に各種プロキシの設定をする必要があります(特にgit
とapt
)。今まではgit
やapt
の設定をaliasに書いて毎回学校でset、家ではunsetといちいちコマンドを叩いていたのですが、面倒なので自動化させてみることにしました。
環境
Ubuntu 20.04.1 LTS
やったこと
こんな感じで書きました。シェルスクリプトはほとんど書いたことないので、色々勉強になりました。
proxy_set.sh
#!/bin/bash
HTTP_PROXY="http://hoge.jp"
HTTPS_PROXY="https://hoge.jp"
wireless_network_interface_name="wlan0"
SSID="huge"
NAME=`iwconfig ${wireless_network_interface_name} | grep ESSID`
if [ `echo ${NAME##*ESSID:} | grep ${SSID}` ];then
export http_proxy=${HTTP_PROXY}
export https_proxy=${HTTPS_PROXY}
git config --global http.proxy ${http_proxy}
git config --global https.proxy ${https_proxy}
alias apt='apt -o Acquire::http::proxy="${http_proxy}"'
else
unset http_proxy
unset https_proxy
git config --global --unset http.proxy
git config --global --unset https.proxy
fi
HTTP_PROXY
とTTPS_PROXY
にはそれぞれプロキシサーバを記述、wireless_network_interface_name
には無線LANインターフェース名を記述、SSID
にはプロキシ設定を行う際に接続するSSIDを記述します。
iwconfig ${wireless_network_interface_name} | grep ESSID
では現在接続している無線LANのSSIDを取得して、特定のSSID(私なら学校)ならプロキシ設定、それ以外なら解除しています。
自動化
あまり良い方法が思いつきませんでした...
とりあえず現段階では~/.bashrc
に
source 任意の場所/auto-proxy-setter/proxy_set.sh
を記述してシェルの起動時に設定or解除をしています。
終わりに
これ置いてあるリポジトリです↓
Discussion