0%

ssh 隧道端口转发

在部分情况下,没有办法直接访问到目标机器,需要通过中转的方式进行访问,一般使用代理,或者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