每当我从不安全的位置(例如公共 wifi)使用互联网时,我喜欢使用 ssh 隧道 ( ssh -D port host
) 来确保我的流量不会被嗅探到。不幸的是,似乎有许多应用程序没有提供指定代理的方法(Flash 是一个主要示例)。
感觉应该有某种方法可以为来自我的计算机的所有网络流量使用隧道,但我完全不知道如何做到这一点。任何帮助将不胜感激。
我目前正在使用 TOR 进行一些测试工作,但遇到了一个小问题。Tor 的客户端仅支持通过 SOCKS5 协议接收连接,但我使用的应用程序仅支持 HTTP 代理协议。
中间可以放东西吗?因此,例如它去了。
我的程序(仅限 HTTP)> HTTP 到 SOCKS 转换器 > Tor SOCKS5 服务器
我通过 PuTTY 设置了一个 SOCKS5 代理,端口 7777 配置为动态端口。我可以通过配置 firefox/filezilla/etc 使用 SOCKS 代理localhost
和 port来使用它们7777
。但是我不知道如何使用动态端口 ssh(通过 Cygwin)到远程服务器。这可能吗?
我已经尝试ProxyCommand
通过以下方法使用。
~/.ssh/config
使用以下行创建:
ProxyCommand /usr/bin/nc -X connect -x 127.0.0.1:7777 %h %p
Run Code Online (Sandbox Code Playgroud)我得到的消息是 ssh_exchange_identification: Connection closed by remote host
ssh -D
可以在本地机器上创建一个socks端口,将流量传递到远程,然后到其他地方。
ssh -L port:host:hostport
, 在本地机器上监听端口,从远程机器的角度将流量传递给“host:hostport”。
ssh -R port:host:hostport
是 的对应物ssh -L
,它在远程机器上监听端口,并从本地机器的角度将流量传递给“host:hostport”。
但是什么是对应的ssh -D
,即如何在远程机器上打开一个socks端口,它将流量传递到本地,然后到其他地方?
可以通过 SSH 实现以下功能吗?
涉及到三台机器:
A. My local machine at home
B. The SSH gateway server at school
C. A workstation in a lab, only reachable through B
Run Code Online (Sandbox Code Playgroud)
我想设置一个 SOCKS 代理。我希望能够在家里的本地计算机上冲浪,就像我在实验室一样。这是由于某些站点只能从学校的公共 IP 访问。
所以我想在主机 C 上运行一个 SOCKS 代理。但我没有设法让它在主机 A 上工作。
我连接到网关,然后从网关连接到工作站。但是我无法让网关正确地将流量从代理传输到代理。
我怎样才能做到这一点?
是否有任何 Windows 应用程序可以连接到远程 OpenVPN 服务器,然后在本地环境中充当 SOCKS 5 服务器?
编辑:这意味着
使用 SOCKS (SSH -D) 和本地端口转发 (SSH -L) 有什么区别
我经常在我的计算机上使用 SSH 隧道,使用 SOCKS 代理。
ssh -D 1234 example.com
Run Code Online (Sandbox Code Playgroud)
但是,这仅接受本地连接。我希望我网络上的其他系统也能够在我的计算机上使用代理。
我怎样才能做到这一点?如果 SSH 本身没有选项,我想可能有一个程序可以在不同的端口上代理代理,但我不知道是否有任何通用工具可以做到这一点。
前言:我要寻找的是与上述格式相同的明确说明。也就是说,类似于运行:“……在机器 A 上运行命令 X,然后在机器 B 上运行命令 Y……”
我有一个从我的笔记本电脑(机器 A)到机器 B 的工作袜子代理:
[A]$ ssh -ND 8888 B
Run Code Online (Sandbox Code Playgroud)
我可以设置 Firefox 在 A 的本地端口上使用 SOCKS 代理8888
,并在 A 上浏览。到现在为止还挺好。
但是我在机器 B 和 C 之间也有一个袜子代理:
[B]$ ssh -ND 8157 C
Run Code Online (Sandbox Code Playgroud)
所以我可以像在 C 上一样在 B 上浏览,将 B 的 Firefox 袜子代理设置为8157
.
有没有办法链接两个代理,以便我可以在使用与 C 的连接时在本地(在 A 上)使用 Firefox?
也就是说,以某种方式将所有 Firefox 的袜子请求从 A 一直转发到 C。A 和 C 不能直接看到对方,但我到处都有完全的 root SSH 访问权限。所有机器都是Debian。
请注意,我不希望转发一个端口类似的端口80,但我希望有一个完全链SOCK代理。
我想将我的计算机用作 SOCKS 代理。你只需要做ssh -D port_number hostname
吗?我必须把我的 Linux 用户名作为hostname
?
socks ×10
ssh ×8
proxy ×7
linux ×4
ssh-tunnel ×2
tunnel ×2
cygwin ×1
http ×1
macos ×1
networking ×1
openvpn ×1
socks-proxy ×1
socks5 ×1
tor ×1
vpn ×1