info
在网络开发和服务器管理中,经常需要访问远程服务器上的服务或应用程序。 SSH端口转发(ssh -L)提供了一种方便的方式,可以将远程服务器的端口暴露到本机,使我们可以直接在本地使用这些服务
命令格式
ssh -L <本地端口>:<目标服务器地址>:<目标服务器端口> <SSH用户名>@<SSH服务器地址>
注意: <本地端口>
必须是未被使用的,否则会出现错误。
<本地端口>
:您希望在本地计算机上使用的端口号。<目标服务器地址>
:远程服务器的IP地址或主机名。<目标服务器端口>
:您希望访问的远程服务器上的端口号。<SSH用户名>
:远程服务器上的SSH用户名。<SSH服务器地址>
:远程服务器的IP地址或主机名。
检查端口是否可用
# Windows 检查端口是否可用
netstat -ano | findstr <端口号>
# Linux
netstat -ano | grep <端口号>
例如:我们可以把远程服务器的9000端口映射到本地的9000端口,这样就可以访问localhost:9000 跟访问远程服务一样 不用考虑为远程服务器去开放端口了
ssh -L 9000:localhost:9000 user@10.0.0.2
现在,您可以在本地计算机上使用localhost:9000来访问远程服务器上的服务或应用程序。 任何发送到本地计算机的9000端口的请求都将通过SSH通道转发到远程服务器上,并从远程服务器的9000端口返回响应。
优点
通过使用SSH端口转发,我们可以方便地在本地开发环境中使用远程服务器上的服务,而无需直接连接到远程服务器。这为开发人员和系统管理员提供了更加灵活和安全的远程访问方式