在终端中使用代理服务器连接 SSH !

学校的网络似乎屏蔽了一些端口,导致连不到家里的服务器,于是给 ClashX 里添加了一个跑在 443 端口的 Trojan 以便作为跳板连回家里。

需求如下:local:8080 - proxy:443 - server:22

最开始想直接用 export all_proxy=socks5://127.0.0.1:8080 的方法解决,但发现 SSH 并不走 all proxy,于是请教了大姐姐后得到了以下的方法

# 命令行执行,使用 netcat 设置 HTTP Proxy

ssh USER@FINAL_DEST -i ~/.ssh/ecdsa -o "ProxyCommand=nc -X connect -x 127.0.0.1:8080 %h %p"

# 也可以添加进 ~/.ssh/config 里面

Host labserver
    User USERNAME
    HostName HOSTNAME
    Port 22
    IdentityFile ~/.ssh/ecdsa
    ProxyCommand	nc -X connect -x 127.0.0.1:8080 %h %p

还有一种方法是使用 proxychains-ng (是老熟人呢),方法如下

可恶,SSH 并不吃 proxychains,所以只作为笔记放在这里好了(

# 安装 proxychains-ng

brew install proxychains-ng

# 将 socks5 Proxy 添加进 /etc/proxychains.conf 中,如果没有这个 config 文件的话可以从
# https://github.com/rofl0r/proxychains-ng/blob/master/src/proxychains.conf 里面拿

socks5  127.0.0.1 8080

# 使用 proxychains 连接 SSH

proxychains4 ssh USERNAME@HOSTNAME -p 22 -i ~/.ssh/ecdsa

参考资料:

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注