Introduction

Flutter の http 通信パッケージがプロキシを無視する挙動に苦しめられたある日の仕事後。
自宅で proxy を無視するのかをきちんと確認しようと思ったが、プロキシサーバが自宅に無いことを気付いたので作ろうとした次第。

How to install?

Alpine にしたのは特に理由はない。
バージョンは 3.20.2

Squid のインストール

1
2
3
4
$ su
$ apk add squid
# 自動起動を有効化
$ rc-update add squid

/etc/squid/squid.conf を編集。
今回は http/https 通信をプロキシに通したいだけなので下記でよい。

1
2
3
4
# For example, to allow access from your local networks, you may uncomment the
# following rule (and/or add rules that match your definition of "local"):
- #http_access allow localnet
+ http_access allow localnet

Squid を起動

1
2
3
$ rc-service squid start
# 停止する場合
$ rc-service squid stop

Webmin のインストール

正直、プロキシサーバを試すだけだから管理 GUI は不要だが、とりあえずインストール。
バージョンは 2.202

1
2
3
4
5
6
7
$ su
$ apk add perl perl-net-ssleay
$ cd /opt
$ wget -O - https://github.com/webmin/webmin/archive/refs/tags/2.202.tar.gz | tar -xzf -
$ mv webmin-2.202 webmin
$ cd webmin
$ ./setup.sh /usr/local/webmin

Webmin はどうも Alpine にインストールされたことを正しく判定することができず、 Gentoo にインストールされたと判定するので、自動起動の設定が上手く行われないので手動で行う。

1
2
3
4
5
6
7
8
$ su
$ cat << EOF > /etc/init.d/webmin
#!/sbin/openrc-run
start() { /etc/webmin/start; }
stop() { /etc/webmin/stop; }
EOF
$ chmod a+x /etc/init.d/webmin
$ rc-update add webmin boot

Webmin の設定

Webmin にログインして Squid の設定を行う。

Webmin

Un-used Modules から Squid Proxy Server を選択。
Webmin が Squid を認識できていない、とのこと。
右側の module configuration のリンクをクリック。

Webmin

System configuration を選択。

Webmin

次の表示に従って設定を変更。
ただ、最初の二つ以外は無視される気がする。

設定 変更前 変更後
Full path to squid config file /usr/local/squid/etc/squid.conf /etc/squid/squid.conf
Squid executable /usr/local/squid/bin/squid /usr/sbin/squid
Full path to PID file /usr/local/squid/logs/squid.pid /etc/squid/logs/squid.pid
Full path to squid cache directory /usr/local/squid/cache /etc/squid/cache
Squid cachemgr.cgi executable /usr/local/squid/bin/cachemgr.cgi /usr/lib/squid/cachemgr.cgi
Full path to squid log directory /usr/local/squid/logs /etc/squid/logs

設定変更後、Squid が認識されれば下記のように画面が変わる。

Webmin

Webmin の Theme 変更

おまけ。
Webmin の見た目が古臭いので、 OSS のテーマをインストール。
authentic-theme の Release から最新の *.wbt.gz をダウンロード。

Webmin Configuration => Webmin Themes => Install themese 内の From uploaded file から上記のファイルを選択。

テーマ反映後。

Webmin