一次云服务器安装达梦数据库后无法远程访问问题…

2020-05-24 16:01:55来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

一次云服务器安装达梦数据库后无法远程访问问题处理

今天同事说新装了一台云服务器,使用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 root@127.0.0.1 发现是可以成功连接的


防火墙都是关闭状态,应该不是防火墙问题,我尝试地使用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
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 0

lo: 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 0

virbr0: 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 0

virbr0-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.cnblogs.com/kingstarer/p/12952170.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Centos 7 配置静态IP

下一篇:容器技术之Docker网络