千家信息网

代理服务器搭建文档

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,前言:检测到jayproxy使用的squid作为代理服务器,固我们也使用此软件来搭建代理服务器。×××分析:Squid是很好的代理服务器,但它不能直接×××,因为在连接到Squid的过程中,就已经被墙
千家信息网最后更新 2026年11月03日代理服务器搭建文档

前言:检测到jayproxy使用的squid作为代理服务器,固我们也使用此软件来搭建代理服务器。

×××分析:Squid是很好的代理服务器,但它不能直接×××,因为在连接到Squid的过程中,就已经被墙了。所以得把传输的数据先进行加密再传输,这样等于是绕过了防火墙,这里就需要使用Stunnel来传输加密数据。

服务器需求:

1、一台可以正常访问互联网的服务器,代号A(国外的)

2、一台可以正常访问服务器A的国内服务器,代号B

访问过程:

1、用户设置代理指向B服务器的Stunnel服务监听的端口,访问网站

2、访问国外网站时在弹出框输入ldap用户信息,认证通过即可访问国外网站

3、这时B服务器的Stunnel会将信息做加密处理,然后发送到A服务器的Stunnel服务上

4、A服务器的Stunnel会将加密的信息做解密处理,然后发送给A服务器的Squid服务上

5、A服务器的Squid会向目标网站请求数据,然后将信息返回。

实施步骤:

一、在服务器A上安装Squid和Stunnel

1、安装Squid

//安装

yum -y install squid

//初始化squid

squid -z

//启动squid

service squid start

如果什么配置都不做修改,那默认的商品号为3128,这时候,可以打开你的浏览器,设置代理,填上A服务器的IP和3128端口号,访问baidu,输入ip看ip地址是不是代理服务器的ip,如果是,说明Squid已经能正常使用了,不过还不能×××。

2、安装Stunnel

//下载软件包

$wget http://www.stunnel.org/downloads/stunnel-5.01.tar.gz

//解压

$tar -zvxf stunnel-5.01.tar.gz

//进入软件包

$cd stunnel-5.01

//编译安装

$./configure

$make

$make install

配置Stunnel:

Stunnel比Squid要麻烦一些,因为Squid如果你什么都设置,同样能运行,而Stunnel就不行。它需要一个配置文件,还需要一个签名证书。

//先进到目录

cd /etc/stunnel/

$openssl req -new -x509 -days 365 -nodes -out stunnel.pem -keyout stunnel.pem

这样会在/etc/sutnnel/里生成密钥文件stunnel.pem

接着给它生成Diffie-Hellman部分:

$openssl gendh 512>> stunnel.pem

网络上说这是4.X版本必须要做的,但我使用的5.01也这么做了。

设置配置文件:

在/etc/stunnel/目录下有一个stunnel.conf.simple文件(好像是这样的),可以cp一份为stunnel.conf或是新建一个stunnel.conf,这里使用新建

$vim stunnel.conf

将以下内容复制进去

cert =/etc/stunnel/stunnel.pem

CAfile =/etc/stunnel/stunnel.pem

socket = l:TCP_NODELAY=1

socket = r:TCP_NODELAY=1

;;;chroot = /var/run/stunnel

pid = /tmp/stunnel.pid

verify = 3

;;; CApath = certs

;;; CRLpath = crls

;;; CRLfile = crls.pem

setuid = stunnel

setgid = stunnel

;;; client=yes

compression = zlib

;;; taskbar = no

delay = no

;;; failover = rr

;;; failover = prio

sslVersion = TLSv1

fips=no

debug = 7

syslog = no

output = stunnel.log

[sproxy]

accept = 34567

connect = 127.0.0.1:3128

这里有几个设置要说明一下:

第一行和二行是密钥文件的位置,如果按前面的做法,这里肯定是正确的。

setuid = stunnel

setgid = stunnel

是设置用户和用户组,都为stunnel,一般情况下是不会有它们的,所以要新建用户和用户组:

$groupadd -g 122 stunnel

$useradd -c stunnel -d /nonexistent -m -g 122 -u 122 stunnel

accept = 34567 是监听的端口号,也就是B服务器要指向的位置

connect = 127.0.0.1:3128 是本服务器,也就是A服务器Squid监听的端口号,也就是3128啦。

保存退出后,就可以试着启动stunnel了

$stunnel

如果正常是没有输出任何内容的,如果有问题,它会给出问题所在,仔细排查,基本上不会有什么问题。

检查是否正常运行:

$ps -ef | grep stunnel

如果看到stunnel用户运行的stunnel,说明已经成功运行了。

