gpt4 book ai didi

ssh - 通过 SSH 的公共(public) socks 代理

转载 作者:行者123 更新时间:2023-12-02 13:46:43 27 4
gpt4 key购买 nike

所以我可以用 sudo ssh -D 8080 user@server 创建一个本地 socks 代理。
我只能从我的机器上访问它:

nmap -p 8080 127.0.0.1
8080/tcp open http-proxy

但是,无法从我的本地网络访问此代理:
nmap -p 8080 192.168.1.10
8080/tcp closed http-proxy

我试过端口转发,但似乎并没有解决问题(除非我做错了)
我在Mac上,顺便说一句。

解决方案?

最佳答案

如果要从网络访问 SOCKS 代理,则需要 SSH 将其 SOCKS 代理绑定(bind)到可访问的外部地址,而不是 localhost,它是“本地”的,不允许任何其他外部连接。请改用此命令:

ssh -ND "*:8080" user@server

请注意,我已删除 sudo根据您的命令,我添加了 -N标记到命令。 sudo当然不需要;仅当您打开低于 1024 的端口时才需要它(除非您有充分的理由,否则您不应该这样做)。 -N标志使 SSH session 非交互式,这样您就不会启动 shell session ,只是一个代理。 -D ":8080"将 SOCKS 代理绑定(bind)到系统上的所有地址,包括网络地址。

至于防火墙设置,如果您有最新版本的 Mac OS X (10.6+),您可能还希望将防火墙打开到您的 8080 端口。您可以使用此命令执行此操作:
sudo ipfw add 9999 allow tcp from any to any dst-port 8080
9999只是一个防火墙 ID 号,您可以使用它来识别防火墙规则。

如果您决定停止打开代理,此命令将关闭它:
sudo ipfw delete 9999

完成所有这些配置后,如果您希望您的代理在 Internet 上可用,则需要按照说明设置端口转发。您可以使用 this guide在路由器上配置端口转发。

然而 ...通过 Internet 公开开放代理可能会引起麻烦。您的 ISP 可能会对此不屑一顾,尤其是当某个不太好的人通过 Internet 访问您的 SOCKS 代理时。更好的解决方案?安装 OpenSSH 服务器,保护它,然后从 Internet 登录并在本地设置 SOCKS 代理。 This guide可以提供帮助。

快乐代理!

关于ssh - 通过 SSH 的公共(public) socks 代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14732978/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com