在局域外环境中,一台可以访问外网的电脑为linux系统,本例为centos7系统,局域网IP为192.168.1.15,通过在此台电脑上安装squid开放3128端口(此端口可在后面修改),使另一台内网192.168.1.16的linux系统不能访问外网电脑通过192.168.1.15:3128端口实现可以访问外网。
第一步,在能上外网的centos系统上安装squid
1.使用yum命令, 可以直接在线安装
yum install squid
2.安装完成后, cd /etc/squid/ 目录下, 修改squid.conf 文件中的内容,修改之前, 可以先备份该文件:
cp squid.conf squid.conf_bak
2.1 找到文件中的 http_access deny all 将其修改为 http_access allow all 表示所有用户都可以访问这个代理。
2.2 找到 http_port 3128 修改为 http_port 192.168.1.15:3128 这里的IP及端口是 squid的代理IP及端口。
注:该IP是能访问外网机器的IP地址,如果是本机,则可以不用修改该地址(本例是本机,所以不修改)。
3. 下面启动squid 代理
3.1 执行squid -k parse命令
[root@localhost squid]# squid -k parse
3.2 执行squid -z命令
[root@localhost squid]# squid -z
2019/08/22 15:46:01| Creating Swap Directories启动
3.3 执行 systemctl start squid 启动
[root@localhost squid]# systemctl start squid
Starting squid: [ OK ]
3.4 查看启动监听3128端口是否启动
[root@localhost squid]# netstat -tunlp | grep 3128
第二步,在需要上网的linux机器上操作
4. 以上代理服务安装完毕并启动后,下面去需要通过代理上网的电脑上(在本例中是192.168.1.16机器)设置环境变量,以使16机器可以通过15机器实现访问外网。
4.1 在192.168.1.16的机器上执行以下命令,使得生效:
export http_proxy=http://192.168.1.15:3128
export https_proxy=http://192.168.1.15:3128
4.2 以上环境变量只是在此次终端中生效,若要重启或重新打开终端生效,在/etc/bashrc或者/etc/profile等文件中中添加以上环境变量。
4.3 因为一般以上场景都是临时使内网中的一台机器能上网(软件升级,或在线安装一些资源),故一般执行4.1即可。
4.4,测试16机器可以上网 wget https://www.baidu.com
第三步,一些异常问题解决。
如果软件安装都正常,测试 wget https://www.baidu.com还是出现“正在连接 192.168.1.15:3128... 失败:拒绝连接。”,考虑15机器上的防火墙或iptale等问题,可以参考另一篇"centos7防火墙简单操作",可以先把防火墙关掉再测试,若可以上网,再考虑修改防火墙开放3128端口。