我有一台虚拟机,可通过 192.168.56.101:22 访问。现在我想创建一个隧道:
127.0.0.1:12345->www.google.com:80
其中 127.0.0.1 是虚拟机环回接口的 IP 地址。主机操作系统有到 www.google.com 的路由,并且未启用包转发。
是否可以仅使用 SSH 来执行此操作? 如果可以,怎么做?
答案1
从主机尝试。ssh -R 127.0.0.1:12345:www.google.com:80 [email protected]
这会通过隧道将虚拟机上的 127.0.0.1:12345 转发到 www.google.com:80。
答案2
ssh -L 127.0.0.1:12345:www.google.com:80 [email protected]
这将创建从某个工作站通过 192.168.56.101 到 www.google.com 的隧道
我不确定你的问题是否真的在问这个 - 但这是最有意义的答案。由于虚拟机已经可以访问 www.google.com,我假设你有第三台机器(例如工作站)想要通过虚拟机访问 google。
但这会创建一个隧道,使得工作站监听端口 12345,并且发送到该端口的任何流量都会发送到您的虚拟机,然后传出到 Google。
答案3
ssh [email protected] -L localhost:12345:google.com:80
然后,连接到 localhost:12345 以访问 google.com。此外,您还可以使用
ssh [email protected] -D localhost:12345
让 ssh 在您使用应用程序连接到 localhost:12345 时决定连接到哪里(例如 google.com:80)。
我相信这两种方法都可以。