使用 OpenSSH 将服务器用作远程 SOCKS 代理

使用 OpenSSH 将服务器用作远程 SOCKS 代理

我想使用我的服务器作为 SOCKS 代理从我的笔记本电脑进行浏览。
根据 OpenSSH 的手册页,您可以使用选项-D

-D port
指定本地“动态”应用程序级端口转发。其工作原理是分配一个套接字来监听本地端口,每当连接到此端口时,连接就会通过安全通道转发,然后使用应用程序协议来确定从远程计算机连接到哪里。目前支持 SOCKS4 和 SOCKS5 协议,ssh 将充当 SOCKS 服务器。只有 root 可以转发特权端口。还可以在配置文件中指定动态端口转发。

因此,在我的服务器(IP 192.168.0.5)中,我输入了以下命令:(
ssh localhost -D3333
与自身的 SSH 连接)

这应该会让它监听端口 3333。
然后我将浏览器配置为使用 SOCKS 代理 192.168.0.5:3333

然而它似乎不起作用,浏览器说无法建立连接。

我做错了什么?
可以使用 OpenSSH 完成吗?


更多信息:

输出内容netstat -aon如下:

tcp        0      0 ::1:3333                    :::*                        LISTEN      off (0.00/0/0)
tcp        0      0 :::587                      :::*                        LISTEN      off (0.00/0/0)
tcp        0      0 :::465                      :::*                        LISTEN      off (0.00/0/0)
tcp        0      0 :::21                       :::*                        LISTEN      off (0.00/0/0)
tcp        0      0 :::22                       :::*                        LISTEN      off (0.00/0/0)
tcp        0      0 :::25                       :::*                        LISTEN      off (0.00/0/0)

答案1

默认情况下,“ssh -D 3333”将仅在本地主机上监听,以避免网络上的其他人通过您的代理进行连接。

如果您的浏览器在同一台机器上,那么您应该使用 127.0.0.1:3333 作为您的代理服务器。

否则,你可以使用以下命令使其他主机可以访问 ssh 动态转发:

ssh -D 0.0.0.0:3333 localhost

相关内容