1. 程式人生 > >通過代理讓你的內網JAVA伺服器不改程式碼的情況下能連結上網際網路

通過代理讓你的內網JAVA伺服器不改程式碼的情況下能連結上網際網路

今天遇到這麼一個場景,有一個伺服器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

相關推薦

通過代理JAVA伺服器程式碼情況連結網際網路

今天遇到這麼一個場景,有一個伺服器A是能連結到網際網路,只能與內網中的網路通訊。伺服器B能連結到網際網路,並且A與B之間網路是互通的。A上面搭載著JAVA服務,在不改動程式碼的情況下,如何讓A連結

一篇文章徹底瞭解Java部類

內容整理自《Thinking in Java》(第四版) 第10章 PDF下載地址 什麼是內部類? 將一個類的定義,放在另一個類的定義內部,那這個類,就是內部類 為什麼需要內部類? 一般來說,內部類繼承自某個類或實現某個介面,內部類的程式碼操作建立其的

客戶 通過 公網域名/ip 訪問web伺服器 出錯

在一內部區域網中, client  內網地址為 10.0.0.2     web  伺服器內網地址為 10.0.0.1    外網地址為  211.6.15.1    域名為  xx.love.com 問題:在內網10.0.0.2的機器上訪問   外網地址 211.

(四)ansible 通過堡壘機訪問伺服器

場景:     在ansible的使用過程中,存在這樣的場景,ansible所在的管理節點與被管理的機器需要 通過一個跳板機才能連線,無法直接連線。要解決這個問題,並不需要在 ansible裡做什麼處理,而是在ssh連線層面解決這個問題。  

只具備伺服器通過yum安裝軟體

1、在維護過程中,需要統一安裝一些軟體,可能有的機器只具有內網,有的機器具備外網,可以直接從yum安裝,怎麼辦呢? 答:在具備外網的機器上啟用yum快取,這樣安裝軟體的時候本地也快取了軟體安裝包,怎樣修改yum配置: #vim /etc/yum.conf  keep

徹底明白JAVA中堆與棧的區別

java程序 運行 一點 動態 自動變 key 空間 類型 lin 原文地址:http://www.2cto.com/kf/201302/190704.html 簡單的說: Java把內存劃分成兩種:一種是棧內存,一種是堆內存。 在函數中定義的一些基本類型的變量和對象的引用

搭建nginx反向代理用做域名轉發

網址 targe 服務器 路由器 http 請求轉發 tls .html 特定 原文網址鏈接:http://www.ttlsa.com/nginx/use-nginx-proxy/ https://www.cnblogs.com/Miss-mickey/p/6734831.

使用frp通過ssh訪問公司機器

.gz 客戶 oca git 安裝包 公網 serve AR 公司 https://github.com/fatedier/frp/ github地址(具有中文文檔)從Release頁面下載安裝包本次是使用frp_0.20.0_linux_amd64.tar.gz版本通過S

[精]--這一次,徹底明白Java的值傳遞和引用傳遞!

本文旨在用最通俗的語言講述最枯燥的基本知識 學過Java基礎的人都知道:值傳遞和引用傳遞是初次接觸Java時的一個難點,有時候記得了語法卻記不得怎麼實際運用,有時候會的了運用卻解釋不出原理,而且坊間討論的話題又是充滿爭議:有的論壇帖子說Java只有值傳遞,有的部落格說兩者皆有;這讓人有點摸不著頭

如何通過花生殼(穿透)服務搭建遠端桌面

不在公司或者休假偶爾需要遠端處理公司檔案,然而公司的路由器我們一般接觸不到,或者不能擅自修改配置。花生殼(內網穿透)服務不需要在路由器上設定埠對映即可實現遠端訪問。 第一步,內網搭建遠端桌面服務 1.在伺服器端上右擊【我的電腦】——【屬性】——【遠端】。 第二步,下載花生殼客戶端,

通過圖文給講明白java GC的實現原理

本文原連結 http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/gc01/index.html 1. JAVA GC 概述 JAVA GC採用了分代思想,將java堆分成新生代,年老代,永久代。

#Java乾貨分享:一篇文章深入瞭解Java中的包和介面

很多新手程式設計師對於Java中兩個具創新性的特徵————包與介面不是非常清楚,所以我特意發了這篇文章來闡述什麼是包,什麼是介面。 包(package)是多個類的容器,它們用於保持類的名稱空間相互隔離。 如果有想學習java的程式設計師,可來我們的java學習扣qun:79979,2590免

開源DNS伺服器軟體介紹

  一般內網dns解析個人推薦使用: 1、skydns(特別是k8s+docker等雲集群服務) SkyDNS是kubernetes用於服務發現的預設的開源DNS服務,其開源在github。使用etcd作為資料儲存。由於其在配置DNS資訊時,幾乎可以實時生效,所以Sk

CentOS搭建NTP伺服器

    在企業內部網路,不是所有的伺服器都可以連線外網,需要搭建一臺可以連線外網的伺服器用於NTP伺服器   安裝環境檢視   安裝ntp yum -y install ntp   修改配置檔案 driftfile /var/lib/ntp/drift res

一文徹底理解 Java NIO 核心元件

背景知識 同步、非同步、阻塞、非阻塞 首先,這幾個概念非常容易搞混淆,但NIO中又有涉及,所以總結一下[1]。 同步:API呼叫返回時呼叫者就知道操作的結果如何了(實際讀取/寫入了多少位元組)。 非同步:相對於同步,API呼叫返回時呼叫者不知道操作的結果,後面才會回撥通知結果

自建郵箱伺服器

自建郵箱伺服器 工具:隨便一個虛擬機器,能聯網即可。這裡使用的域名tg.zyy,也是為了紀念我高中的女神zyy而創的O(∩_∩)O~ 1、概述 沒人喜歡廢話,安裝centos跳過,這裡使用

nginx反向代理用做域名轉發

由於公司內網有多臺伺服器的http服務要對映到公司外網靜態IP,如果用路由的埠對映來做,就只能一臺內網伺服器的80埠對映到外網80埠,其他伺服器的80埠只能對映到外網的非80埠。非80埠的對映在訪問的時候要域名加上埠,比較麻煩。並且公司入口路由最多隻能做2

ssh反向代理實現NAT穿透[ssh版teamviewer]

由於實驗室伺服器沒有公網IP,如果在校外網的話只能通過teamviewer遠端桌面連線,然而teamviewer的資料傳輸是基於影象的,反應太慢了,所以一直在尋找ssh版的teamviewer,經過谷歌,發現只需要一臺公網伺服器作為中轉站,就可以實現在任何地方登

手機訪問IIS伺服器網頁的方法

1.下一個wifi共享大師,分享一下熱點,將筆記本變成一臺無線路由(伺服器)(有底層的實現,可參看:http://blog.csdn.net/goodshot/article/details/10217753) 2.軟體預設的ip地址是192.168.155.1,這時要在I

搭建suse11.4伺服器

  有外網的話 suse-test:~ # cat /proc/version Linux version 3.0.101-108.18-default (geeko@buildhost) (gcc version 4.3.4 [gcc-4_3-branch revision 152973]