プロキシ設定が必要な学内 or 社内LANに接続する際のプロキシ設定の切り替えをしやすくするスクリプトを用意します。
目次
Windows 10 の場合
Windows 10 の場合、バッチファイルを作成すると楽でしょう。
@powershell -NoProfile -ExecutionPolicy Unrestricted "$s=[scriptblock]::create((gc \"%~f0\"|?{$_.readcount -gt 1})-join\"`n\");&$s" %*&goto:eof $proxy_host="http://www-proxy.univ.jp" $proxy_port="8080" $ignore_hosts="*.univ.ac.jp" $reg_key="HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings" "[1] Enable univ proxy." "[2] Disable univ proxy." $key_input=Read-Host " " if($key_input -eq "1"){ Set-ItemProperty -path ${REG_KEY} ProxyEnable -value 1 Set-ItemProperty -path ${REG_KEY} ProxyServer -value "${proxy_host}:${proxy_port}" Set-ItemProperty -path ${REG_KEY} ProxyOverride -value "${ignore_hosts};<local>" }elseif($key_input -eq "2"){ Set-ItemProperty -path ${REG_KEY} ProxyEnable -value 0 } $source=@" [DllImport("wininet.dll")] public static extern bool InternetSetOption(int hInternet, int dwOption, int lpBuffer, int dwBufferLength); "@ $wininet = Add-Type -memberDefinition ${source} -passthru -name InternetSettings ${wininet}::InternetSetOption([IntPtr]::Zero, 95, [IntPtr]::Zero, 0)|out-null ${wininet}::InternetSetOption([IntPtr]::Zero, 37, [IntPtr]::Zero, 0)|out-null
3行目の $proxy_host
にはプロキシサーバーのURL を、4行目の $proxy_port
にはプロキシサーバーのポート番号を指定します。5行目の $ignore_hosts
に指定したURLへの通信はプロキシサーバーを経由しません。
proxy.bat
という名前でバッチファイルを作成したとします。プロキシ設定を切り替えたい時は、エクスプローラー(デスクトップ画面に作成したならデスクトップ画面)で proxy.bat
をダブルクリックして実行します。 1
をタイプして Enter キーを押すとプロキシが有効になり、 2
をタイプして Enter キーを押すとプロキシが無効になります。
Ubuntu 18.04 Desktop の場合
Bash スクリプトを用意して、source コマンドでスクリプトを読み込んであげると楽でしょう。
proxy_host="http://www-proxy.univ.jp" proxy_port="8080" ignore_hosts="'*.univ.ac.jp'" read -p "[1] Enable univ proxy. [2] Disable univ proxy. : " proxy_idx case "$proxy_idx" in 1) export http_proxy="$proxy_host:$proxy_port" export https_proxy="$proxy_host:$proxy_port" export HTTP_PROXY="$http_proxy" export HTTPS_PROXY="$https_proxy" gsettings set org.gnome.system.proxy mode "manual" gsettings set org.gnome.system.proxy.http host $proxy_host gsettings set org.gnome.system.proxy.http port $proxy_port gsettings set org.gnome.system.proxy.https host $proxy_host gsettings set org.gnome.system.proxy.https port $proxy_port gsettings set org.gnome.system.proxy ignore-hosts "['localhost', '127.0.0.0/8', $ignore_hosts]" ;; 2) export http_proxy="" export https_proxy="" export HTTP_PROXY="" export HTTPS_PROXY="" gsettings set org.gnome.system.proxy mode "none" esac
proxy.bash
という名前でシェルスクリプトを作成したとします。プロキシ設定を切り替えたい時は、ターミナル(端末)を開いて source proxy.bash
を実行します。 1
をタイプして Enter キーを押すとプロキシが有効になり、 2
をタイプして Enter キーを押すとプロキシが無効になります。この作業はターミナル(端末)を開き直す度にやらないといけないかもしれません。
sudo
コマンドを実行する時は、-E
オプションを付ける必要があります。例えば、sudo apt update
コマンドをプロキシ環境下で実行したい時は、sudo -E apt update
とします。