読者です 読者をやめる 読者になる 読者になる

LinuxでのプロキシとDNSの設定

計算機 ノート

社内ネットワークとか,いわゆるイントラネットの中にあるLinuxマシンからインターネットに接続する場合,プロキシサーバを経由することが多い.また,社内用のDNSサーバが設けられていることもある.Linux(特にRedHat, CentOS, Fedora)でのDNSとプロキシサーバ設定方法の覚書.

DNSサーバの設定

まず,DNSサーバの場所を社内ページを漁って,あるいはネットワークインフラ管理者か近くの人から入手する.

DNSサーバが以下であったとする.

  • 10.0.0.1
  • 10.0.0.2

/etc/sysconfig/network-scripts/ifcfg-eth0に以下の行を追加する(使用するのがeth0以外なら他のファイルを).

DNS1=10.0.0.1
DNS2=10.0.0.2

そして,以下のコマンドを実行する.

$ /etc/rc.d/init.d/network restart

/etc/resolve.confが更新されているはず.

プロキシサーバの設定

まず,プロキシサーバの場所を社内ページを漁って,あるいはネットワークインフラ管理者か近くの人から入手する.

プロキシサーバが以下であったとする.

ホスト名またはIPアドレス proxy.enterprise.com
ポート番号 8080
ユーザー名 username
パスワード passwd

IDとパスワードはないことも多い.

wgetの設定

/etc/wgetrcに以下を書き加える:

use_proxy = on
proxy_user = username
proxy_passwd = passwd
http_proxy=http://proxy.enterprise.com:8080
https_proxy=http://proxy.enterprise.com:8080
ftp_proxy=http://proxy.enterprise.com:8080

yumの設定

/etc/yum.confに以下を書き加える:

proxy=http://proxy.enterprise.com:8080
proxy_username=username
proxy_password=passwd

2016-05-11

proxy_passwdとなっていたものをproxy_passwordに訂正

profile.dの設定

Linuxマシンをわざわざインターネットに繋げたい場合はwgetでデータをダウンロードしたいか,yumでパッケージをインストールしたいかの場合が多いので,wgetyumの設定をしておけば大体事足りる.

システムとして設定する場合は,/etc/profile.d/proxy.shに以下を記載する:

PROXY="username:passwd@proxy.enterprise.com:8080
# 認証がない場合は,"proxy.enterprise.com:8080"

export http_proxy="http://$PROXY"
export https_proxy="http://$PROXY"
export ftp_proxy="http://$PROXY"

export no_proxy="127.0.0.1"

no_proxyのとこをちゃんと書かずに下手に設定すると,動くものも動かなくなる.イントラネット内で通信するサーバーのアドレスを逐一書いて置かなければならず非常に面倒.プライベートアドレスをすべてno_proxyに設定したらとんでもない量になるのでそれはそれでよくない.TCP/IPの設計が悪い.

curlの設定

2016-05-11追記

~/.curlrcに以下を記述

proxy-user = "username:passwd" proxy = "http://proxy.enterprise.com:8080"

gemの設定

2015-02-18追記

/etc/gemrcに以下を記述。

http_proxy: http://username:passwd@proxy.enterprise.com:8080