我正在尝试使用 SSH 动态端口转发来加密我的网络流量,以防我碰巧在网吧、酒店等没有实际意义的地方。
在我的笔记本电脑上,我安装了 SSH 服务器并执行:
ssh -C -D 1080 myuser@localost
然后我将浏览器配置为在 localhost:1080 上使用袜子代理
我尝试浏览一些网站以查看发送的内容,但我想我显然做错了什么,因为tcpdump
:
sudo tcpdump -A -i eth0 dst www.example.com
我以明文形式看到所有内容,甚至包括我在表单上尝试过的一些假密码。
我以为我正在建立加密隧道,无法窥探。
我究竟做错了什么?
谢谢你的时间。
答案1
您正在创建 SOCKS 代理,并使用从本地计算机到localhost
.但从 到localhost
目标服务器(example.com
),数据不再加密。图表:
[browser] ==SOCKS== [localhost:1080] ==SSH== [localhost] ==HTTP== [example.com]
(其中仅 SSH 部分(即 SSH 隧道)被加密)
您只能点对点(从客户端到 ssh 服务器)对此 SOCKS 代理进行加密,而不能进一步加密。 HTTP 服务器期望正常的 HTTP 请求而不是 SOCKS 消息。
如果您想在酒店或其他地方免受窥探,您需要在计算机以外的其他位置(例如 VPS、家里)拥有 SSH 服务器。但它并不能保护您免于窥探另一台计算机的“周围”。