WSL(Windows Subsystem for Linux)を講義で使用しているが、標準ではproxy切り替えのGUIツールがなく.bashrcの設定をいちいと書き直すのも手間がかかるのでスクリプトを作成した。proxy.shがプロキシ設定、noproxy.shがプロキシ設定解除。なお、切り替えスクリプトだけではaptコマンドとgitコマンド用の設定が必要。以下の作業はUbuntu端末で実行してください。
切り替えスクリプト
- proxy.shの中身は以下のスクリプト。プロキシ―サーバー名とポート番号はご自分の環境に変更する必要あり。KITの場合は情報処理サービスセンターのウェブサイトから調べることができる。なお、スクリプトは簡易的なプログラミング言語で機械語へのコンパイルをしないで、直接実行できる。
#!/usr/bin/bash export ftp_proxy="ftp://プロキシ―サーバー名:ポート番号/" export http_proxy="http://プロキシ―サーバー名:ポート番号/" export https_proxy="https://プロキシ―サーバー名:ポート番号/" echo "Set proxy" echo $ftp_proxy echo $http_proxy echo $https_proxy
- noproxy.shの中身は以下のスクリプト
#!/usr/bin/bash export ftp_proxy="" export http_proxy="" export https_proxy="" echo "Unset proxy"
- 実行方法
- proxy.shとnoproxy.shファイルをnanoなどのエディタで作成するかここからダウンロードして、ホームディレクトリ(/home/ユーザ名)に保存する。nanoの使い方はこのリンクを参考にして欲しい。なお、Windowsではホームディレクトリのパスは以下になる。Ubuntuのバージョンが違う場合は適時変えて欲しい。また、ユーザ名はUbuntuをインストールしたときに設定したユーザ名にしてください。人によって違うのでここではユーザ名としています。
whoami
コマンド調べることができます。\\wsl$\Ubuntu-20.04\home\ユーザ名
- 実行
- 移動
$ cd
- プロキシ設定
$ source ./proxy.sh
- プロキシ解除
$ source ./noproxy.sh
- 移動
- proxy.shとnoproxy.shファイルをnanoなどのエディタで作成するかここからダウンロードして、ホームディレクトリ(/home/ユーザ名)に保存する。nanoの使い方はこのリンクを参考にして欲しい。なお、Windowsではホームディレクトリのパスは以下になる。Ubuntuのバージョンが違う場合は適時変えて欲しい。また、ユーザ名はUbuntuをインストールしたときに設定したユーザ名にしてください。人によって違うのでここではユーザ名としています。
git用の設定
- 次のコマンドを実行すると~/.gitconfig設定ファイルが作れる。一度だけ実行すれば良い。なお、プロキシ―サーバー名とポート番号は自分の環境に変更する。私の環境では最後の/をいれないと機能しなかった。
$ cd
$ git config --global http.proxy http://プロキシーサーバー名:ポート番号/
- 次のコマンドで設定されているか確認する。下図のように表示されれば成功。
$ git config --global --list
apt用の設定
sudo コマンドを使ってUbuntuパッケージをインストールするときはユーザの環境変数は受け継がれない。sudoに-Eオプションを付けて環境変数を引き継ぐこともできるので、proxy環境下でaptコマンドを実行するときは以下のようにsudoのあとに-Eのオプションを毎回付けて実行すること。
$ sudo -E apt install
終り
コメント
夜分遅くに失礼します。
2つ質問があります。
1つ目は、Proxyの設定は、最初にUbuntuを使って実行方法の下記の手順で書き込んでいけば良いのでしょうか?
2つ目は、ユーザ名の箇所は、何を記述すればいいですか?
\\wsl$\Ubuntu-20.04\home\ユーザ名
実行
移動
$ cd
プロキシ設定
$ source ./proxy.sh
プロキシ解除
$ source ./noproxy.sh
説明の最初の箇所の切り替えスクリプトについても分からなかったです。
長文失礼しました。返信お待ちしております。
1.はい。Ubuntuで実行します。
2.ユーザ名はUbuntuをインストールするときに設定したユーザ名です。以下のコマンドで確認できます。
$ whoami