一個Oracle監聽問題的網路排查
今天在梳理一套環境的時候,發現了一個奇怪的問題,應用端連線正常,但是服務端卻有些問題。
假設服務端的IP地址為10.129.128.57
使用tnsping本機的服務,竟然丟擲了監聽的問題。
$ tnsping s2gamebbs
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = s2gamebbs.test.com)(PORT = 1528)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = gamebbs)))
TNS-12541: TNS:no listener
是監聽沒啟動嗎,檢視監聽程式存在,確實是啟動了,但是檢視監聽狀態卻丟擲了錯誤
LSNRCTL> status listener_1528
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=s2gamebbs.test.com)(PORT=1528)))
TNS-12541: TNS:no listener
TNS-12560: TNS:protocol adapter error
TNS-00511: No listener
Linux Error: 111: Connection refused
這個問題立馬勾起了我的興趣,我使用域名解析的方式檢視是沒有問題的。
$ ping `hostname`
PING s2gamebbs.cyou.com (10.129.128.57) 56(84) bytes of data.
64 bytes from s2gamebbs.cyou.com (10.129.128.57): icmp_seq=1 ttl=64 time=0.059 ms
。。。
^C
但是ping伺服器的IP是有問題的。
# ping 10.129.128.57
PING 10.129.128.57 (10.129.128.57) 56(84) bytes of data.
From 10.129.128.57 icmp_seq=1 Destination Port Unreachable
From 10.129.128.57 icmp_seq=2 Destination Port Unreachable
如此一來,這個問題就有趣了,我對比了如下的幾種測試場景。
# telnet 10.129.128.57 1528
Trying 10.129.128.57...
telnet: connect to address 10.129.128.57: Connection refused
# telnet 127.0.0.1 1528
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
# telnet `hostname` 1528
Trying 10.129.128.57...
telnet: connect to address 10.129.128.57: Connection refused
同時做了strace除錯,也沒有看到明顯的問題,於是我懷疑是網路層面解析的問題,/etc/hosts的檔案看了很多遍沒有問題,那就只有網路層面,比如防火牆了,我開始琢磨防火牆裡的配置。 看到了下面的一段:
-A INPUT -s 10.10.75.59/32 -j ACCEPT
-A INPUT -p udp -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-port-unreachable
其中最後的一句是關鍵,如果倒數兩句的順序調整一下,上面的錯誤就會完全不一樣。
這個引數其實的設定其實也是一種安全策略,如果能夠掃描到我們的埠,但是卻沒法得知我們的網路訪問是否在防火牆控制下,當然這個地方的設定傷害到“自己人”了。所以暫不需要。
去掉折後,重新啟動防火牆,問題就得到了解決。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23718752/viewspace-2143749/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle的監聽問題Oracle
- 關於oracle的監聽問題Oracle
- 關於vue事件監聽的一個問題Vue事件
- Oracle dblink監聽問題Oracle
- oracle em與監聽改名的問題Oracle
- 使用 nsenter 排查容器網路問題
- 如何排查網路問題-開發眼裡的網路
- 一個拷貝操作導致的潛在監聽類問題
- Oracle監聽日誌過大導致的問題Oracle
- ORACLE10G 監聽僵死問題的解決Oracle
- 從Linux 2.6.8核心的一個TSO/NAT bug引出的網路問題排查觀點Linux
- 網路問題排查必備利器:Pingmesh
- 兩個流程鏈路問題的排查和總結
- ORACLE 動態註冊,靜態註冊,多個監聽,一個監聽多個埠配置Oracle
- 關於oracle11g RAC 監聽器問題Oracle
- ORACLE監聽器 The listener supports no services 問題解決方法Oracle
- 安卓監聽網路變化安卓
- Oracle啟動兩個監聽Oracle
- Oracle 三個監聽檔案Oracle
- oracle 監聽配置多個埠Oracle
- 一個網路IP地址衝突的問題
- 網路安全netstat監聽網路狀態。
- Oracle 監聽Oracle
- iOS AFN監聽網路狀態iOS
- 從Linux2.6.8核心的一個TSO/NATbug引出的網路問題排查觀點(附一個skb的優化點)Linux優化
- 說說Oracle監聽器(一)Oracle
- Oracle監聽的作用Oracle
- oracle listener 靜態監聽與動態監聽的一些小事Oracle
- oracle 多個例項監聽不到Oracle
- 網路問題導致10g CRS監聽服務offline 處理
- ORACLE啟動監聽器 The listener supports no services 問題解決方法Oracle
- oracle監聽啟動時報TNS-00507問題解決一例Oracle
- Oracle10g RAC 兩個監聽狀態為offline 問題處理Oracle
- CentOS7 配置靜態IP 及網路問題排查CentOS
- 一次Oracle監聽無法動態註冊處理過程排查分析Oracle
- iftop監控一個埠的網路流量
- iOS 使用 Reachability 監聽網路狀態iOS
- Oracle監聽(1)Oracle