我在实验室的一台服务器上运行一个 Web 应用程序,并且已在这些机器上设置了 X11 转发。实验室的其他成员可以通过 SSH 建立隧道,并在家的本地浏览器上浏览该 Web 应用程序。
不行。上次我和他们核实过,我几乎不需要做任何事情。
当我打字时192.168.1.113/webapp
我什么也没得到。
有小费吗?
谢谢。
我最终使用了第二种方法:)
ssh -L 8080:<server-ip-address>:80 <username>@<remote-addr> -N
答案1
您可以通过两种方式使用 SSH 执行此操作。
使用 SOCKS 代理建立隧道
使用以下命令登录远程机器:
ssh -D 8080 remote-host
现在转到浏览器的代理设置,并将其配置为使用带有主机名127.0.0.1
和端口8080
(或您传递给选项的任何端口-D
)的 SOCKS 代理。现在,您在 Web 浏览器中加载的所有页面都将通过 SSH 连接进行隧道传输。您现在应该能够以与从远程主机相同的方式访问私人网页。
完成后,将浏览器的代理设置恢复正常。
这种方法的一个缺点是,Web 浏览器中的所有其他流量也将通过 SSH 连接。优点是,您可以使用真实主机名访问远程服务器,并且可以轻松访问多个私人网站。
隧道单个端口。
替代方法是使用 SSH 转发单个端口:
ssh -L 8080:server-hostname:80 remote-host
现在,如果您将 Web 浏览器指向,您应该会看到来自远程主机http://localhost:8080/
的的内容。http://server-hostname/
这种方法的优点是它不会影响浏览器的其余流量。缺点是,如果远程站点使用绝对 URL 引用,某些链接可能无法正常工作。如果站点主要使用相对 URL 引用,那么这种方法应该足够了。
对于这两种解决方案,端口没有什么特别的8080
。您可以使用任何您想要的空闲本地端口号,只要您记得在调用ssh
和 Web 浏览器中使用相同的端口号即可。