在部分情况下,没有办法直接访问到目标机器,需要通过中转的方式进行访问,一般使用代理,或者VPN等组网方式,使用端口转发的方式其实也是不错的。
这里简单介绍一下 ssh
的代理方式.
ssh 端口转发
ssh -f user@server -[LR] 3306:server:3306 -N
命令的细分:
ssh:调用ssh。
-f:(从man ssh页面)
请求ssh在命令执行之前转到后台。如果ssh要求输入密码或密码,但用户希望在后台使用,这很有用。
本质上,一旦你输入任何密码建立连接,发送到后台; 它将shell提示返回给你。
user@server:您想要登录的远程服务器。
-[LR] 3306:server:3306:
[bind_address:] port:host:
hostport
指定将本地(客户端)主机上的给定端口转发到远程端的给定主机和端口。因此-L 3306:server:3306将本地端口绑定3306到主机上的远程端口
因此-R 3306:server:3306将远程(server)端口3306绑定到主机上的本地端口
当你连接到本地端口时3306,连接将通过安全通道转发到
server
。在远程主机上,server
然后连接到server
端口3306。-N:不要执行命令。这对于“仅转发端口”(引用手册页)很有用。
注意:为了能够在127.0.0.1之外进行监听,还需要修改远程sshd配置文件,增加配置:/etc/ssh/sshd_config
1 | GatewayPorts yes |
参考文档
https://cloud.tencent.com/developer/ask/115664
How to make an SSH tunnel publicly accessible? https://superuser.com/questions/588591/how-to-make-an-ssh-tunnel-publicly-accessible