透明代理squid配置
 
编辑squid.conf(在配置文件的最后添加如下命令)
 
http_port 10.1.1.3:8080 transparent
cache_mem 80 MB
cache_dir ufs /var/spool/squid 4096 16 256
cache_mgr [email protected]
http_access allow all
 
开启端口转发功能
#iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
 
开启NAT功能
#iptables -t nat -A POSTROUTING -s 10.1.1.0/16 -o eth0 -j SNAT --to 192.1.1.3
 
保存防火墙规则
#service iptables save
 
开启防火墙服务
#service iptables start
 
编辑/etc/sysctl.conf
把net.ipv4.ip_forward = 0 改为 1
 
刷新策略
sysctl -p  
 
系统调优
echo "1024  63000" > /proc/sys/net/ipv4/ip_local_port_range
echo "1" > /proc/sys/net/ipv4/tcp_tw_recycle
echo "1" > /proc/sys/net/ipv4/tcp_tw_reuse
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo "1" >/proc/sys/net/ipv4/conf/all/log_martians
echo "1" >/proc/sys/net/ipv4/tcp_syncookies
echo "2" >/proc/sys/net/ipv4/tcp_synack_retries
echo "2048" >/proc/sys/net/ipv4/tcp_max_syn_backlog
echo "3" >/proc/sys/net/ipv4/tcp_syn_retries 
echo "1" > /proc/sys/net/ipv4/tcp_tw_reuse
echo "1" > /proc/sys/net/ipv4/tcp_tw_recycle
echo "30" > /proc/sys/net/ipv4/tcp_fin_timeout
echo "1800" > /proc/sys/net/ipv4/tcp_keepalive_time
 
路由转发
echo "1" > /proc/sys/net/ipv4/ip_forward
 
启动命令集合
vi /etc/rc.local
添加
echo "1" > /proc/sys/net/ipv4/ip_forward
 
 
 
配置客户端
指定网关地址
 
测试
若,ping不通dns,能ping通网关,说明路由没有转发;
若,ping的通dns,和网关,但不能上网,需要重启squid,并清空路由表
 
 
--------------------------------------------------------------------
 
本人亲测,这个最直接最简单的搭建,希望大家多提意见!