问题描述1—通过跳板机连接内网服务器
在本地(localhost)使用 Xshell 通过 SSH 连接到一台跳板机(Bastion Host),跳板机的ip为 101.230.179.158:20005
,密码为 secure/Na4lEuXx91#pYK,@
。 然后,再通过跳板机 SSH 连接到公司内部的一台 Linux 服务器,服务器的 IP ip为 10.255.251.114:22
需要用到了 SSH 的 本地端口转发(Local Port Forwarding**)** 机制,它的核心原理是 SSH 在本地监听一个端口,并将流量转发到远程目标。
使用 Xshell 方式
目标:在 Xshell 中设置端口转发,让 Xshell 直接 SSH 访问公司服务器。
1️⃣ 先在 Xshell 连接跳板机
- 打开 Xshell,点击 新建会话。
- 在 主机 (Host) 填入 **
101.230.179.158
**。 - 在 端口 (Port) 填入 **
20005
**。 - 选择 SSH,输入 用户名 和 密码 **
secure/Na4lEuXx91#pYK,@
**。 - 点击 连接,登录到 跳板机。
2️⃣ 在 Xshell 设置端口转发
- 点击 Xshell 的会话 → 属性。
- 找到 “隧道” 选项。
- 添加新的端口转发规则:
- 类型:本地端口转发(Local)
- **源 (Local Port)**:
2222
- **目标主机 (Destination Host)**:
10.255.251.114
- 目标端口** (Destination Port)**:
22
- 保存并应用设置。
3️⃣ 直接在 Xshell 连接公司服务器
- 新建一个 Xshell 会话,主机填写:
- 复制编辑
127.0.0.1
(localhost)- 端口填写 **
2222
**。 - 连接后,你会直接进入公司服务器 **
10.255.251.114
**,无需再手动 SSH 连接跳板机。
使用 SSH 隧道端口转发
目标: 让本地能够直接 SSH 登录公司服务器 **10.255.251.114
,无需手动 SSH 两次**
1️⃣ 使用 **-L
本地端口转发**
在本地运行:
bash
复制编辑
ssh -L 2222:10.255.251.114:22 -p 20005 user@101.230.179.158
📌 解释:
-L 2222:10.255.251.114:22
:把 本地 **2222
端口** 转发到 **10.255.251.114:22
**(公司服务器的 SSH)。-p 20005
:指定 SSH 端口20005
连接跳板机101.230.179.158
。
然后,在本地可以直接 SSH 连接:
ssh -p 2222 user@127.0.0.1
这样,你就相当于 本地直接连接到公司服务器,不需要手动 SSH 两次。
🌟 为什么这么做?
-
不用手动 SSH 两次:
- 正常方式需要:
本地 → 跳板机 → 公司服务器
,每次都要手动输入 SSH 命令。 - 端口转发后,可以 直接从本地 SSH 访问公司服务器,更方便。
- 正常方式需要:
-
适用于 GUI 访问:
- 例如,你想在本地使用
scp
直接复制文件到公司服务器:
scp -P 2222 localfile user@127.0.0.1:/home/user/
- 也可以 本地 VSCode / Xshell 直接连 **
127.0.0.1:2222
**,像本地服务器一样访问。
- 例如,你想在本地使用
-
更安全
- 你不需要让
10.255.251.114
直接暴露在公网,而是通过跳板机进行访问。
- 你不需要让
🌟 3. 总结
方式 | 是否需要手动连跳板机 | 是否需要保持连接 | 如何使用 |
---|---|---|---|
命令行 (ssh -L) | 需要手动运行 | 需要保持连接(否则隧道失效) | 1️⃣ ssh -L 2222:10.255.251.114:22 -p 20005 user@101.230.179.158 2️⃣ ssh -p 2222 user@127.0.0.1 |
Xshell 方式 | 只需配置端口转发 | Xshell 连接跳板机时,隧道自动生效 | 1️⃣ 先连跳板机,开启 Xshell 端口转发 2️⃣ 直接新建 127.0.0.1:2222 连接 |
✅ Xshell 更适合长期使用,因为它的端口转发会随着 Xshell 的会话而自动管理,不需要手动运行 SSH 命令。
✅ 命令行适合临时访问,但 需要保持 SSH 连接,否则隧道会断掉。
这样你可以随时方便地访问公司内部服务器 🎯🚀