通过代理让你的内网JAVA服务器不改代码的情况下能链接上互联网

版权声明:本文为博主思考总结而得,只做抛砖引玉,欢迎大家转载指导 https://blog.csdn.net/hayre/article/details/81278280

今天遇到这么一个场景,有一个服务器A是能链接到互联网,只能与内网中的网络通讯。服务器B能链接到互联网,并且A与B之间网络是互通的。A上面搭载着JAVA服务,在不改动代码的情况下,如何让A链接上互联网?

一、最开始的解决方案。
最开始的解决方案是使用nginx做正向代理,即在B上面搭建nginx,然后把请求目标的域名指向B的ip,让B进行转发。

结果:nginx无法转发https的请求,有尝试过使用插件,但是插件编译时出现问题,结果否定了这个方案。

二、解决方案。
使用squid在B上面做正向代理,在A上面配置linux全局代理指向B,在A JVM 中配置代理指向B

三、操作步骤
在B中下载squid

yum install squid

配置squid

echo "1" >/proc/sys/net/ipv4/ip_forward #打开内核转发,在CentOS7中已经打开,无需设置。
vi /etc/squid/squid.conf

这里写图片描述

启动squid

service squid start

在A中配置代理

vim /etc/profile

加入以下配置
这里写图片描述

在A JVM 中加入以下启动参数

java中配置代理
java中支持 HTTP代理、HTTPS代理、Socket代理、FTP代理 等。

-DproxyHost 
-DproxyPort [默认值:80] 
-DnonProxyHosts

猜你喜欢

转载自blog.csdn.net/hayre/article/details/81278280
今日推荐