Project

General

Profile

ProxyOnI83Vps

i-83.netの256MB VPS(4.5ポンド/年)にSquid(プロキシサーバ)をインストールしてみた記録です。

海外VPSサービスを使う狙いは、激安なのも理由の一つですが、www.nutaku.netのアイギスを遊びたいからだったりします。

これを書いたときの各種ソフトのバージョン

仮想マシンイメージ centos-7-x86_64-minimal
OS CentOS Linux release 7.3.1611 (Core)
Kernel 2.6.32-042stab120.11
Squid 3.5.20
Cygwin(Windows10上) 2.7.0 x86_64

ログインする

TeraTermなどのSSHクライアントが必要です。

SSHクライアントに指定するIPアドレスは、実マシンのものになります。

PayPal等での支払いが済むと、登録したメールアドレスに対してquadhost.netから「Your New NAT VPS has been Deployed!」というメールが届きます。
実マシンのIPアドレスは、メールのthis listのリンクか、またはquadhostのSupport-Knowledgebaseの「Find your IPv4 NAT Instance Public IPv4 Address」という記事で調べられます。
利用している実マシンの名前は、Manage Productの画面のOnlineのところに書いてあります。

仮想マシンのIPアドレスは、メールにMain IPとして書かれています。
そのアドレスがたとえば192.168.64.123なら、TeraTermなどのSSHクライアントで実マシンのIPアドレスの12322番ポートに接続できます。(実マシンの12322番が仮想マシンの22番にリダイレクトされる)。

ログインして最初にやること

yum update

あと、 http://mawatari.jp/archives/check-centos-version 等を参考にしてCentOSのバージョンの確認をします。結果が7.3.1611と異なるなら、このWiki記事(ProxyOnI83Vps)は適用できないかもしれません。

使用可能なポートの範囲を確認する

Primary IPがたとえば192.168.64.123なら、12301~12320が使用可能です。
実マシンの12301~12320が仮想マシンの12301~12320にリダイレクトされるようです。

SquidやApacheをいきなり使うと本当にそのポートが利用できるかがわかりづらくなるので、iperfをインストールして使いましょう。

yum install epel-release
yum install iperf

仮想マシン側で、たとえば iperf -s -p 12301 とします(123の部分は仮想マシンのPrimary IPに応じて読み替える)。終了はCtrl-Cです。

ローカル側はCygwinかLinuxマシンを使います。 iperf -c <実マシンのIP> -p 12301 とします。終了はCtrl-Cです。
私がNZの仮想マシンに接続したときは、Bandwidth 1.76Mbits/secと出ました。遅いですが、プロキシ経由でアイギスを遊んでもさほどストレスを感じませんでした。

プロキシを立てる前に

yum install lynx

lynxをインストールして、www.nutaku.netに接続してもDMMに飛ばされないことを確認します(この時点でダメならプロキシサーバを立てる価値がないので)。

Squidの設定

yum install squid
yum install vim

適当な箇所(たとえば~)に/etc/squid/squid.confをバックアップしておいてから、vim /etc/squid/squid.confを編集します。
http://qiita.com/pcnikki/items/404329f9ad9cb6e235d4 等を参考にしています。

  • 73行目の http_access deny all を#でコメントアウトします。
  • http_portを使用可能な番号(xxx01~xxx20)に変更します。
  • ファイルの最後に以下を追記します。
visible_hostname ashidan.dip.jp

acl myacl src ???.???.???.???
http_access allow myacl
http_access deny all

forwarded_for off

request_header_access X-Forwarded-For deny all
request_header_access Via deny all
request_header_access Cache-Control deny all

visible_hostnameはVPSにつけた名前に直します。
acl myacl srcのIPアドレスは、プロキシを利用するホストのグローバルIPアドレスに直します。たとえばお使いのPCからhttps://www.cman.jp/network/support/go_access.cgi をアクセスすればグローバルIPがわかります。

編集を終了したら以下を打ち込みます。

squid -z
systemctl start squid

この時点で、適当なブラウザからプロキシ接続が行えるようになっているはずです。
うまくいっていたら、以下を打ち込んで、仮想マシンが再起動したときにもSquidが自動的に起動するようにします。

systemctl enable squid

ファイアウォールの設定

yum install firewalld
systemctl start firewalld

この時点でfirewalldの働きによりプロキシサーバへ接続できなくなるはずなので、試してみてください。

プロキシのポートへの接続を許可するため、以下を設定します。

firewall-cmd --add-port <プロキシサーバの公開ポート>/tcp

この時点でプロキシサーバへ接続できるようになります。
(squid.confで特定ホストからの接続のみ許可しているため、firewalldでは特定ホストから、の条件は不要です。)
接続がうまく行ったら、恒久的に設定が有効になるように以下のように打ち込みます。

firewall-cmd --permanent --add-port <プロキシサーバの公開ポート>/tcp
systemctl restart firewalld
systemctl enable firewalld

設定が反映されているかの確認は以下です。

firewall-cmd --list-all

Squidのキャッシュ動作を無効化する

http://qiita.com/bloodia/items/1162be5a441767c7c3ba を参考にしてください。

Chrome用拡張機能 Proxy Switcherでの設定例

nutakuだけプロキシ経由であとはダイレクト接続する場合、PAC ScriptタブでInlineを選び、以下のように書き込みます。

function FindProxyForURL(url, host) {
  if ( isInNet(host, "10.0.0.1",  "255.0.0.0")
    || isInNet(host, "127.0.0.0", "255.0.0.0")
    || isInNet(host, "192.0.0.0", "255.0.0.0") )
    return "DIRECT";
  else if (shExpMatch(host, "*.nutaku.net")
    || shExpMatch(host, "*.nutaku.com"))
    return "PROXY <自分のVPSのIPアドレス>:<自分のVPSのプロキシポート番号>";
  else
    return "DIRECT";
}

FireFox用のProxy Swicherなら、ローカルディスクに上記内容のファイルを作って、Automaticタブでfile:///c:~と書いて読み込ませればokです。

Android版Firefoxでのプロキシ設定

AndroidであってもブラウザがFirefoxであればプロキシの設定が可能です。

  1. Chrome用拡張機能 Proxy Switcherでの設定例 に書いた内容をsdカードのDownloadフォルダに保存する
  2. Firefoxを起動し、アドレスにabout:configを入力する
  3. 文字列proxyを検索する


Count of this page : 69