很多场景下服务器网络不能直接通信,或***,或堡垒机,或网络(路由),或者其他安全策略。
特殊说明:本实验均采用root用户操作,故省去用户名,读者可自行选择用户。实验的IP请替换为自己环境的IP即可
案例1:
A :公网IP(129.28.X.X)

B: 私网IP (192.168.X.X)

如果不考虑防火墙等原因的话,B 可以SSH远程到 A,但是A无法SSH到B(因为B是私网IP)。

由于某种原因,现要求A能访问B,(可以先猜猜该怎么做,***行不行呢?我也不知道.....)

说明:只要其他人能访问A(公网IP),也就能通过A访问B了

操作如下:
#主机B执行(然后输入A的密码):
ssh -R 6121:127.0.0.1:22 129.28.X.X -Nf
参数说明:

-R 转发

6121 A服务器所要开启的端口

127.0.0.1 转发目标(本次测试是B主机,也可以换成B能访问到的其他主机,这样A就能通过B访问其它主机了)

:22 转发目标的端口

-Nf 后台启用,不打开shell

测试:在A服务器上连接本地端口6121即可
#主机A执行(然后输入B的密码):
ssh localhost -p 6121
场景:甲自己电脑上有个虚拟机,乙电脑上也有个虚拟机,但是他们不在同一个网段,通过上诉方法,只要他们能访问到同一台服务器(往往在公网上),那他们就能通信。感兴趣的可以自己整整。
Note: ssh的时候如果报错 Permission denied (publickey,gssapi-keyex,gssapi-with-mic) 的话,在 /etc/ssh/sshd_config 文件添加一行 PasswordAuthentication yes

https://cloud.tencent.com/developer/article/1598496