用Shadowsocks在终端里搞定科学上网那些事儿,步骤其实没那么复杂
- 问答
- 2025-12-24 07:16:37
- 4
整理自网络技术社区分享,具体来源包括V2EX、某技术博客及GitHub上的开源项目文档)
先说说为啥要在终端里配Shadowsocks,有时候你需要用命令行下载国外资源,比如跑个Python的pip install,或者用wget拉个Docker镜像,明明浏览器能正常访问,终端却卡着不动,这是因为终端不会自动走你的图形界面代理,得单独配置。
第一步:准备好你的节点信息 你得先有个Shadowsocks服务端,可以是自己租的VPS搭的,也可以是买的现成服务,拿到这几个关键信息:服务器IP地址、端口、加密方式(比如aes-256-gfb)、密码,别急着往下操作,先把这些记在记事本里。
第二步:安装Shadowsocks客户端 别被“客户端”吓到,在终端里就是个命令行工具,打开你的Mac终端或Linux shell,用包管理器安装,比如Mac用Homebrew:
brew install shadowsocks-libev
如果是Ubuntu/Debian:
sudo apt-get install shadowsocks-libev
Windows用户可以用WSL子系统操作,或者直接下载exe版本(这里主要讲跨平台方案)。
第三步:写配置文件 新建个叫ss.json的文件,扔进home目录就行,内容类似这样:
{
"server":"你的服务器IP",
"server_port":8080,
"local_port":1080,
"password":"你的密码",
"method":"aes-256-gfb"
}
注意local_port是本地代理端口,后面会用到,怕手写出错的话,有些服务商直接提供配置文件下载,拖进来改个名就能用。

第四步:启动代理 终端里输入:
ss-local -c ~/ss.json
看到"INFO: listening at 127.0.0.1:1080"就是成功了,这时别关终端窗口!最小化就行,一关代理就断了。
第五步:让终端流量走代理 关键来了!现在代理只在本地1080端口监听,得告诉终端怎么用它,分两种方法:
-
临时方案(关掉终端就失效): 在需要代理的命令前加上环境变量,
http_proxy=socks5://127.0.0.1:1080 https_proxy=socks5://127.0.0.1:1080 curl https://google.com或者先开个代理子shell:

export http_proxy=socks5://127.0.0.1:1080 export https_proxy=socks5://127.0.0.1:1080之后再执行的命令都会走代理。
-
长期方案: 在~/.bashrc或~/.zshrc文件末尾加上:
alias setproxy='export http_proxy=socks5://127.0.0.1:1080 https_proxy=socks5://127.0.0.1:1080' alias unsetproxy='unset http_proxy https_proxy'这样以后打开终端,先输入setproxy开启代理,用完unsetproxy关闭。
测试一下:
配完执行curl -I https://www.google.com,如果返回HTTP/2 200就成功了,要是报错,检查这几点:ss-local进程是否在运行、密码端口是否填错、服务器防火墙是否放行端口。
进阶技巧:
- 用nohup或tmux让代理后台运行,避免终端窗口占用
- 想全局代理可以搭配Proxychains,命令前加proxychains4就行
- 服务器不稳定时,试试用kcptun加速(GitHub有详细教程)
最后提醒:终端代理只影响当前环境,不会干扰浏览器正常上网,如果遇到pip下载慢,除了开代理,也可以换国内源解决,其实日常开发中,更推荐用Proxifier这类工具自动分流,但纯终端方案胜在简单可控,适合服务器运维或临时需求。
本文由雪和泽于2025-12-24发表在笙亿网络策划,如有疑问,请联系我们。
本文链接:http://waw.haoid.cn/wenda/67408.html
