我想通过在 VPS 上运行的代理强制将 HTTP(S) 流量从我的家庭网络发送到某些网站。
我安装tinyproxy在 VPS 上,在端口 上运行8080。在我的电脑上我正在运行
sudo ssh -i /home/user/.ssh/id_rsa -nNT -L 80:localhost:8080 -L 443:localhost:8080 remoteuser@vps
Run Code Online (Sandbox Code Playgroud)
本地访问代理。当我在 Firefox 设置中配置localhost:80为代理时,一切正常(HTTP 和 HTTPS)。
但由于我不希望所有流量都通过该代理,因此我将其添加到我的电脑中/etc/hosts:
127.0.0.1 server.example
Run Code Online (Sandbox Code Playgroud)
server.example是为 HTTP 和 HTTPS 配置的 Web 服务器的名称。
访问http://server.example正常,但https://server.example在 Firefox 中打开失败并出现错误
SSL_ERROR_RX_RECORD_TOO_LONG
Run Code Online (Sandbox Code Playgroud)
curl通过 HTTPS 访问页面也失败:
curl: (35) error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
Run Code Online (Sandbox Code Playgroud)
据我了解,此问题是由 tinyproxy 使用纯 HTTP 响应 HTTPS 请求引起的。
首先,理论上可以实现我想要的吗?那些所谓的“智能 DNS”服务似乎正是这样做的。
这个问题是由我的设置引起的还是tinyproxy无法做到这一点?是否有不同的代理服务器能够做到这一点?
编辑:目前我正在我的 PC 上运行 SSH 隧道,并且 DNS 修改也在本地,但我想稍后将其部署在我的路由器上,以便来自我网络的任何设备的流量都通过此代理。
EDIT2:正如 @SteffenUllrich 在评论中所写,当通过 …