🌐
squidとngrokを使ったプロキシの構築
はじめに
squidを利用してプロキシサーバを立てて、ngrokで外部公開し、プロキシ経由でのインターネットアクセス環境を構築するのに少し手間取ったのでメモがてら残しておきます。
前提
- Docker Engineをインストールしてあること
- ngrok導入済みであること ※ngrokもdockerで用意してもいいかもしれません。今回はホストに導入してます
手順
ファイル準備
今回はdocker-composeを利用してサクッと立ち上げました。
docker-compose.yml
version: '3'
services:
squid:
image: sameersbn/squid:3.5.27-2
volumes:
- ./squid.conf:/etc/squid/squid.conf
ports:
- "3128:3128"
squidの設定はお好みに合わせてください。便宜上全開放してます。
squid.conf
http_port 3128
acl all src 0.0.0.0/0.0.0.0
http_access allow all
起動
Docker立ち上げます。
docker-compose up -d
そのあと、ngrokを立ち上げます。ポイントはtcpにすること。
ngrok tcp 3128
実行後、以下表示されたら成功です。
ngrok (Ctrl+C to quit)
🤯 Try the ngrok Kubernetes Ingress Controller: https://ngrok.com/s/k8s-ingress
Session Status online
Account xxxxxx (Plan: Free)
Update update available (version 3.3.2, Ctrl-U to update)
Version 3.2.2
Region Japan (jp)
Latency 8ms
Web Interface http://127.0.0.1:4040
Forwarding tcp://xxx.ngrok.io:17976 -> localhost:3128
Connections ttl opn rt1 rt5 p50 p90
6 0 0.00 0.00 0.19 0.27
動作確認
curlで確認です。proxyオプションでngrokで解放されたURLを指定しましょう。ただし、その際はプロトコルはhttpに。
% curl --proxy http://xxx.ngrok.io:17976 httpbin.org/ip
{
"origin": "172.19.0.1, xxx.xxx.xxx"
}
Discussion