今天同事說新裝了一臺云服務器,使用ssh登錄正常,但是上面的達夢資料庫服務埠不能訪問,
用netstat -anp查看埠是正常監聽的,監聽的地址也是允許任意ip訪問
并且防火墻和iptables都是關閉的
我也覺得奇怪,于是遠程登錄上去服務器,查看了達夢的埠,看起來是正常的,
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp6 0 0 :::5236 ::?? LISTEN 3810/dmserver
ssh -v -p 5236 root@服務器公網ip 試一下訪問達夢資料庫 發現連接失敗
于是改成
ssh -v -p 5236 [email protected] 發現是可以成功連接的
防火墻都是關閉狀態,應該不是防火墻問題,我嘗試地使用traceroute 服務器公網ip,想看一下是不是網路路由有問題,
結果從traceroute輸出發現連接本機ip要經過好幾臺機,這有點不正常,
traceroute to ##脫敏##, 30 hops max, 60 byte packets
1 100.108.0.1 (100.108.0.1) 7.172 ms 7.271 ms 7.255 ms
2 11.245.20.8 (11.245.20.8) 5.880 ms 6.032 ms 11.245.20.2 (11.245.20.2) 5.943 ms
3 11.245.96.3 (11.245.96.3) 5.058 ms 4.933 ms 11.245.96.9 (11.245.96.9) 5.103 ms
使用route -n查一下路由,發現是沒有本機公網ip的路由,所以應該是走了default路由
為什么缺了本地路由呢,難道是ip沒配置好,但沒配置好為什么ssh能連接呢?我嘗試使用ifconfig -a查一下,發現一個問題:本機根本沒有配置這個公網的ip!
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.137 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::8d9f:e6ba:acea:d7bd prefixlen 64 scopeid 0x20<link>
ether fa:16:3e:35:e6:b7 txqueuelen 1000 (Ethernet)
RX packets 84212 bytes 49923509 (47.6 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 48468 bytes 14177057 (13.5 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 58427 bytes 56052388 (53.4 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 58427 bytes 56052388 (53.4 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:e8:4d:1c txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0virbr0-nic: flags=4098<BROADCAST,MULTICAST> mtu 1500
ether 52:54:00:e8:4d:1c txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
后來咨詢了一下同行,才知道云服務器都是這樣的,通過他們路由做nat映射,并不需要在本機配置公網ip,
如果想知道本機公網ip,可以使用curl ip.cip.cc獲取,
于是我執行這個命令,給本機配置多一個虛擬ip(公網的)
ifconfig eth0:1 $(curl ip.cip.cc) netmask 255.255.255.0 up
再次執行ssh -v -p 5236 root@服務器公網ip,發現可以成功訪問了,
這就說明應該是云服務器的路由阻止了5236埠連接,而不是本機問題,
接下來的事情就簡單了,一邊找華為云的介面人,看能不能多放開幾個埠,在華為云回復前,我們自己使用ssh轉發,**把遠程埠通過ssh映射到本機訪問,這樣就可以繞開華為云的防火墻問題,
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/75465.html
標籤:Linux
上一篇:Centos 7 配置靜態IP
下一篇:容器技術之Docker網路
