使用Gemini CLI必须要服务器有外网环境,这也是我一直想搞的,开整!Github上找了个开源项目:https://github.com/nelvko/clash-for-linux-install

下载项目

1
2
git clone --branch master --depth 1 https://gh-proxy.com/https://github.com/nelvko/clash-for-linux-install.git
cd clash-for-linux-install

修改默认配置文件

  • 复制Mac中的配置文件到resources/config.yaml文件

  • Mac的文件地址为/Users/tianlejin/.config/clash/阿里加速器.yaml

1
vi resources/config.yaml

安装

1
sudo bash install.sh

要求输入订阅,订阅获得方法如下:

点击复制订阅地址

订阅地址形如:http://14.33.74.21:2668/api/v1/client/subscribe?token=e82240589dc3&burn=7ptTFvo


使用

打开或关闭当前终端的代理

1
2
clash on
clash off

查看密钥

1
clash ui

打开web ui

1
clash ui

在浏览器中输入http://172.22.26.185:9090/ui ,即可打开控制台

其他用法

1
2
3
4
5
6
7
8
9
10
11
12
13
Usage:
clash COMMAND [OPTION]

Commands:
on 开启代理
off 关闭代理
proxy [on|off] 系统代理
ui 面板地址
status 内核状况
tun [on|off] Tun 模式
mixin [-e|-r] Mixin 配置
secret [SECRET] Web 密钥
update [auto|log] 更新订阅

检查连接状态

最后,可以使用以下脚本检查是否使用了代理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#!/bin/bash

# 代理检测脚本
echo "========================================="
echo " 代理使用情况检测"
echo "========================================="

# 检查环境变量
echo -e "\n🔍 当前代理环境变量:"
if [[ -n "$http_proxy" || -n "$https_proxy" || -n "$all_proxy" ]]; then
echo "✅ 代理已设置:"
[[ -n "$http_proxy" ]] && echo " HTTP: $http_proxy"
[[ -n "$https_proxy" ]] && echo " HTTPS: $https_proxy"
[[ -n "$all_proxy" ]] && echo " ALL: $all_proxy"
else
echo "❌ 未设置代理环境变量"
fi

# 函数:测试网站连接
test_website() {
local site=$1
local name=$2

echo -e "\n🌐 测试 $name ($site):"

# 检查连接时间和IP信息
result=$(curl -w "连接时间: %{time_connect}s | 远程IP: %{remote_ip} | 本地端口: %{local_port}" \
-o /dev/null -s --max-time 10 "$site" 2>/dev/null)

if [[ $? -eq 0 ]]; then
echo "✅ 连接成功 - $result"

# 检查是否通过代理连接
if curl -v "$site" 2>&1 | grep -q "Connection established"; then
echo "🔄 检测到代理连接 (通过CONNECT隧道)"
else
# 检查本地端口范围判断是否走代理
local_port=$(echo "$result" | grep -o 'local_port: [0-9]*' | cut -d' ' -f2)
if [[ $local_port -gt 50000 ]]; then
echo "🔄 可能通过代理连接 (高端口号: $local_port)"
else
echo "➡️ 可能是直连 (低端口号: $local_port)"
fi
fi
else
echo "❌ 连接失败或超时"
fi
}

# 测试不同网站
test_website "https://www.google.com" "Google"
test_website "https://www.baidu.com" "百度"
test_website "https://www.youtube.com" "YouTube"

# 检查代理进程
echo -e "\n🔧 代理进程检查:"
if pgrep -f clash > /dev/null; then
echo "✅ Clash进程运行中"
echo " 进程ID: $(pgrep -f clash | tr '\n' ' ')"

# 检查监听端口
echo " 监听端口:"
netstat -tlnp 2>/dev/null | grep -E ":7890|:7891|:9090" | while read line; do
echo " 📡 $line"
done
else
echo "❌ 未检测到Clash进程"
fi

# IP地理位置检测
echo -e "\n🌍 当前IP信息:"
ip_info=$(curl -s --max-time 5 https://ipinfo.io 2>/dev/null)
if [[ $? -eq 0 ]]; then
echo "$ip_info" | jq -r '"IP: " + .ip + " | 国家: " + .country + " | 城市: " + .city + " | 运营商: " + .org' 2>/dev/null || echo "$ip_info"
else
echo "❌ 无法获取IP信息"
fi

echo -e "\n========================================="
echo "检测完成!"
echo "========================================="

参考