SSH 端口转发

2019-07-15  本文已影响0人  多彩海洋

作为程序员经常会有需要访问某个局域网内的某台机器的需求,例如帮别人调试某个程序,或者远程操作家里的电脑。

之前是使用向日葵 VPN 和 Teamview 的方式在家里通过 ssh 访问公司内网的台式机,速度不是很理想。后来发现 SSH 端口转发可以实现类似的功能,走自己的服务器,果断尝试,这种连接方式的速度非常快,开发效率提高很多。

一台公司和家里都能访问的具有公网 IP 的机器 B,IP 假设为 11.11.11.11

ssh -oPort=22 -CNfg -R 40000:localhost:22 root@11.11.11.11

-oPort 是指定用于连接 11.11.11.11 的 SSH 的端口。 -C 要求进行数据压缩。 -N 不执行远程命令,用于转发端口。 -f 要求在执行命令前退至后台. 它用于当准备询问口令或密语, 但是用户希望它在后台进行。该选项隐含了 -n 选项。 -g 允许远端主机连接本地转发的端口。 40000 有公网 IP 的机器绑定的端口,该端口的流量会被转发到指定的 Local IP 和 Port。 localhost:22 需要转发的本地 IP 和端口,localhost 可以为 A 机器可访问到的其他机器的 IP 地址。

这样在家里的笔记本 C 通过 SSH 登录 11.11.11.11 主机 B,再通过 ssh 连接本地的 40000 端口,这时候就相当于是连接到了内网的机器 A 的 22 端口,就实现了远程 SSH 连接内网的台式机。

注:需要注意的是如果连接空闲一段时间的话,可能就会断开。

解决空闲连接断开的问题

1. 修改客户端配置

2.修改服务器端配置

上一篇下一篇

猜你喜欢

热点阅读