我通过运行以下命令连接到远程 ssh 服务器:
ssh -D 12345 bob@myserver.com
Run Code Online (Sandbox Code Playgroud)
这将创建一个袜子代理,我可以将其与 Firefox 一起使用以绕过我所在国家/地区的审查制度。但是,我无法在命令行中利用它。
假设我的国家/地区阻止访问 youtube。如何使用 ssh 连接运行命令,例如:
youtube-dl "youtube.com/watch?v=3XjwiV-6_CA"
Run Code Online (Sandbox Code Playgroud)
不被政府封杀?如何为所有终端命令设置袜子代理?
我知道有两个 SOCKS 代理支持任何传出 TCP 连接的透明代理:Tor和redsocks。与 HTTP 代理不同,这些 SOCKS 代理可以透明地代理任何传出 TCP 连接,包括加密协议和没有元数据或标头的协议。
这两个代理都需要使用 NAT 将任何传出 TCP 流量重定向到代理的本地端口。例如,如果我TransPort 9040在本地机器上运行 Tor ,我需要添加这样的 iptables 规则:
iptables -t nat -A OUTPUT -p tcp -j REDIRECT --to-port 9040
Run Code Online (Sandbox Code Playgroud)
据我所知,这将与替换原来的目的地IP和端口127.0.0.1和9040,所以考虑到这是一个加密的数据流(如SSH)或一个无头(如域名注册),请问代理知道原来的目的IP和端口?
为了避免每次将详细信息添加到~/.ssh/config:
$ awk '/Host socks-proxy/' RS= ~/.ssh/config
Host socks-proxy
Hostname pcit
BatchMode yes
RequestTTY no
Compression yes
DynamicForward localhost:9118
Run Code Online (Sandbox Code Playgroud)
然后我创建了一个systemd-user服务单元定义文件:
$ cat ~/.config/systemd/user/SocksProxy.service
[Unit]
Description=SocksProxy Over Bridge Host
[Service]
ExecStart=/usr/bin/ssh -Nk socks-proxy
[Install]
WantedBy=default.target
Run Code Online (Sandbox Code Playgroud)
我让守护进程重新加载新的服务定义,启用新服务,启动它,检查它的状态,并验证它正在侦听:
$ systemctl --user daemon-reload
$ systemctl --user list-unit-files | grep SocksP
SocksProxy.service disabled
$ systemctl --user enable SocksProxy.service
Created symlink from ~/.config/systemd/user/default.target.wants/SocksProxy.service to ~/.config/systemd/user/SocksProxy.service.
$ systemctl --user start SocksProxy.service
$ systemctl --user status SocksProxy.service
? …Run Code Online (Sandbox Code Playgroud) 目前我创建了一个 ssh 隧道:ssh user@server -D 1234使用 SOCKS 代理。如何配置服务器以便我可以直接连接到socks 服务器?
我想将 firefox socks 主机设置为服务器 ip 和端口,而不是 127.0.0.1 和使用 -D 参数指定的端口。
我有一个来自该站点的 SOCKS 代理服务器列表。
我读过关于创建动态隧道的文章,ssh -D老实说我已经尝试过了。不幸的是,由于某种原因,我无法连接到列表中的任何代理服务器。
我OpenSSH_5.3p1 Debian-3ubuntu7, OpenSSL 0.9.8k在 BackTrack 上使用。如果有人愿意提供帮助或指向对我有用的分步指南,我将不胜感激。
我想要实现的是通过 Machine 上的Assh 隧道从 Machine 连接B到 Machine C。假设 MachineC上的sshd正在侦听端口 21,而 MachineB代理正在侦听端口 1080。
补充问题:
我还想创建一个到socks 代理服务器的隧道,它允许我在firefox 中设置localhost:8080 作为代理,并允许我B使用机器BIP 地址从机器浏览网络。
有没有办法重定向所有流量,UDP 和 TCP,通过 SOCKS 代理(Tor)进出 eth1 和 eth2,然后通过 eth0 传递它?
eth0: Internet in - 连接到主路由器,然后是电缆调制解调器
eth1:设置为调制解调器的 USB 以太网端口(我认为这就是我要找的词,对吧?)
eth2:作为 WiFi 热点的 USB WiFi 天线设置
我可以使用 iptables 之类的东西直接通过 Tor 路由,还是需要像 Privoxy 这样的适配器?
如何获得 rtorrent 以使用 socks5 代理?我试图让socks5 与rtorrent 一起工作,但它似乎没有任何影响。
在端口 9800 上设置 socks5 代理:
ssh -ND 9800 user@otherhost
Run Code Online (Sandbox Code Playgroud)
在 .rtorrent.rc 中
http_proxy=127.0.0.7:9800
proxy_address=127.0.0.7:9800
Run Code Online (Sandbox Code Playgroud)
它无法从跟踪器下载任何数据。
Tracker: [Server returned nothing (no headers, no data)]
Run Code Online (Sandbox Code Playgroud)
当我查看http://www.checkmytorrentip.com/时,我的 IP 似乎没有使用来自“otherhost”的 IP
我也试过使用 tsocks rtorrent
server = 127.0.0.1
eserver_type = 5
server_port = 9800
Run Code Online (Sandbox Code Playgroud)
这显示我的 IP 来自“otherhost”,但几秒钟后 rtorrent 冻结。
我正在使用 rTorrent 0.9.2/0.13.2
我有 2 个服务器,A 和 B。我想创建一个从我的系统到服务器 B 的隧道,但我有一些限制来做到这一点。所以我必须首先通过隧道连接到服务器 A,然后从服务器 A 连接到服务器 B。我的目标是拥有一个 SOCKS 代理来浏览网络。
我怎样才能做到这一点?
我几乎为这个问题浪费了 1 天的时间。
我有 2 台电脑;1. Windows 作为客户端,10.20.30.20 2. Debian(最新)作为服务器,10.20.30.10
我安装 Dante(SOCKS 代理)并配置/重新启动它。我可以从“1”使用这个 SOCKS 代理(10.20.30.10/1080TCP)。(火狐浏览器,无授权)
所以我将此代理添加到 uTorrent 的连接设置中。代理服务器:类型 = SOCKS5,代理 = 10.20.30.10,端口 = 1080,无身份验证
uTorrent 开始使用我的 SOCKS 代理,但无法连接到 DHT/UDP。uTorrent 建立这些连接(示例);
*65432 = uTorrent's Listening Port
TCP 10.20.30.20:(random)->10.20.30.10:1080 {Yeah, this is what I'm expected!}
UDP 10.20.30.20:65432->10.20.30.10:(random) {Huh?}
Run Code Online (Sandbox Code Playgroud)
由于 uTorrent 生成 UDP 数据包,而 Dante 未打开 UDP 端口,因此 UDP 数据包被服务器忽略(丢弃)。Dante 仅打开 1 个端口(TCP 1080),我不明白为什么 uTorrent 在中继 UDP 时不使用 TCP 协议。
我的问题是: 1. 当询问时,如何强制 Dante 动态打开 UDP 端口?2. 如果“SOCKS5 支持UDP”为真,为什么uTorrent 无法将UDP 发送到TCP 端口?
但丁设置 …
我在本地需要类似 VPN 的行为,而不使用 VPN。
我已经为可以从 WAN 访问的给定服务器创建了一个 SOCKS 代理,我希望我的所有流量都通过该代理转发,以便我可以访问该网络内的主机。
我的 SOCKS 代理如下所示:
ssh -t -D 8088 user@proxy-host 'watch -n 1 date'
Run Code Online (Sandbox Code Playgroud)
我已经使用系统设置将我的系统设置为代理:
我已经验证我的环境变量设置正确:
naftuli@macbook-nkay:~$ env | grep socks_proxy
socks_proxy=socks://127.0.0.1:8088/
Run Code Online (Sandbox Code Playgroud)
但是,当我通过 SSH 连接到给定的服务器时,我无法访问它:
$ ssh internal-host
ssh: Could not resolve hostname internal-host: Name or service not known
Run Code Online (Sandbox Code Playgroud)
我认为问题在于 DNS 没有通过 SOCKS 隧道转发。有没有办法设置它?我能够将 Firefox 配置为手动使用远程 DNS,而且效果很好。这个有环境变量吗?