Squid 3.1.10 在多IP的CentOS 6.3下,实现用户由那个ip进,就由那个ip出的效果 – 我爱互联网 – 博客频道 – CSDN.NET

  • A+
所属分类:其他杂项
本文信息本文由方法SEO顾问发表于2017-04-2613:09:07,共 1727 字,转载请注明:Squid 3.1.10 在多IP的CentOS 6.3下,实现用户由那个ip进,就由那个ip出的效果 – 我爱互联网 – 博客频道 – CSDN.NET_【方法SEO顾问】,如果我网站的文章对你有所帮助的话,来百度口碑给个好评呗!

默认安装即可,

[plain] view plain copy

  1. yum install squid  

然后,更改默认配置文件 /etc/squid/squid.conf

[plain] view plain copy

  1. vim /etc/squid/squid.conf  

在文件第一行之前插入

[plain] view plain copy

  1. acl ip_allow src 1.1.1.1/32  2.2.2.0/24 3.3.0.0/16  
  2. http_access allow ip_allow  
  3. forwarded_for delete  
  4. via Deny all  
  5. acl ip1 myip 192.168.1.2  
  6. acl ip2 myip 192.168.1.3  
  7. acl ip3 myip 192.168.1.4  
  8. tcp_outgoing_address 192.168.1.2 ip1  
  9. tcp_outgoing_address 192.168.1.3 ip2  
  10. tcp_outgoing_address 192.168.1.4 ip3  

192.168.1.2/3/4 分别为本机的三个地址,用户如果用192.168.1.1 链接上来之后,出去还是用此ip。这样其他人看到的就是192.168.1.1

[plain] view plain copy

  1. forwarded_for delete  
  2. via Deny all  

表示删除http头里用户的信息,保护用户隐私。

保存,启动squid即可。

[plain] view plain copy

  1. /etc/init.d/squid start  

如果更改了配置文件,想让squid重新读取配置文件的话,可以运行

[plain] view plain copy

  1. #squid -k reconfigure  

运行之前最好先运行检查配置文件命令,查看更改的配置文件是否存在问题。

[plain] view plain copy

  1. #squid -k parse  

如果你的服务器很多ip,这样写这个配置文件还是个力气活里,补充一个google到的perl脚步,帮你生成 acl 与 tcp_outgoing_address那部分吧。

[plain] view plain copy

  1. #!/usr/bin/perl  
  2. open(IFCONFIG, "ifconfig  |");  
  3. $count=1;  
  4. @acls = ();  
  5. @tcps = ();  
  6. while (<IFCONFIG>) {  
  7.      if (/inet /) {  
  8.           s/^\s+//;  
  9.           s/addr://;  
  10.           @tokens = split(/ /);  
  11.           if (! ($tokens[1] =~ "127.0.0.1")) {  
  12.                push(@acls, "acl ip$count myip $tokens[1]\n");  
  13.                push(@tcps, "tcp_outgoing_address $tokens[1] ip$count\n");  
  14.                $count++;  
  15.           }  
  16.      }  
  17. }  
  18. close(IFCONFIG);  
  19. foreach $acl (@acls) {  
  20.      print $acl;  
  21. }  
  22. foreach $tcp (@tcps) {  
  23.      print $tcp;  
  24. }  

下载保存运行,就会自动生成下面的东西

[plain] view plain copy

  1. acl ip1 myip 192.168.1.2  
  2. acl ip2 myip 192.168.1.3  
  3. acl ip3 myip 192.168.1.4  
  4. tcp_outgoing_address 192.168.1.2 ip1  
  5. tcp_outgoing_address 192.168.1.3 ip2  
  6. tcp_outgoing_address 192.168.1.4 ip3  

如果你有几百个ip,这可以省很多时间。^_^

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: