ssh端口转发(ssh隧道)
本地端口映射到其他机器
ssh -Nf -L 18080:18.16.200.110:8083 root@18.16.200.134 -p 22
or
ssh -Nf -L 18.16.202.21:18080:18.16.200.110:8083 root@18.16.200.134 -p 22
- 目标机器为
18.16.200.110
,对外端口为8083
- 跳板机为
18.16.200.134
,端口为22
- 本地端口为
18080
使用上述命令,就可以监听本机的18080
端口,并将命令转发到18.16.200.110
机器的8083
端口上。
访问本机18080
端口,就相当于访问18.16.200.110
的8083
端口应用
参数说明
-
-N 告诉SSH客户端,这个连接不需要执行任何命令。仅仅做端口转发
-
-f 告诉SSH客户端在后台运行
-
-L 做本地映射端口,被冒号分割的三个部分含义分别是最后一个参数是我们用来建立隧道的中间机器的
IP
地址(IP
:18.16.200.134
) -
需要使用的本地端口号(端口:
18080
)- 需要访问的目标机器IP地址(IP:
18.16.200.110
) - 需要访问的目标机器端口(端口:
8083
)
- 需要访问的目标机器IP地址(IP:
案例
-
hostA
映射到hostB
ssh -L 18080:127.0.0.1:8083 root@18.16.200.110
上述的
127.0.0.1
指的是18.16.200.110
上述操作,会将本地
18080
端口的数据转发到18.16.200.110
的8083
端口 -
访问本地端口
ssh -L 9999:18.16.200.110:22 root@18.16.200.134 -p 22
这样访问本机的
9999
端口,就相当于访问了18.16.200.110:22
了ssh localhost -p 9999
远程跳板机端口转发
内网的机器A,公网的机器B,某服务器C
A可以连接B,B可以连接C,但是AC之间不能连接
这个时候如果B能运行一个OpenSSH服务器,那么就可以通过B形成隧道连接AC因为A是内网,所以不能使用C-B-A方案
案例
在跳板机18.16.200.134
节点中执行:
ssh -R 18080:18.16.200.110:8083 qhong@18.16.202.21
使用上述命令,即可访问18.16.202.21:18080
转发到18.16.200.110:8083
端口
参考
[SSH端口转发](
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2019-09-19 三星固态Dell版的960g的sm863a硬盘
2017-09-19 cmder的使用和编码问题解决