假设我有一个server
和client
。我需要创建从client
到的连接website
,server
就像代理一样。
是否可以使用 SSH 隧道来执行此操作,或者我必须安装一些代理服务server
?
答案1
您可以使用 ssh 执行此操作
ssh -L 80:remotehost:80 user@myserver
然后,您将拥有从本地端口 80 到远程主机端口 80 的隧道。这不必与 myserver 相同。为了使其透明,您应该在 hosts 文件中添加一个条目。如果不这样做,vhosts 将无法工作。如果您想要 SOCKS 代理连接,您也可以使用
ssh -D 5000 user@myserver
这将在本地主机端口 5000 上创建一个 SOCKS 代理,并通过 myserver 路由所有请求。
答案2
对的,这是可能的。
运行ssh -D port user@host
并设置您的客户端以将您的盒子用作 SOCKS 代理。
如果您特别需要 HTTP 代理,那么您可以使用 Proxychains 并通过以前的 SOCKS 进行路由。
答案3
sshuttle 的工作方式类似于 VPN,但是通过 SSH 实现。
透明代理服务器,可用作穷人的 VPN。通过 ssh 转发。无需管理员。适用于 Linux 和 MacOS。支持 DNS 隧道。
答案4
要允许代理在计算机上运行,并允许其他客户端连接到您,您需要使用 -g 选项。例如,您可以在名为 foo 的服务器上运行此命令:
ssh -g -ND 9191 root@remotehost
然后,您可以在客户端的浏览器中设置代理,以使用服务器 foo 和端口 9191 作为 SOCKS 代理。客户端将向 foo 发送它们的请求,而 foo 又将通过 ssh 将请求转发到远程主机。因此在互联网上,它们看起来就像在使用远程主机。
如果您也想使用 Firefox 转发 DNS 请求,请编辑 Firefox 中的 about:config 并将 network.proxy.socks_remote_dns 设置为 true。