![如何为 HTTPS 进行 SSH 端口转发?](https://linux22.com/image/128419/%E5%A6%82%E4%BD%95%E4%B8%BA%20HTTPS%20%E8%BF%9B%E8%A1%8C%20SSH%20%E7%AB%AF%E5%8F%A3%E8%BD%AC%E5%8F%91%EF%BC%9F.png)
我创建了以下端口转发:
ssh -vL localhost:4433:example.com:443 remote-linux-host
注意:我4433
在本地使用而不是443
避免使用sudo
.
但是,当我转到 时https://localhost:4433/
,忽略证书检查后,出现以下错误(在 Chrome 和 Firefox 上):
404 - 未找到
使用时相同curl
:
$ curl -s https://localhost:4433/ | html2text
<?xml version="1.0" encoding="iso-8859-1"?>
****** 404 - Not Found ******
如何为 HTTPS 进行端口转发?
我的目标是通过远程服务器在我的本地(端口 4433)上打开https://example.com/
(通过 HTTPS 运行良好)。
答案1
假设 example.com 是 93.184.216.34。
其中一种方法可以如下。
做:
ssh -L 4433:93.184.216.34:443 remote-linux-host
/etc/hosts
使用浏览器在本地机器中定义:
127.0.0.1 example.com
然后在浏览器中打开:https://example.com:4433/
这样,它就会发送正确的Host
标头。
创建主机条目后,请注意浏览器/解析器 DNS 缓存。
答案2
为了让主机名、SSL 证书等都满意,您可以使用该-D
选项来创建动态 SOCKS4/5 代理。
ssh -D 4444 username@ssh-hostname
然后在本地计算机上设置 firefox/chrome 以使用所述代理。