SSH 端口转发

SSH 端口转发

我有一个远程服务器,一个 SSH 连接,远程服务器的 IP 为 0.0.0.1(例如)。在服务器上,我在 80 端口上有一个应用程序。当我想连接到远程服务器时,我使用: 之后我可以从本地主机打开远程应用程序:ssh -L 8888:127.0.0.1:80 -i path/to/key [email protected]127.0.0.1:8888

但在受保护的网络中有一个站点www.example.com,我只能从服务器访问它。命令curl www.example.com没问题,但如何从我的远程机器打开该站点?我尝试登录但如何打开它?ssh -L 8888:www.example.com:80 -i path/to/key [email protected]www.example.com:8888?127.0.0.1:8888?都不起作用。

答案1

也许www.example.com正在等待主机标头。我试过了,它对我有用。

In one terminal
▶ ssh -L 2345:google.com:443 root@k1

In another terminal
▶ curl -kIL --header "Host: google.com" https://localhost:2345/
HTTP/2 301 
location: https://www.google.com/
content-type: text/html; charset=UTF-8
date: Thu, 05 May 2022 12:31:08 GMT
expires: Sat, 04 Jun 2022 12:31:08 GMT
cache-control: public, max-age=2592000
server: gws
content-length: 220

答案2

假设www.example.comIP 地址为 1.1.1.1。此命令解决了我的问题:

sudo ssh -L 80:1.1.1.1:80 -L 443:1.1.1.1:443 -i path/to/key [email protected]

/etc/hosts必须添加127.0.0.1 example.com

然后就可以连接到www.example.com直接从浏览器。

相关内容