ssh反向代理 为服务器提供加速

狂客原创 转载请注明 侵权必究

为了让服务器访问外网,你需要确保你的本地电脑有一个可以代理网络请求的服务。例如,你可以使用 ssh -D 在本地电脑上先启动一个 SOCKS 代理,然后再用 -R 将这个代理端口转发给服务器。

步骤一:在本地电脑上启动 SOCKS 代理

Bash

# 在本地终端执行,这会创建一个监听在 9090 端口的 SOCKS 代理
ssh -D 9090 localhost -p 22

这个命令会启动一个 SOCKS 代理,将你本地的流量转发到本地,看似没有意义,但它的作用是提供一个 SOCKS 代理服务。

步骤二:将本地代理端口转发给服务器

保持上面的命令运行,另开一个本地终端,执行远程端口转发:

Bash

# 将本地的 9090 SOCKS 代理端口转发到服务器的 7070 端口
ssh -R 7070:localhost:9090 user@server_ip

步骤三:在远程服务器上配置代理

现在,远程服务器就可以通过 localhost:7070 这个 SOCKS 代理来访问外网了。你可以使用 curl 或其他工具来测试:

Bash

# 在远程服务器终端执行
curl --socks5-hostname localhost:7070 http://icanhazip.com

如果你看到返回的 IP 地址是你本地电脑的公网 IP,那么恭喜你,转发成功了。


2. 命令行设置

你可以通过设置环境变量来让一些命令行工具(如 curl, wget 等)走代理。

Bash

# SOCKS5 代理
export ALL_PROXY="socks5://localhost:7070"

# 如果你只想让 HTTP 请求走代理,可以设置   一般ALL_PROXY这个就够用了
export http_proxy="http://localhost:7070"
export https_proxy="http://localhost:7070"

提示: 这种设置通常只在当前终端会话中有效。为了让它永久生效,你可以将这些命令添加到你的 shell 配置文件中,例如 ~/.bashrc~/.zshrc

posted @ 2025-08-19 18:24  狂客  阅读(42)  评论(0)    收藏  举报