现象,同事告知要想连接内部服务器,必须先登录一台机器A,然后通过这台A机器的8888端口才能到达远端内网。那么本地是连到哪里了呢。
排查过程,从现象到本质。
- 看看本地的监听端口情况
ss -antuelp | grep 8888
- 我们使用一下这个8888端口,看看连接会去哪儿
ss -anep | grep 8888
- 我们目前已经达到了远端B,那么看看当前B的22端口在和谁连接
ss -anep | grep 22 | grep A
- 看看B上面建立连接使用的进程号,然后查看进程命令行
cat /proc/xxx/cmdline
- 还是有点晕,超级费脑子的跳来跳去。不过还是有点收获的,一般高手才会使用的命令如下,收入囊中,以后也许用得着:
# ssh -fN -R 远端公网地址:远端端口:本地localhost:本地端口 root@远端地址
ssh -fN -R xxxx.238:8888:localhost:22 root@xxx.238