SSH端口转发(SSH Port Forwarding)是一种利用SSH协议将网络流量从本地端口转发到远程服务器的功能。这种方法常用于在不安全的网络上安全地访问服务,或者穿越防火墙。
SSH端口转发有两种主要类型:
- 本地端口转发(Local Port Forwarding):将本地计算机上的端口转发到远程服务器的指定端口。
- 远程端口转发(Remote Port Forwarding):将远程服务器上的端口转发到本地计算机的指定端口。
实现本地端口转发
假设你有一个在远程服务器(例如 example.com
)上运行的HTTP服务,监听在端口 80
,你可以通过SSH本地端口转发将其转发到你的本地计算机上,命令如下:
1 | ssh -L 0.0.0.0:8080:localhost:80 user@example.com |
这里的参数含义如下:
-L
表示本地端口转发。0.0.0.0:8080
是你本地机器上要监听的端口。localhost:80
是远程服务器上的目标地址和端口。user@example.com
是远程服务器的SSH登录信息。
执行这个命令后,你可以在本地浏览器中访问 http://localhost:8080
,这将通过SSH连接转发请求到远程服务器的HTTP服务。
通过SSH端口转发,你可以安全地访问不需要TLS证书的HTTP服务,只需在本地进行简单的设置。
注意事项
没有TLS证书:使用这种方法时,HTTP流量仍然是明文的,如果在不安全的网络上使用,可能会被窃听(MITM)。如果有必要使用HTTPS,建议在远程服务上设置TLS证书。