如何通过跳板机无缝连接需要跳转的服务器?

2021 年 7 月 23 日
 eggt
本机( mac 环境) 与跳板机 A 是通的,A 与 B, C, D ... 是通的,但 本机与 B,C,D 之间是不直通的,请教下,如何通过一些配置或工具,达到 本机全局情况下与 B,C,D 无缝连接(自动通过 A 中转连接)

A, B, C, D.... 均是 linux 服务器
9913 次点击
所在节点    程序员
51 条回复
zwy100e72
2021 年 7 月 23 日
先搭建 本机 - A 的隧道( SSH / VPN 均可)
再通过隧道连接其他机器
Ariver
2021 年 7 月 23 日
一楼正解。
有的跳板机是 windows,烦死了。
lcdtyph
2021 年 7 月 23 日
ssh -J jumpserver targetserver

可以写进 .ssh/config
huoshen
2021 年 7 月 23 日
gost 直接端口转发中转
mrxun1998
2021 年 7 月 23 日
ssh -t -t B_user@B_ip -p 22 -o ProxyCommand='ssh -t -t A_user@A_ip -p 22 -W %h:%p''
两边都配置成密钥登录的话一条命令就能通过 A 登录 B 了
liyunyang
2021 年 7 月 23 日
同问,有没有详细教程~
公司的堡垒机限制太烦了,mac 环境被迫只能先远程 window 桌面,再连接 Linux 服务器
重点是 mac 的 Windows 远程桌面工具( Microsoft Remote Desktop )实在难用,被迫安装了 pd 虚拟机。。
神烦
eggt
2021 年 7 月 23 日
@lcdtyph 这只针对会话吧?我想找个全局都真通的方案
@mrxun1998
jk1030
2021 年 7 月 23 日
我也被搞得很烦 假如 A 是 windows b,c,d 是 lunix 这个时候应该怎么联通
huoshen
2021 年 7 月 23 日
啥叫全局都真通?
shynome
2021 年 7 月 23 日
可以使用 tinc 组网,但前提是你能在 a, b, c, d 机器上安装软件
组网的话以 a 机器为中心,本机和 b, c, d 都连接到 a,连接成功后,本机和 a, b, c, d 都可以互相访问就像在同一个局域网内(记得选一个不冲突的网段
whale
2021 年 7 月 23 日
不直通的意思是 A,B,C,D 是同一个 VPC,就 A 开启了外网访问?
网络环境不清楚,不好给方案。
eggt
2021 年 7 月 23 日
@huoshen 打错了,是直通😂
eggt
2021 年 7 月 23 日
@shynome 如果要在 b,c,d 上都要安装软件,这不被允许
LLaMA2
2021 年 7 月 23 日
全程不使用额外的工具,完全依赖各个平台已有的工具,如下:
假定本机的 ip 是 192.168.1.1,跳板机 windows (代号 A )是 192.168.2.1,生产机( BCD )是 192.168.3.1 、192.168.3.2 、192.168.3.3

先在 A 上使用 Windows 命令行配置端口映射如下
netsh interface portproxy add v4tov4 listenport=40022 connectport=22 connectaddress=192.168.3.1
netsh interface portproxy add v4tov4 listenport=50022 connectport=22 connectaddress=192.168.3.2
netsh interface portproxy add v4tov4 listenport=60022 connectport=22 connectaddress=192.168.3.3

然后本机想要连接 B 机器就是 ssh root@192.168.2.1 -p 40022
然后本机想要连接 C 机器就是 ssh root@192.168.2.1 -p 50022
然后本机想要连接 D 机器就是 ssh root@192.168.2.1 -p 60022
yuanzi0
2021 年 7 月 23 日
mmh?
shynome
2021 年 7 月 23 日
@eggt 那只能在本机写路由转发了,将特定 ip 的访问转发到 a 服务器上,Linux 我知道能做到,Mac 不知道好不好做
PandaRun
2021 年 7 月 23 日
ssh tunnel
LLaMA2
2021 年 7 月 23 日
linux 上端口转发
# 将 A 机 40022 端口的流量转发至 B 机器 192.168.3.1 的 22 端口
firewall-cmd --permanent --add-forward-port=port=40022:proto=tcp:toaddr=192.168.3.1:toport=22

注意
开启防火墙伪装:firewall-cmd --add-masquerade --permanent //开启后才能转发端口
其他问题请搜索 firewalld 端口转发
thet
2021 年 7 月 23 日
.ssh/config 里面配置
host jump
user xxxx
hostname xxx.xxx.xxx.xxx
port xxxx
identityfile jumpserver.pem

host server-a
user xxxx
hostname xxx.xxx.xxx.xxx
proxyjump jump
identityfile jump.pem

配置好后,用 ssh server-a 就可以直接登录了,可以搜一下 ssh proxyjump 用法
digitv
2021 年 7 月 23 日
了解下 http tunnel,网上有现成的脚本

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://study.congcong.us/t/791209

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX