说我有一个server
和client
。我需要创建一个连接client
到一个website
通过server
就像是代理。
是否可以使用SSH隧道执行此操作,还是必须将某些代理服务安装到server
?
说我有一个server
和client
。我需要创建一个连接client
到一个website
通过server
就像是代理。
是否可以使用SSH隧道执行此操作,还是必须将某些代理服务安装到server
?
Answers:
您可以使用ssh执行此操作
ssh -L 80:remotehost:80 user@myserver
然后,您将拥有从本地端口80到远程主机端口80的隧道。这不必与myserver相同。为了使它透明,您应该在hosts文件中添加一个条目。如果您不这样做,则虚拟主机将无法工作。如果您想要SOCKS代理连接,也可以使用
ssh -D 5000 user@myserver
这将在本地主机端口5000上创建一个SOCKS代理,该代理通过myserver路由所有请求。
ssh -L 81:remotehost:80 user@myserver
本地端口81 好像在远程端口上80一样会更有用。
Host myserver User user DynamicForward 5000
腻子也做得很好。
在SSH下,转到隧道。在底部,将8080放在端口中,并在目的地处将其保留为黑色,然后选择“动态”单选按钮。这就是您需要做的所有事情,现在使用Putty连接到服务器。
连接后,您将在本地主机上的端口8080上运行代理服务器,该代理服务器将代理服务器中的所有请求。
现在使用Web浏览器并通过设置host = localhost和port = 8080来设置代理,并确保它是您选择的SOCKS代理。我一直都这样做,因此,如果您使用Firefox,请确保安装FoxyProxy插件,因为它可以一键打开/关闭代理。
注意:请注意,默认情况下,不代理您的DNS请求。因此,您通过代理访问的网站仍将被记录(如果他们记录了这些信息)。您也可以将firefox设置为代理DNS请求,默认情况下它只是不这样做。
sshuttle的工作原理类似于VPN,但通过SSH。
透明的代理服务器,充当穷人的VPN。通过ssh转发。不需要管理员。适用于Linux和MacOS。支持DNS隧道。
要允许代理在计算机上运行并允许其他客户端连接,您需要-g选项。因此,例如,您可以在名为foo的服务器上运行此命令:
ssh -g -ND 9191 root@remotehost
然后,您可以在客户端的浏览器中设置代理,以将服务器foo和端口9191用于SOCKS代理。客户端也将他们的请求发送为foo,后者又将通过ssh将请求转发到remotehost。因此,在互联网上,看起来他们正在使用remotehost。
如果您也想使用firefox转发DNS请求,请在firefox中编辑about:config并将network.proxy.socks_remote_dns设置为true。
您可以使用SSHUTTLE,这是有关如何使用它的教程,
https://etherarp.net/sshuttle-a-vpn-for-the-lazy/
这是一个教程,介绍如何设置它作为服务使用,
https://medium.com/@mike.reider/using-sshuttle-as-a-service-bec2684a65fe