【代理】通过DMZ区网络工具代理应用区第三方接口访问

一、背景

环境分为 DMZ区、应用区和数据区。

只有DMZ 区的服务器能联网,应用区工程需要调用第三方接口需要访第三方的公网地址,只能通过DMZ区做一个代理去访问了。

二、 代理使用

1. 四层代理

在DMZ区服务器安装rinetd

# vim /etc/yum.repos.d/nux-misc.repo

[nux-misc]
name=Nux Misc
baseurl=http://li.nux.ro/download/nux/misc/el7/x86_64/
enabled=0
gpgcheck=1
gpgkey=http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
image.png
# yum  -y install  rinetd  --disablerepo="*"  --enablerepo=nux-misc
image.png
# rpm -ql  rinetd

# cat  /etc/rc.d/init.d/rinetd

# cat /etc/rinetd.conf

# /usr/sbin/rinetd  --help

#  /usr/sbin/rinetd  -v
rinetd 转发规则语法如下:

bindaddress         bindport         connectaddress      connectport
源地址              源端口           目的地址             目的端口


# vim  /etc/rinetd.conf

0.0.0.0  2195    gateway.push.apple.com          2195
0.0.0.0  2196    gateway.sandbox.push.apple.com  2196
0.0.0.0  443     api.xmpush.xiaomi.com           443
#  systemctl  start  rinetd
#  systemctl  enable  rinetd
#  systemctl  status  rinetd

在应用区服务

添加hosts ,将第三方地址统一解析到 代理服务器ip

#vim  /etc/hosts

xx.xx.xx.xx    gateway.push.apple.com 
xx.xx.xx.xx    gateway.sandbox.push.apple.com 
xx.xx.xx.xx    api.xmpush.xiaomi.com 

注: xx.xx.xx.xx 为DMZ区代理服务器ip。

2. 七层代理

在DMZ区服务器安装squid

# yum  -y  install epel-release
# yum  -y  install squid 
# vim /etc/squid/squid.conf

配置参数,端口默认3128


image.png
# systemctl start squid.service
# systemctl status squid.service
# systemctl enable squid.service
image.png

在应用区服务器设置OS层代理

# vim /etc/profile
##########################################################
export HTTP_PROXY="xx.xx.xx.xx:3128"
export HTTPS_PROXY="xx.xx.xx.xx:3128"
export NO_PROXY="localhost,127.0.0.1,10.0.0.0/8,192.168.0.0/16"
##########################################################
# source  /etc/profile

作为应用层代理,设置OS层代理,测试其他地址的端口连通性,似乎不行

telent  www.baidu.com  443
echo > /dev/tcp/www.baidu.com/443

但是 curl www.baidu.com 是能正常返回的。

在应用区服务器设置JVM层代理

示例:

$  java   \
-Dhttp.proxyHost=xx.xx.xx.xx \
-Dhttp.proxyPort=3128 \
-Dhttp.proxyUser=username \
-Dhttp.proxyPassword=password  \
-Dhttp.nonProxyHosts="localhost|127.0.0.1|www.example.com" \
-jar myJar.jar

注: xx.xx.xx.xx 为DMZ区代理服务器ip。

三、参考

内网Linux服务器如何通过代理方式访问外网
https://blog.csdn.net/q121365405/article/details/122267701

Linux设置http/https proxy及忽略proxy的方法
https://www.cnblogs.com/marklove/p/10805432.html

CentOS7.x上轻量级TCP转发工具rinetd的安装配置
https://www.jianshu.com/p/2605d247b944

How do I set the proxy to be used by the JVM?
https://www.jianshu.com/p/ca03a945ecba

你可能感兴趣的:(【代理】通过DMZ区网络工具代理应用区第三方接口访问)