SUNT的随手记

闲的时候,做一些对自己有益的事

0%

SSH port forwarding

SSH端口转发(SSH Port Forwarding)是一种利用SSH协议将网络流量从本地端口转发到远程服务器的功能。这种方法常用于在不安全的网络上安全地访问服务,或者穿越防火墙。

SSH端口转发有两种主要类型:

  1. 本地端口转发(Local Port Forwarding):将本地计算机上的端口转发到远程服务器的指定端口。
  2. 远程端口转发(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证书。