squid配置http和https代理实现上网

该文详细介绍了如何在CentOS7系统上设置Squid代理服务器,允许内网无外网权限的机器通过代理上网。首先在代理服务器上安装和配置Squid,开放HTTP访问。若需HTTPS代理,还需生成加密证书并修改配置。然后,在无外网机器上安装stunnel,配置连接到代理服务器的443端口,通过环境变量设置代理,从而实现加密的HTTPS访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、预置条件

1、一台能访问外网的内网机器作为代理服务器

2、一台无外网权限的内网机器,内网机器之间路由可达

二、实现效果

1、无外网权限机器通过代理机器实现上网

三、代理机器配置

代理机器系统centos7

1、yum install gcc openssl openssl-devel squid 安装依赖包

2、vi /etc/squid/squid.conf 找到如下两句修改

# And finally deny all other access to this proxy

http_access allow all        deny改为allow

# Squid normally listens to port 3128

http_port 3128      port也可以不修改

3、squid -k parse

4、squid -z 测试

5、systemctl stop firewalld

6、systemctl start squid 开启服务

如果只配置http代理,上面的已经可以使用了

如果还需要https代理,还需要添加如下配置

7、生成加密代理证书

openssl re1 -new > proxy.csr

PEM pass phrase后面会用到

8、openssl rsa -in privkey.pem -out pl.key 输入上面的密码

9、openssl x509 -in proxy.csr -out proxy.crt -req -signkey pl.key -days 3650 生成签名证书

10、修改squid.conf配置文件

打码处填写代理服务器IP

11、测试并重启服务

squid -k parse

squid -z

systemctl restart squid

四、无外网机器配置(centos7)

1、yum install openssl openssl-devel gcc 这些一般本地镜像源就有的包

2、下载stunnel包stunnel: Downloads上传到服务器并解压

3、编译安装

cd /stunnel-5.45

./configure

make&&make install

4、安装完成后修改配置文件

cd /usr/local/etc/stunnel

cp stunnel.conf-sample stunnel.conf

加入配置,本地的8088端口连接代理服务器的443端口

打码处为代理服务器IP

5、启动stunnel

stunnel /usr/local/etc/stunnel/stunnel.conf

5、配置代理

在/etc/profile.d目录下创建一个文件,名字随意

加入如下配置

打码处为代理服务器IP

source /etc/profile生效

6、测试

curl 百度一下,你就知道

curl https://www.baidu.com

到目前为止加密与不加密的两种方式都已经实现了

使用weget下载一个包试试

最开始报错了,不检查认证就可以下载成功了

这样就可以在没外网的机器上使用外网安装包了,也可以使用网络YUM源了。

Kubernetes (K8s) 配置 Squid 上网代理通常涉及安装Squid容器,并在Kubernetes的服务发现机制下配置网络策略,以便集群内的Pod能够通过代理访问互联网。以下是基本步骤: 1. **部署Squid容器**: - 创建一个Docker镜像,包含Squid服务器所需的配置文件。例如,你可以基于官方的Squid Dockerfile构建。 - 将该Docker镜像推送到你的私有仓库或公共Registry。 2. **创建Squid Deployment或StatefulSet**: 使用Kubernetes的Deployment YAML文件定义Squid服务,指定镜像、副本数、资源需求等。例如: ```yaml apiVersion: apps/v1 kind: Deployment metadata: name: squid-deployment spec: replicas: 1 selector: matchLabels: app: squid template: metadata: labels: app: squid spec: containers: - name: squid-container image: your-squid-image ports: - containerPort: 3128 ``` 如果需要持久化存储,可以使用StatefulSet替换Deployment。 3. **配置网络规则**: - 使用Kubernetes的NetworkPolicy来控制流量流向代理。允许特定的源Pod连接到Squid服务,如: ```yaml apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: allow-to-squid spec: podSelector: matchLabels: app: squid-client policyTypes: - Ingress ingress: - from: - podSelector: matchLabels: app: squid-client ports: - protocol: TCP port: 80 ``` 这样,带有`app: squid-client`标签的Pod将能通过Squid访问外部网络。 4. **验证代理设置**: 创建一个依赖于Squid代理的应用(比如,标记为`app: squid-client`),然后测试其能否正常通过代理访问互联网。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值