
私のプロキシサーバーには、eth0とeth1という2つのインターフェイスがあります。ここで、eth0はローカル(プライベート)ネットワークに接続し、eth1はインターネットに接続します。私のイカのバージョンは3.3.8で、centos 7は私のオペレーティングシステムです。透明プロキシを設定する必要があります。私はこれに単一の変更が必要であることを知っています。
http_port 8080 intercept
これを行いましたが、まだインターネットにアクセスできず、squid access.logファイルに情報がありません。ただし、クライアントでプロキシを有効にすると、イカログがいっぱいになります。
iptableルールが欠落しているようです。クライアントがプロキシ(透明モード)を介してインターネットにアクセスできるようにするには、これらの規則は何ですか?
2つのルールを適用しました。
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
与えられた2つのルールを適用した後、tcpdumで次のような結果が得られました。
15:56:53.858317 ARP, Request who-has localhost.localdomain tell 192.168.57.100, length 46
15:56:53.858330 ARP, Reply localhost.localdomain is-at 0a:00:27:00:00:01 (oui Unknown), length 28
15:56:53.859825 IP 192.168.57.100.55833 > localhost.localdomain.domain: 17156+ A? www.google.com. (32)
15:56:53.859866 IP localhost.localdomain > 192.168.57.100: ICMP localhost.localdomain udp port domain unreachable, length 68
15:56:53.860006 IP 192.168.57.100.55833 > localhost.localdomain.domain: 56135+ AAAA? www.google.com. (32)
答え1
次のiptablesルールを試してください。
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
masquerade =プライベートIPがインターネットにアクセスできるようにする
--dport 80 -j リダイレクト --to-port 8080=プライベート IP から Web にアクセスしようとするすべての要求は、プロキシ サーバーのポート 8080 にリダイレクトされます。