通过 Shadowsocks 进行 SSH?

通过 Shadowsocks 进行 SSH?

如何通过 Shadowsocks 路由 SSH 流量?

我正在使用 Shadowsocks 从防火墙后面连接到服务器。我想建立传出 SSH 连接,但我担心 SSH 流量可能会被识别,从而导致我的连接被关闭。因此,我希望能够通过我已经工作的 SOCKS5 代理路由 SSH 流量。

我从哪里开始实现这个目标?我假设我需要创建一个虚拟网络适配器,它可以提供一系列端口,输出以某种方式通过 SOCKS5 代理路由?

答案1

如果你的shadowsocks配置是:

  • 本地地址:127.0.0.1
  • 本地端口:1080
  • 服务器IP 42.42.42.42

更改为您自己的配置

sudo apt install connect-proxy

编辑你的~/.ssh/config

# Outside of the firewall, with HTTPS proxy
Host 42.42.42.42
  ProxyCommand connect -H 127.0.0.1:1080 %h 22
## Inside the firewall (do not use proxy)
Host *
  ProxyCommand connect %h %p

现在你可以尝试:

ssh username@ipserver

检查ip连接

netstat -tn 2>/dev/null

通常你会看到类似的东西

Connexions Internet actives (sans serveurs)

Proto Recv-Q Send-Q Adresse locale          Adresse distante        Etat       
tcp        0     68 69.69.69.69:22        42.42.42.42:42800      ESTABLISHED

更多技能

将此脚本添加到您的~/.bash_profile.

袜子5

export http_proxy=socks5://127.0.0.1:1080
export https_proxy=socks5://127.0.0.1:1080

或者

HTTP(S)

export http_proxy=http://127.0.0.1:1080
export https_proxy=https://127.0.0.1:1080

如果您想为您的网络浏览器设置网络连接

鬼道(侏儒)

  1. 环境
  2. 网络
  3. 代理服务器
  4. 输入您的配置
  5. 不要忘记禁用本地主机的代理

在此输入图像描述

或者只是将所有代理重定向添加到您的环境中

环境| grep -i 代理

必须返回

HTTP_PROXY=http://127.0.0.1:1080/
FTP_PROXY=http://127.0.0.1:1080/
ALL_PROXY=socks://127.0.0.1:1080/
NO_PROXY=127.0.0.1,localhost
HTTPS_PROXY=http://127.0.0.1:1080/
https_proxy=http://127.0.0.1:1080/
http_proxy=http://127.0.0.1:1080/
no_proxy=127.0.0.1,localhost
all_proxy=socks://127.0.0.1:1080/
ftp_proxy=http://127.0.0.1:1080/

如果你只想通过shadowsocks配置curl

export socks5=socks5://127.0.0.1:1080

curl api.ipify.org

对于 Git

git config --global http.proxy 'socks5://127.0.0.1:1080'
git config --global https.proxy 'socks5://127.0.0.1:1080'

答案2

有一种更简单的方法,在 ssh 配置文件中使用 match 指令:

Match Exec "nc -z 127.0.0.1 1086"
     ProxyCommand nc -X 5 -x 127.0.0.1:1086 %h %p

该指令将在您每次 ssh 时执行(匹配所有内容)。首先,它尝试使用以下方式连接到 Shadowsocks 代理nc:-z 选项仅意味着检查没有 IO 的端口。我的 ssocks 代理在端口 1086 上运行。如果它正在运行,则设置一个 ProxyCommand,如果没有运行,则不运行,并正常连接,无需代理。

答案3

tsocks我在 Ubuntu 18.04 上工作:

sudo apt install tsocks

将其配置为/etc/tsocks.conf

# Local networks accessible without socks server
local = 192.168.0.0/255.255.0.0
# Socks server address
server = 127.0.0.1
# Server type SOCKS5
server_type = 5
# Server port
server_port = 1080

然后你可以通过:

tsocks ssh USER@SERVER

还必须在 SERVER 中配置 SSH 超时/etc/ssh/sshd_config

# 10 minutes
ClientAliveInterval 10m
# Max number of client alive messages without response
ClientAliveCountMax 3

这将在 30 分钟后自动断开客户端连接。 (man sshd_config这两个参数的含义请参见 参考资料。)

相关内容