oracle服務埠方面會有很多的問題,下面就將為您介紹在防火牆上開放oracle服務埠的方法,希望對您學習oracle服務埠方面能有所幫助。
要使oracle客戶端能正常連線到設定有防火牆的安裝在windows上的oracle伺服器,單開放乙個1521或自定義的監聽埠是不夠的。
我們有的時候需要對映埠遠端去訪問oracle資料庫,這裡有個防火牆的問題,在unix上沒有問題,但是在win 平台上卻無法正確訪問,下面的可以解決這個問題,:
近來由於工作需要,在windows xp平台上安裝了oracle9i資料庫作為測試之用,一切正常。但當客戶機連線伺服器時卻總是超時,我首先想到了防火牆,當我開啟1521埠時,連線操作仍然失敗。我又懷疑網路有問題,用telnet server_ip:1521嘗試,連線被接受,說明1521埠已經被開啟。
沒有辦法,查詢oracle資料後才明白,network listener只起乙個中介作用,當客戶連線它時,它根據配置尋找到相應的資料庫例項程序,然後spawned乙個新的資料庫連線,這個連線埠由network listener傳遞給客戶機,此後客戶機就不再和打交道了,即使listener停止了工作。這個新的連線埠是不可預知的,因而會被防火牆阻止。
windows socket2 規範有乙個新的特性,就是shared socket,所謂共享套接字是指乙個程序共享另乙個程序的套接字(詳見msdn相關參考)。如果讓network listener與資料庫服務程序共享套接字,那麼連線埠就不會變化。
如何設定shared socket?
在登錄檔:hkey_local_machine\software\oracle\home0上新建乙個字串值:use_shared_socket=true.如果安裝了多個目錄,則每個類似的目錄都要設定:hkey_local_machine\software\oracle\homex (x目錄編號)
設定後要求重新啟動例項(只重啟listener發現沒有效果)
oracle客戶端連線伺服器,首先去找1521監聽埠,伺服器的1521監聽埠再向server process程序發出請求,並返回乙個隨機埠,返回給客戶端,客戶端再來連線這個埠。 這樣就給伺服器上的防火牆設定帶來了麻煩,這個埠是隨機的,如何開放?
windows平台上的這個問題成了一大難題,很多論壇都有人問,但很少有人能解決。unix平台不用擔心,系統自動會解決這個問題。 matalink上提供了三種解決辦法,實際上use_shared_socket是最有效最方便的。但經過無數次實現,仍然沒有成功,最後終於發現是oracle 8.1.7的bug 需要打補丁,公升級到oracle 8.1.7.1.2
需要在mts模式下(共享模式) oracle預設是專用模式。
經試驗發現,如果不在init檔案中設引數的話,oracle仍然會要求乙個隨機埠和1521埠來共同通訊,只是這個隨機埠,並不隨客戶端會話和登入的變化而變化,在沒有重啟伺服器時,是固定的。(試驗發現,在專用模式下,每次連線,oracle伺服器會按+1方式,提供乙個非1521的埠。)所以,還需要在init.ora檔案的最後加上一條引數:
mts_dispatchers="(address=(protocol=tcp)(host=myoradb)(port=1521))(dispatchers=1)"
防火牆 埠
1.dmz口 這個是非武裝區,用於伺服器 內 外網都可以訪問,但還是與內網隔離.就算是黑客把dmz伺服器拿下,也不能使用伺服器來控制內網的網路.起到安全的策略 外部能訪問dmz 內部能訪問dmz 2.trust口 可信任的介面.是區域網的介面.此介面外網和dmz無法訪問.外部不能訪問trust口 d...
配置防火牆埠
這裡舉例開啟80埠 3306埠 vi etc sysconfig iptables a input m state state new m tcp p tcp dport 80 j accept 允許80埠通過防火牆 a input m state state new m tcp p tcp dpo...
防火牆丟擲埠
檢視防火牆狀態,得到結果是running或者not running firewall cmd state 在running 狀態下,向firewall 新增需要開放的埠,如果沒開啟則用下面命令開啟 systemctl start firewalld 永久的新增該埠。去掉 permanent則表示臨時...