我想使用我的服务器作为 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