商会网站建设方案书百度首页排名优化公司
通过远程连接的管理工具利用开启隧道的形式转发端口的做法,现在大家或多或少都用过吧。但是直接在命令行使用ssh添加-L
或者-R
的方式来进行代理或者反向代理转发,又有多少人试过呢?
ssh -L
和 ssh -R
是 SSH(Secure Shell)命令的两个参数,它们用于设置端口转发。端口转发允许您通过一个安全的 SSH 连接将一个端口从一个网络转发到另一个网络。
下面通过假设下面的一个架构,来模拟演示如何不用图形软件仅在命令行中创建隧道转发端口。
一、ssh -L(本地端口转发)
-L
参数用于创建一个从本地机器到远程机器的端口转发。这种类型的转发通常用于将远程服务器上的服务转发到本地机器,以便可以安全地访问它。
语法:
ssh -L 本地端口:远程地址:远程端口 用户名@远程主机
- 本地端口:在本地机器上监听的端口。
- 远程地址:远程机器的地址,可以是远程机器本机的
localhost
或者远程机器可以访问到的其他机器的IP。 - 远程端口:远程机器上的端口,您想要从本地访问的服务的端口。
例一: 假设您想要从本地机器安全地访问远程服务器上的 MySQL 数据库服务器,该服务器运行在远程服务器的 3306
端口上。
ssh -L 3306:localhost:3306 用户名@远程主机
这个命令会在本地机器上监听 3306
端口,并将其转发到远程主机的 3306
端口。然后,您可以在本地机器上使用 MySQL 客户端连接到 localhost:3306
,实际上您连接的是远程服务器上的 MySQL 服务。
具体的运行效果:
假设mysql服务器在虚拟局域网中的IP为10.147.17.253
sean@MacBook-Pro ~ % ssh -L 3306:localhost:3306 root@10.147.17.253
The authenticity of host '10.147.17.253 (10.147.17.253)' can't be established.
ED25519 key fingerprint is SHA256:O/lqToPCh+PXli4FJkjumWlnltaq5UHmsLeKFhS8QgE.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/n