CentOS安装配置代理服务器
1.背景
CentOS绑定了多个IP地址之后,还是所有流量都走主IP,因为业务原因,无法通过配置路由的方式来定向访问,考虑使用代理服务器。
2.代理服务器安装
CentOS 代理服务器安装十分简单:
yum intall tinyproxy
配置一下
vim /etc/tinyproxy/tinyproxy.conf
配置文件中有如下内容,Bind IP可以配置使用哪个IP做出口
# Bind: This allows you to specify which interface will be used for
# outgoing connections. This is useful for multi-home'd machines where
# you want all traffic to appear outgoing from one particular interface.
# 这允许您指定 Tinyproxy 将绑定到哪个目标地址,以将其连接到Web服务器或上游代理。
Bind 192.168.0.18
修改之后,配置服务
systemctl enable tinyproy
systemctl restart tinyproy
出错了,显示错误
"Bind" cannot be used with transparent support enabled.
这个错误,是因为编译tinyproy时,使用了–enable-transparent,启用透明代理,只有重编译tinyproxy解决了。
3.编译tinyproxy
先yum remove tinyproxy,然后git clone代码
git clone https://github.com/tinyproxy/tinyproxy.git
进入tinyproxy目录
./autogen.sh
./configure
make
make install
启用服务,系统提示找不到文件,无法enable服务,通过再次yum安装tinyproxy,并采用find命令
find / -name 'tinyproxy'
比较前后文件差别,发现需要把tinyproxy执行文件复制到/usr/sbin/tinyproxy
cp /usr/local/bin/tinyproxy /usr/sbin/tinyproxy
再次启动,一切正常
4.检验结果
通过站长工具网站查询自己的IP地址,就可以知道是否代理服务器起作用了
curl http://ip.tool.chinaz.com | grep 'dd class="fz24"'
curl -x http://127.0.0.1:8000 http://ip.tool.chinaz.com | grep 'dd class="fz24"'
输出结果显示,两个IP是不同的,配置成功
php调用代码:
$proxy = "127.0.0.1:8000";
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
5.后记
后来发现,php的curl可以指定本地Interface,上面所做的成了无用功😂
curl_setopt($curl, CURLOPT_INTERFACE,”第二个网卡IP” );