这里只是先详细的阐述,后面实验环境配置我会详细讲
一台centos7配置squid服务
添加一块网卡
vm1 网卡IP 192.168.100.102 模拟内网
vm2 网卡IP192.168.200.102 模拟外网
一台win7 vm1 IP 192.168.100.66 内网客户机
一台centos7 vm2 IP 192.168.200.66 配置apache服务
,可以参考如下
https://blog.csdn.net/weixin_45308292/article/details/100360831
做好后,不要做其他配置,变成这章的实验环境这里我会详细的做,
配置实验环境 ,接着上篇博客
首先squid服务器添加一块vm2网卡就不用说了
先使用Xshell连接上,连192.168.100.102就行
[root@CentOS7-02 ~]# ifconfig (查看新的网卡名字,我这里是ens33,可能会不一样)
因为新的网卡没有配置文件需要手动建立,可以直接复制
[root@CentOS7-02 network-scripts]# cp ifcfg-ens33 ifcfg-ens37 (后面的文件名,新网卡叫什么,就写什么)
[root@CentOS7-02 network-scripts]# vim ifcfg-ens37
[root@CentOS7-02 network-scripts]# systemctl restart network
[root@CentOS7-02 network-scripts]# ifconfig (查看是否配上了)
然后进入192.168.100.103(就是这章的apache服务器,这是上一篇博客的地址)
把网卡改成vm2
vim /etc/sysconfig/network-scripts/ifcfg-ens33
把IPADDR 改成 192.168.200.66
把GATEWAY 改成 192.168.200.102 (squid服务器外网口地址)
这里解释一下为什么要改网关,如果不改网关的话,不走代理,就不能访问外网服务器
,后面不好看效果
就是内部主机发包过来后,apche服务器这里显示的是源地址是100网段,但是他们中间没有路由器
所以就不可通信,但是如果走的代理,内部主机通过外网口ip出去的,回应的时候会把包传回外网口,外网口和内部主机是一个网段就可以通信了*
systemctl restart network
ifconfig
然后在客户机win7指定网关为192.168.100.102
关掉所有主机的防火墙。。
win7 ping 192.168.200.102
web服务器 ping 192.168.100.102
能通就实验环境就算成功了
先不要ping 对方网段的客户机的地址,这一会还不可以通信,因为现在还没有开启路由转发功能
1.配置squid支持透明代理
Xshell连接192.168.100.102
[root@CentOS7-02 ~]# vim /etc/squid.conf
http_port 3128 (在这个配置项后面添加一个单词)
http_port 3128 transparent
[root@CentOS7-02 ~]# cd /etc/xinetd.d/
[root@CentOS7-02 init.d]# ./squid restart
[root@CentOS7-02 init.d]# vim /etc/sysctl.conf
添加如下语句 (注意不要加#号,作用是开启路由转发,实现本机中不同网段的地址转发)
net.ipv4.ip_forward = 1
[root@CentOS7-02 init.d]# sysctl -p (这里会显示一下,不是报错)
net.ipv4.ip_forward = 1
2.设置fiewalld的重定向服务
还是squid代理服务器上操作
透明代理实际上是构建在linux网关上的,因此只需正确设置防火墙策略就可是实现代理
[root@CentOS7-02 ~]# systemctl start firewalld
[root@CentOS7-02 ~]# firewall-cmd --zone=external --add-interface=ens37
[root@CentOS7-02 ~]# firewall-cmd --zone=internal --add-interface=ens33
[root@CentOS7-02 ~]# firewall-cmd --zone=external --add-service=http
[root@CentOS7-02 ~]# firewall-cmd --zone=external --add-service=https
[root@CentOS7-02 ~]# firewall-cmd --zone=external --add-port=3128/tcp
[root@CentOS7-02 ~]# firewall-cmd --direct --add-rule ipv4 nat PREROUTING 0 -i ens37 -p tcp --dport=80 -j REDIRECT --to-ports 3128
[root@CentOS7-02 ~]# firewall-cmd --direct --add-rule ipv4 nat PREROUTING 0 -i ens37 -p tcp --dport=443 -j REDIRECT --to-ports 3128
[root@CentOS7-02 ~]# firewall-cmd --runtime-to-permanent
进入win7客户机
关闭上一篇博客的浏览器传统代理设置,就是工具>internet选项那里 ,取消勾选
输入192.168.200.66(web服务器地址外网)
多刷新几次方便看效果
进入web服务器,查看日志
然后在进入squid服务器102中
[root@CentOS7-02 ~]# systemctl stop firewalld (关闭防火墙,也就关闭了代理)
再回到win7主机刷新网页页面