这样A服务器的Squid和Stunnel都配置完成了,接下来配置国内B服务器的Stunnel。B服务器不需要Squid,所以只需要配置Stunnel

二、在服务器B上安装配置Stunnel

安装同A,密钥不要再生成了,从服务器A上拷过来

登录服务器A,进到/etc/stunnel/目录,向服务器B的/etc/stunnel/目录里拷贝stunnel.pem密钥:

$cd /etc/stunnel/

$scp stunnel.pem root@服务器B的IP:/etc/stunnel/

接着登录服务器B,设置配置文件,同服务器A,可以cp一个,也可以新建,这里同样新建:

$cd /etc/stunnel/

$vim stunnel.conf

将下面的内容复制到里面:

cert =/etc/stunnel/stunnel.pem

socket = l:TCP_NODELAY=1

socket = r:TCP_NODELAY=1

verify = 2

CAfile =/etc/stunnel/stunnel.pem

client=yes

compression = zlib

ciphers = AES256-SHA

delay = no

failover = prio

sslVersion = TLSv1

fips = no

[sproxy]

accept = 0.0.0.0:7071

connect = 服务器A的IP:34567

这里要说明的是:

accept = 0.0.0.0:7071 中的7071是用户需要设置的代理端口,可以随意设置,只要大于500就好。0.0.0.0是为了让外网能使用,如果只是内部使用,改成127.0.0.1即可。

connect = 服务器A的IP:34567,很显然这里要填什么,34567是服务器A的Stunnel监听的端口号,保持和它一至就对了。

保存退出后,就可以启动Stunnel了

$stunnel

如果没有意外,整个代理就正常运行了,打开浏览器,将代理设置服务器B的IP+7071端口号,此时即可访问国外网站。

三、配置squid服务器使用LDAP认证

1、安装ldap客户端

yum -y install openldap-clients nss-pam-ldapd openldap

添加ldap服务器信息

vim /etc/openldap/ldap.conf

添加以下2行

BASE dc=shuyun,dc=com

URI ldap://ldap.shuyun.com:389

重启nslcd服务

/etc/init.d/nslcd restart

测试与ldap服务器连通性

ldapsearch -x

2、配置squid与ldap通信

执行此条命令测试squid是否能与ldap连通

/usr/lib64/squid/squid_ldap_auth -u -cn -f "uid=%s" -b "ou=people,dc=shuyun,dc=com" -D "cn=user,ou=people,dc=shuyun,dc=com" -w "password" -H ldap://ldap.shuyun.com

执行时需要输入用户和密码,连通后会显示ok

连通后请编辑/etc/squid/squid.conf文件

注释掉所有以http_access开头的内容,在最后面添加以下4行

auth_param basic program /usr/lib64/squid/squid_ldap_auth -u -cn -f "uid=%s" -b "ou=people,dc=shuyun,dc=com" -D "cn=user,ou=people,dc=shuyun,dc=com" -w "password" -H ldap://ldap.shuyun.com

acl ldapauth proxy_auth REQUIRED

http_access allow ldapauth

http_access deny all

重启squid

/etc/init.d/squid/restart

打开网站看是否会弹出对话框要求输入用户名和密码

四、生成PAC文件,定义白名单×××网站

可以下载shadowsocks软件运行,然后提取里面的本地pac文件

然后把pac文件里面服务器的地址改成B服务器的地址

var proxy = "PROXY B服务器地址:7071; DIRECT;";

pac文件保存好后,下载到本地然后在浏览器代理设置使用这个pac文件即可实现×××的域名走国外服务器线路。


服务 服务器 文件 配置 代理 用户 网站 运行 信息 口号 内容 地址 密钥 目录 软件 加密 生成 监听 输入 也就是 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 南京欣网互联网络科技有限公司 互联网和科技技术 中国互联网科技股 科技企业和互联网企业 互联网科技论文 苏州大垚互联网科技 深圳国际航运科技和互联网 恒银科技与互联网金融 成都互联网科技公司100强 栖莱科技互联网股份有限公司 和信科技工业互联网 移动互联网年度科技创新 想开互联网科技公司怎么样 威龙国际互联网科技公司 四川慕妮娅互联网科技有限公司 滨湖区互联网智能科技产品有哪些 互联网科技包装股份有限公司上市 广州有谷有贝互联网科技有限公司 2021世界互联网领先科技成果发布 宁波跨境商互联网科技有限公司 互联网科技园 互联网金融 科技金融 深圳互联网络科技有限公司 互联网金融监管科技 互联网科技股午盘股票涨跌 互联网科技产品 互联网科技革命什么开始 领航科技大厦互联网公司 广州有谷有贝互联网科技有限公司 承德科技产业互联网平台
0