目录

easyconnect下服务器联网

easyconnect下服务器联网

情况描述

非常蛋疼的情况。在外地, mac 本机的网络是可以正常联网并且访问 google 的,但是需要通过 easyconnect 连接校园里的服务器。而服务器自身的网络又无法访问 google ,这就导致网上的方案异或是 gpt 等的方案给出的注入 ssh -D 或者 ssh -R 等方案都无法成功,因为走 easyconnect 的话,没法访问外网。(这 easyconect 是真的很流氓,装完像是代理了所有流量,而且还没办法设置什么)

解决方案

使用 tinyproxy ,这个方案需要你在 gpt 那里详细描述下细节迭代几次,才能搞到。这里直接贴 gpt 的原话吧。

# 你现在的网络情况是:
# 服务器 必须通过 EasyConnect 才能联网(即,它的所有流量都会走 EasyConnect)。
# Mac 可以直接访问 Google,但 EasyConnect 无法访问 Google。
# 服务器的流量 必须走 EasyConnect,所以它的代理流量最终还是受 EasyConnect 限制,无法访问 Google。
# 💡 可能的解决方案

# ✅ 方案 1:在 Mac 上开启 HTTP 代理,并让服务器走这个代理
# 目前你在 Mac 上开的 ssh -D 是 SOCKS5 代理,但 很多软件(包括 EasyConnect)会限制 SOCKS5 流量。
# 一个可能的解决方案是:在 Mac 上开启 HTTP 代理,让服务器用 curl --proxy http://... 直接走 Mac,而不是 EasyConnect。

# 📌 在 Mac 上开启 HTTP 代理
# Mac 终端安装 tinyproxy(轻量级 HTTP 代理):
brew install tinyproxy
# 修改 tinyproxy 配置文件:
nano /opt/homebrew/etc/tinyproxy.conf
找到:
# Allow 127.0.0.1
修改为:
Allow 0.0.0.0/0
#(这样允许所有 IP 访问 tinyproxy,否则服务器访问会被拒)
# 启动 tinyproxy:
sudo brew services start tinyproxy
# 确保 tinyproxy 在监听:
netstat -an | grep 8888
# 如果看到 0.0.0.0:8888 LISTEN,说明 HTTP 代理已启动。
# 📌 在服务器上使用 HTTP 代理
# 在服务器上,用 curl 访问 Google:

# 这里填你的easyconnect的虚拟地址,可以点开软件看到
curl --proxy http://xx.x.xx.xxx:8888 https://www.google.com -v
# 之后直接export http_proxy=xx.x.xx.xxx:8888
#    	export http_proxy=xx.x.xx.xxx:8888 就行

# 如果成功,说明 tinyproxy 已经绕过 EasyConnect 访问 Google!
# 如果失败,尝试 telnet 看服务器是否能连通:
telnet xx.x.xx.xxx 8888
# 如果 Connection refused,说明 tinyproxy 没有正常工作,检查防火墙和配置。
# 如果 Connected,但 curl 失败,可能 EasyConnect 还在拦截 HTTP 代理流量。

注意本地连接服务器时走 easyconnect 相当于就走过一次代理,所以要用 easyconnect 分配的虚拟地址去做操作,本质上原理应该是 mac 通过 tinyproxy 自己起了一个代理,级别更高以绕过,监听其他访问网站的操作,让 easyconnect 的流量也走到 mac 本机的网络上。但奇怪的是我访问某些 mac 本机才能连上的网址,仍然是处于被屏蔽状态,还是理解的不对?网络还得学。

https://i-blog.csdnimg.cn/direct/76552e20d19e460f8e2e920be51efae6.png