Vm机器使用上代理

VM机器使用代理

需求:

在win机器上通过xshell链接ubuntu,win上机器使用clash代理可以加快访问外网速度。如果让xshell转发。能让ubuntu也能使用代理。我记得可以xshell可以添加代理或者是ssh隧道的方式。

image-20250924001424237

方案一(推荐):Clash 开启「Allow LAN」,Ubuntu 直接用 Win 代理

1) Windows(Clash)
打开 Clash,开启「Allow LAN」。
记下 Windows 局域网 IP(如 192.168.101.x)与 Clash 端口(HTTP 7890 / SOCKS5 7891 或 mixed 7890)。
2) Ubuntu(临时设置)
若使用 HTTP 代理(示例端口 7890):
Bash:
export http_proxy=http://192.168.101.x:7890
export https_proxy=http://192.168.101.x:7890
验证:
curl -I https://www.google.com
若使用 SOCKS5 代理(示例端口 7891):
export all_proxy=socks5://192.168.101.x:7891
curl --socks5 192.168.101.x:7891 https://ipinfo.io/ip
3) Ubuntu(持久化)
全局: 编辑 /etc/environment,加入需要的变量(http_proxy/https_proxy 或 all_proxy),重新登录生效。
APT: /etc/apt/apt.conf.d/95proxy(HTTP 代理示例)
Acquire::http::Proxy "http://192.168.101.x:7890/";
Acquire::https::Proxy "http://192.168.101.x:7890/";
Git(可选)
git config --global http.proxy http://192.168.101.x:7890
git config --global https.proxy http://192.168.101.x:7890
优点:不依赖 SSH 连接;Ubuntu 直接走 Win 的 Clash,稳定、简单。

方案二:用 Xshell 做 SSH 远程端口转发,把 Win 的 Clash 映射到 Ubuntu 回环

用途:不想开 Allow LAN,或只在 SSH 会话期间临时用代理。
1) Xshell 配置(远程端口转发)
右键你的会话 → 属性 → Tunneling(或 SSH 隧道)→ 勾选启用。
新建「Remote Forwarding」:
Listen Address(Remote):127.0.0.1
Listen Port(Remote):建议 1080(或 7890/7891 也行,避免冲突)
Destination Host(Local/Client):127.0.0.1
Destination Port(Local/Client):Clash 的本地端口(HTTP: 7890 或 SOCKS5: 7891)
连接该会话并保持开启。
2) Ubuntu 使用
若你映射的是 HTTP 代理(Win 127.0.0.1:7890 → Ubuntu 127.0.0.1:1080):
export http_proxy=http://127.0.0.1:1080
export https_proxy=http://127.0.0.1:1080
若你映射的是 SOCKS5(Win 127.0.0.1:7891 → Ubuntu 127.0.0.1:1080):
export all_proxy=socks5://127.0.0.1:1080
验证:
curl -I https://www.google.com(HTTP 代理)
curl --socks5 127.0.0.1:1080 https://ipinfo.io/ip(SOCKS5)
备注:Xshell 的「Remote Forwarding」语义是“在远端(Ubuntu)监听,把流量经 SSH 隧道转发到本地(Windows)的 Clash”。
可选:Xshell 为自身连接设置代理(与上面目标不同)
若 Windows 到 Ubuntu 的 SSH 也需走 Clash:会话 → 属性 → 连接 → 代理 → 新建(HTTP/SOCKS),
服务器:127.0.0.1
端口:7890(HTTP)或 7891(SOCKS)
这只影响 Xshell 自己连 Ubuntu,不会让 Ubuntu 自动获得代理。
常见验证与排错
代理是否通:curl -I https://www.google.com 或 curl https://ipinfo.io/ip
Clash 端口核对:以 Clash 面板配置为准(mixed/HTTP/SOCKS 端口可能不同)。
防火墙/安全组:若用方案一,确保 Win 的 Clash 端口对 LAN 可访问(Allow LAN + Windows 防火墙放行)。
APT 走代理:apt update 成功且无超时。
仅 SSH 隧道时:确保 Xshell 会话保持在线,否则 Ubuntu 代理端口失效。

使用方案一成功:

root@ly:~# curl -I https://www.google.com
HTTP/1.1 200 Connection established