最近はインターネット回線も早くなったので、プロキシサーバの出番は少なくなりましたね。それでもまだ踏み台にしたり、リバースプロキシとして利用したりと使い所はあります。
プロキシサーバをセットアップ
squidのインストール
プロキシサーバをインストールします。
今回はsquidを使って構築します。
$ sudo apt install squid -y
設定ファイルの編集(任意)
設定ファイルを編集します。とりあえず動けばいい方はそのままでも動きました。ポート番号はデフォルトだと3128です。変更する場合は設定ファイルで変更します。
※外部ネットワークに向けて公開する場合はセキュリティの設定をきちんとしてください。悪い人の踏み台にされてしまいます。
$ sudo vi /etc/squid/squid.conf
※編集した場合は、次のコマンドで設定ファイルのチェックしてください
$ sudo sqluid -k parse
起動
プロキシサーバを起動します。
$ sudo systemctl start squid
プロキシサーバの動作確認
プロキシサーバがちゃんと動いているか確認します。
プロキシサーバを経由してYahoo!のサイトを開いてみましょう。
YahooっぽいHTMLが表示されれば無事にプロキシ経由でYahoo!のサイトへ行けたということになります。
$ curl -x localhost:3128 -sS https://www.yahoo.co.jp | head -n 10
うまく動作した方はここで終了です。お疲れさまでした。
うまく動かない方は、この後のトラブルシューティングにお進みください。
トラブルシューティング
curl: (7) Failed to connect to localhost port 3128: 接続を拒否されました
このように表示された場合は、プロキシサーバが動いていないですので、次のコマンドで動作状況を確認します。
$ sudo systemctl status squid
Active: failedになっている場合は起動に失敗しています。失敗した理由も表示されますので確認して対応します。この例はポート番号の部分が間違っていますね。
● squid.service - LSB: Squid HTTP Proxy version 3.x
Loaded: loaded (/etc/init.d/squid; generated)
Active: failed (Result: exit-code) since Mon 2019-12-16 16:04:18 JST; 22s ago
Docs: man:systemd-sysv-generator(8)
Process: 2437 ExecStop=/etc/init.d/squid stop (code=exited, status=0/SUCCESS)
Process: 2486 ExecStart=/etc/init.d/squid start (code=exited, status=3)
12月 16 16:04:18 vm-ubuntu-01 systemd[1]: Starting LSB: Squid HTTP Proxy version
12月 16 16:04:18 vm-ubuntu-01 squid[2504]: Bungled /etc/squid/squid.conf line 16
12月 16 16:04:18 vm-ubuntu-01 squid[2509]: Bungled /etc/squid/squid.conf line 16
12月 16 16:04:18 vm-ubuntu-01 squid[2486]: * FATAL: http_port: missing Port: ss
12月 16 16:04:18 vm-ubuntu-01 squid[2486]: FATAL: Bungled /etc/squid/squid.conf
12月 16 16:04:18 vm-ubuntu-01 systemd[1]: squid.service: Control process exited,
12月 16 16:04:18 vm-ubuntu-01 systemd[1]: squid.service: Failed with result 'exi
12月 16 16:04:18 vm-ubuntu-01 systemd[1]: Failed to start LSB: Squid HTTP Proxy
squidが起動失敗する原因が判明し、その対処が終わったら起動します。
Active: active (running)になれば、プロキシサーバ自体は起動成功です。
これでも繋がない場合は、プロキシサーバを使わずにインターネットにアクセスできるか確認します。
$ curl -sS https://www.yahoo.co.jp | head -n 10
これはプロキシサーバを使わずにYahoo!へ接続します。これで接続できればプロキシが動いていないか正しく動作していない可能性が高いです。接続できない場合は、そもそもインターネットに接続できないか、Yahoo!のサイトが落ちているか。
Yahoo!のサイトが落ちることは稀だと思うので、ご自身のインターネット環境を確認してください。
コメント