Proxmoxの仮想PCにsquidプロキシをインストールした話

えーと、本日は自宅サーバの話題である。
IT系の自営業をやっているので、自宅サーバが存在している。Proxmox基盤上に各種RDBMSや開発用のWebサーバ、ファイルサーバなどが稼働している。

データベースのレプリケーションの話【リードレプリカ】

えーと本日は、データベースのレプリケーションの話をしようと思う。データベースといってもRDBMSである。30年前からRDBMSは存在している。その当時もレプリケーションと…

Proxmoxはクラスタ構成しており、4台のノードが稼働しているが、常に使用しているのはファイルサーバだけのような気がする。これでは電気の無駄遣いではないのか?

ということで、なんとか有効活用しようと思い立ち「プロキシサーバ」を立ててみることにした。

プロキシと言えばsquid

なので、Proxmoxのコンテナテンプレートにsquidがないか検索。

どうもテンプレートにはないっぽい。
しょうがないので、ファイルサーバーとして稼働させているCentOSの仮想PCでsquidも稼働させてみることに。

インストールはdnfでできる。

dnf install squid

設定は、/etc/squid/squid.confを編集することで行う。

変更するのはキャッシュの保存場所くらい。デフォルトでは/var/spool/squidだが、ここだとすぐに一杯になってしまうので、/home/spool/squidに変更。

# Uncomment and adjust the following to add a disk cache directory.
# cache_dir ufs /var/spool/squid 100 16 256
cache_dir ufs /home/spool/squid 20000 16 256

後、大きめのファイルでもキャッシュできるように最大サイズを100MBに設定。

maximum_object_size 100 MB

スプール用のディレクトリのオーナーをsquidに変更しないとエラーが出るので注意。

chown -R squid:squid /home/spool/squid

これでsystemctl start squidで起動する(はず)。

Windowsでの設定

Windowsでは「設定」->「ネットワークとインターネット」の「プロキシ」で設定する。

「手動プロキシセットアップ」の「編集」をクリック。

プロキシサーバを使うをONにして、サーバのIPアドレスを入力。ポートは変更していないので、3128を入力。「ローカルの…使わない」にチェックを入れる。

これでプロキシが使われるようになったはず。

確認するには、プロキシサーバの/var/log/squid/access.logを見るとわかる。

Proxmoxコンソールに入れない

プロキシを介することで若干速くなった気がするが、そう大きくは変わらない。しかし毎回アクセスするAWSコンソールやこの自分のサイトに関しては反応が速いような感じもする。

しかし、Proxmoxのコンソールに入れなくなってしまった。

プライベートネットワーク内なので、「ローカルのアドレスにはプロキシを使わない」が効くものと思っていたが、なんかプロキシ経由でアクセスしようといているみたい。

tail -f /var/log/squid/access.log
1747542141.537 0 192.168.0.104 TCP_DENIED/403 3974 CONNECT 192.168.0.3:8006 - HIER_NONE/- text/html

ProxmoxのWebコンソールにはhttpsで接続するのだが、サーバー証明書がちゃんとしてないのでエラーになってしまう。オレオレ自己署名でもいいからちゃんとやれば良い気はするが面倒なのでやってない。

プロキシを介してProxmoxのWebコンソールにアクセスする際にこのエラーが発生しているのであろう。ブラウザの場合は強制的に接続できたが、プロキシだとそうもいかない。

そもそも、ローカルアドレスにアクセスしているのだからプロキシ使わないで欲しいのだけど…
とぼやきながら、除外するアドレスに書いてみた。

これで、再度接続っと。

やった、プロキシ使わないよ。

投稿者プロフィール

asai
asai
システムエンジニア
喋れる言語:日本語、C言語、SQL、JavaScript