问题很简单,但答案不是:
ssh -D 8080 user@host
要么
ssh -gCNf -D 8080 user@host
要么
wathever with -D #
在不支持SOCKS的嵌入式设备中,我需要一种可以与http_proxy变量一起使用的代理。
我该怎么办?
-D
指定打开隧道的端口,而不是要连接的端口。(出于兼容性原因,即使将连接端口指定为-p port
,也不指定:port
。)
问题很简单,但答案不是:
ssh -D 8080 user@host
要么
ssh -gCNf -D 8080 user@host
要么
wathever with -D #
在不支持SOCKS的嵌入式设备中,我需要一种可以与http_proxy变量一起使用的代理。
我该怎么办?
-D
指定打开隧道的端口,而不是要连接的端口。(出于兼容性原因,即使将连接端口指定为-p port
,也不指定:port
。)
Answers:
方法1:使用支持上游使用SOCKS的HTTP代理,例如Polipo或Privoxy。
首先-D
像往常一样在SSH上建立隧道,然后将HTTP代理配置为使用SSH隧道-示例Polipo配置:
proxyAddress = "::1"
proxyPort = 8118
socksParentProxy = "localhost:8080"
socksProxyType = socks5
最后,使用将应用程序指向Polipo http_proxy=localhost:8118
。
方法2:在torsocks
包装程序(或更旧的tsocks
)中运行程序,该程序透明地代理所有连接。它旨在与Tor一起使用,但可与任何SOCKS服务器配合使用,包括ssh -D
。
方法3:在服务器上设置HTTP代理,然后使用ssh -L
来访问它。
我有想要通过SSH使用HTTP代理的相同问题。由于许多应用程序仅支持HTTP代理,因此HTTP代理易于在命令行环境中使用。
虽然搜索了几页,但是我找不到直接的方法(可以与Polipo,Privoxy或tsocks链接)来执行此操作...
经过几天的工作,我通过SSH完成了一个简单的Golang版本的HTTP代理。随意玩:马洛里。
当前仅支持RSA密钥(位于$ HOME / .ssh / id_rsa)和密码授权。
host
是SSH服务器地址,如果您的管理员未更改,port
则为22
。服务器端只是我们sshd
零配置的老朋友。
mallory -engine=ssh -remote=ssh://host:port
或使用用户名 user
mallory -engine=ssh -remote=ssh://user@host:port
或使用用户名user
和密码1234
mallory -engine=ssh -remote=ssh://user:1234@host:port
连接后,HTTP代理将在localhost:1315上提供服务。
ssh -D user@host:8080
吗?