LoginSignup
0
0

【Ubuntu, RHEL】Linux環境でのプロキシ設定まとめ

Posted at

はじめに

社内ネットワーク等、インターネット接続にプロキシを通す必要がある環境では、正しく設定をしないと各種ツールが動作しません。

特にLinuxはツール毎にプロキシ設定が必要な場合が多く、逐次調べていると大きく時間をロスしてしまいます。

そこで、このようなプロキシ環境でLinuxの各種ツールを利用する方法を、Debian系(Ubuntu等)、Red Hat系(RHEL、Amazon Linux等)での手法に分けてまとめたいと思います。

プロキシ設定が必要なツール

よく使う以下のツール類にプロキシを適用する手順を紹介します

  • ブラウザ
  • 環境変数
  • パッケージ管理ツール(apt, yum)
  • curl
  • wget
  • Git
  • Docker
  • Python環境構築

ブラウザ

Ubuntu20.04のブラウザでの設定例を紹介します (他OSでもデスクトップ環境が存在するものであればほぼ同様の設定が存在するはずです)

・「有線 接続済み」→有線設定→「ネットワークプロキシ」で「手動」を選択し、

HTTP Proxyhttp://プロキシのアドレスポート番号(一般的に8080)を
HTTPS Proxyhttp://プロキシのアドレス※とポート番号(一般的に8080)
を記載する

※HTTPSプロキシも"http"で始まる場合が多いので注意

・FireFoxを開き、Google検索でインターネットに接続できればOK

環境変数

以下のコマンドで環境変数のプロキシを設定できます。
これにより環境変数からプロキシ情報を読み取るツールが使用できるようになります (大文字を使うツールと小文字を使うツールが存在するので、両方入れておくと無難です)

export http_proxy="http://プロキシのアドレス:ポート番号"
export https_proxy="http://プロキシのアドレス:ポート番号"
export HTTP_PROXY="http://プロキシのアドレス:ポート番号"
export HTTPS_PROXY="http://プロキシのアドレス:ポート番号"

上記だけではシェルを再起動すると環境変数が無効になってしまうので、以下コマンドで.bashrcに登録することで再起動後もスタートアップで環境変数に登録できます (nanoやviで編集してもOKです)

echo 'export http_proxy="http://プロキシのアドレス:ポート番号"' >> ~/.bashrc
echo 'export https_proxy="http://プロキシのアドレス:ポート番号"' >> ~/.bashrc
echo 'export HTTP_PROXY="http://プロキシのアドレス:ポート番号"' >> ~/.bashrc
echo 'export HTTPS_PROXY="http://プロキシのアドレス:ポート番号"' >> ~/.bashrc

・以下のコマンドでプロキシ内容が表示されれればOKです

printenv http_proxy https_proxy HTTP_PROXY HTTPS_PROXY

パッケージ管理ツール

パッケージ管理ツールはDebian系OS (Ubuntu, Debian, Raspberry Pi OS等)とRed Hat系OS (RHEL, CentOS, Amazon Linux等)で異なるため、それぞれ解説します

なお、現在のOSでは後述のapt.confやyum.confを設定しなくとも、上で設定した環境変数から自動で読み込んでくれる場合が多いようです (参考)。本項は念のため設定する程度の認識で良いでしょう。

Debian系

Debian系ではaptをパッケージ管理に使うので、そのプロキシ設定が必要です

・apt

以下のコマンドでapt.confを開きます

sudo nano /etc/apt/apt.conf

以下を記載してctrl+Xで保存します

Acquire::http::Proxy "http://プロキシのアドレス:ポート番号";
Acquire::https::Proxy "http://プロキシのアドレス:ポート番号";

・以下コマンドでaptでパッケージをアップグレードできればOKです

sudo apt update
sudo apt upgrade

Red Hat系

Red Hat系ではyumをパッケージ管理に使うので、そのプロキシ設定が必要です

・yum

以下のコマンドでyum.confを開きます

sudo nano /etc/yum.conf

以下を記載してctrl+Xで保存します

proxy=http://プロキシのアドレス:ポート番号

・以下コマンドでyumでパッケージをアップデートできればOK

sudo yum update

curl

curlはHTTPリクエスト等でデータを取得するツールで、多くの他ツールが間接的に利用しているため、プロキシ設定が必要となる場合が多いです。以下方法で設定します。

・curlが入っていなければ、以下コマンドでcurlをインストールします

Debian系の場合
sudo apt install curl
Red Hat系の場合
sudo yum install curl

・以下のコマンドで.curlrcを開きます

sudo nano ~/.curlrc

・以下を記載してctrl+Xで保存します

proxy=http://プロキシのアドレス:ポート番号

・以下で天気予報が帰ってくればOKです

curl wttr.in/Tokyo

wgetのプロキシ設定

wgetもcurlと類似した (curlとの差はこちら参照)HTTPリクエスト等でデータを取得するツールで、多くの他ツールが間接的に利用しているため、プロキシ設定が必要となる場合が多いです。以下方法で設定します。

・以下のコマンドで.wgetrcを開きます

sudo nano ~/.wgetrc

・以下を記載してctrl+Xで保存

http_proxy=http://プロキシのアドレス:ポート番号
https_proxy=http://プロキシのアドレス:ポート番号

Gitのプロキシ設定

今やプログラミングで必須と言える構成管理ツールであるGitですが、GitHubやGitLab等のリモートリポジトリとの連携にプロキシ設定が必要となります。以下方法で設定します。

・gitが入っていなければ、以下コマンドでgitをインストールします

Debian系の場合
sudo apt install wget
Red Hat系の場合
sudo yum install wget

・以下のコマンドでリモートリポジトリへのアクセス時はプロキシ経由となるようにします

git config --global http.proxy http://プロキシのアドレス:ポート番号
git config --global https.proxy http://プロキシのアドレス:ポート番号

・以下コマンドで、設定したプロキシが表示されれば成功です

git config --global -l

※なお、設定によってはアクセストークンが必要となる事もあるので以下参照下さい

Docker

Gitと同様にモダンな開発では必須とも言えるDockerですが、インターネット経由でpullする際にプロキシ設定が必要となります。以下方法で設定します。

・下記コマンドでdockerスタートアップ時の設定(systemd)を開きます

sudo mkdir /etc/systemd/system/docker.service.d
sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf

・開かれたファイルに下記を追記して保存します

[Service]
Environment = 'http_proxy=http://プロキシのアドレス:ポート番号' 'https_proxy=http://プロキシのアドレス:ポート番号'

・下記コマンドでDockerクライアントを設定します

mkdir ~/.docker
nano ~/.docker/config.json

・開かれたファイルに下記を記載します
(=の右側は実際のプロキシを記載)

{
  "proxies": {
    "default": {
      "httpProxy": "http://プロキシのアドレス:ポート番号",
      "httpsProxy": "http://プロキシのアドレス:ポート番号"
    }
  }
}

・以下コマンドでDockerを再起動します

systemctl daemon-reload
systemctl restart docker

・以下コマンドで docker pullできれば (Hello Worldが表示されれば)成功です

docker pull hello-world

Python環境構築

Pythonに関しては、以下の記事をご参照下さい

0
0
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
0
0