SSH 端口转发

SSH 端口转发也被叫做SSH隧道(ssh tunnel),因为它们都是通过SSH登陆之后,在SSH客户端与SSH服务端之间建立了一个隧道,从而进行通信。SSH隧道是非常安全的,因为SSH是通过加密传输数据的(SSH全称为Secure Shell)。

主要有3中模式,本地端口转发(Local Port Forwarding),远程端口转发(Remote Port Forwarding)以及动态端口转发(Dynamic Port Forwarding)。对于本地/远程端口转发,两者的方向恰好相反。动态端口转发,早些年用于科学上网,现在基本没有用了。

1.本地转发(-L):

比如你现在需要连接到正式环境的数据库,那么你不需要先ssh到正式环境再输入数据库命令。我的做法是选择用图形界面查看数据库。命令是这样的

ssh -L  6789:192.168.10.10:5432 online

含义就是将本地6789端口接受到的请求转发到生产环境online上面的192.168.10.10:5432,这样本地GUI数据库管理程序就能够直接连接本地6789端口显示线上数据了。可以看出它的作用就是将本地端口的请求转发的服务器上面

2.远程转发(-R)

这个就是和本地转发相反。在连接的服务器上打开一个端口,映射到自己的端口。此时数据流是服务器端口接收到的数据传到了本地。比如你需要一个公网ip(显然我们的办公环境都是没有公网ip的)来调试你的web应用,比如你本地写了个web程序监听8989端口,你远程服务器上有公网ip。你需要把web程序临时分享到公网给别人尝试使用。执行以下命令

ssh -R 4321:127.0.0.1:8989 online

这样别人访问online:4321就会映射到你本地的8989端口上

3.助记
刚开始可能觉得端口比较容易混淆。只需要记住xx:xx,前面是入口,后面是出口。本地转发的时候数据是从本地发到远程。所以6789是本地端口。远程转发的时候数据是从远程发到本地。所以8989是本地端口

4.常用参数
假如你只需要端口映射不需要进入终端执行命令。可以增加-Nf参数,-N为不进入交互式终端。f为后台执行。假如你需要长期使用,那就使用autossh,和ssh一个套路。就不举例了。

参考:https://www.zoulei.net/2017/03/12/ssh-port-forward/

### 如何在 VSCode 中设置 SSH 端口转发 #### 配置端口转发的基础设定 为了使 Visual Studio Code (VS Code) 能够记住已经转发的任何端口,在设置编辑器中应当选中 "Remote: Restore Forwarded Ports" 或者是在 `settings.json` 文件里添加 `"remote.restoreForwardedPorts": true`[^1]。 #### 实现多级跳转开发环境的具体操作 对于更复杂的场景,例如通过机器 A 使用 VSCode 连接到服务器 B 并进行端口转发,之后再由主机 Host 利用 VSCode 连接回机器 A 来完成进一步的端口重定向工作,则可以按照以下方式配置: - **第一步连接**:先从本地计算机启动 VSCode,并使用 Remote-SSH 扩展来建立与目标服务器之间的安全 Shell(SSH)会话。 - **第二步端口映射**:接着可以在 VSCode 的集成终端内执行命令来进行必要的端口映射。假设要将远端服务器上的 22 号端口映射到本机上开放的一个新端口号(如5000),那么可以通过图形界面中的端口管理面板轻松实现这一点;也可以直接运行相应的 shell 命令手动指定参数完成相同的功能[^2]。 - **第三步再次连接**:最后一步是从另一台设备或者同一台电脑的不同实例重新打开 VSCode ,并通过修改过的 SSH 配置文件尝试登录至之前定义好的虚拟地址——即指向 localhost 和自定义端口组合而成的目标位置。此时应确保 `.ssh/config` 文件中有如下条目: ```bash Host serverB HostName localhost User root # 如果适用的话,请替换为实际使用的用户名 Port 5000 ``` 这样做的好处是可以简化跨网络边界的工作流程,允许开发者在一个更加直观友好的环境中处理远程资源和服务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值