ssh 端口映射相关命令详解

ssh 端口映射相关命令详解

一、本地端口转发(Local Port Forwarding)

ssh -L [本地监听地址:]本地端口:目标地址:目标端口 用户名@SSH服务器
ssh -L 3306:localhost:3306 user@remote-server

用于将⌈目标地址:目标端口⌋的端口通过ssh隧道映射到本地,这样在本地就可以访问到⌈目标地址:目标端口⌋的服务。PS:⌈目标地址:目标端口⌋是”SSH服务器”可以访问的地址.

二、远程端口转发(Remote Port Forwarding)

ssh -R [远程监听地址:]远程端口:目标地址:目标端口 用户名@SSH服务器
ssh -R 8080:localhost:3000 user@remote-server

用于将⌈目标地址:目标端口⌋通过ssh隧道映射到远端,这样远端服务器就可以通过ssh隧道访问到⌈目标地址:目标端口⌋。PS:⌈目标地址:目标端口⌋是本地可访问地址.

三、动态端口转发 / SOCKS 代理(Dynamic Port Forwarding)

ssh -D [本地监听地址:]本地端口 用户名@SSH服务器
ssh -D 1080 user@remote-server

用于在本地建立一个 SOCKS5 代理服务器通过ssh隧道连接到远端服务器。可以在软件中设置socks5代理,通过该代理访问网络。

四、常用辅助参数详解

参数作用
-N不执行远程命令,不打开 shell,仅用于建立端口转发
-f在认证完成后将 SSH 放入后台运行(常与 -N 合用)
-C启用数据压缩,提升慢速网络上的传输效率
-g允许远程主机连接本地转发的端口(默认仅允许本机连接)
-p <端口>指定 SSH 服务器的端口(默认 22)
-i <私钥文件>指定用于认证的私钥
-o ServerAliveInterval=60每 60 秒发送保活包,防止连接因超时被断开
-v / -vv显示调试信息,排错时非常有用

Comments are closed.