スマホ端末のhosts設定をいじりたいが、AndroidやiOSの/etc/hosts を変えるのはそれなりにハードルが高い。
もっと簡単にできないか探していたところ Mac にproxyサーバを立てる方法を見つけた。
www.yoheim.net
apache使うくらいなら、Docker で環境依存しない手順を確立したいないと思い、この記事を書くことにした。
ベースは、公式イメージを使えばいい。
https://hub.docker.com/_/httpd
confのいじり方も書いていたので、基本はそれに従うだけ。
まず、イメージの中身からconfを取り出す
$ docker run --rm httpd:2.4 cat /usr/local/apache2/conf/httpd.conf > my-httpd.con
編集してproxyサーバとして動くようにする
以下、変更した箇所。
@@ -139,10 +139,10 @@
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule version_module modules/mod_version.so
#LoadModule remoteip_module modules/mod_remoteip.so
-#LoadModule proxy_module modules/mod_proxy.so
-#LoadModule proxy_connect_module modules/mod_proxy_connect.so
+LoadModule proxy_module modules/mod_proxy.so
+LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
-#LoadModule proxy_http_module modules/mod_proxy_http.so
+LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
#LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
#LoadModule proxy_uwsgi_module modules/mod_proxy_uwsgi.so
@@ -549,3 +549,13 @@
SSLRandomSeed connect builtin
</IfModule>
+<IfModule mod_proxy.c>
+ ProxyRequests On
+ ProxyVia On
+ <Proxy *>
+ Order deny,allow
+ Deny from all
+ Allow from all
+ </Proxy>
+</IfModule>
次に Dockerfileを用意する
FROM httpd:2.4
COPY ./my-httpd.conf /usr/local/apache2/conf/httpd.conf
続いてDocekrイメージを作成
$ docker build -t my-httpd .
そして Dockerコンテナ起動
docker run -it -d --rm --name my-httpd -p 8080:80 my-httpd
あとはスマホ側のプロキシ設定で、Docker起動したPCのIPアドレスを指定すればOK
- プロキシのホスト名:Docker起動したPCのIPアドレス
- プロキシポート:8080
これで、スマホからインターネットに出るときに、Docker起動したPCのhosts設定が参照されることになる。