mac命令行终端下使用DL
文章目录
- 背景
- 方式一(终端支持socks5DL)
- 方式二(终端不支持socks5DL)
- privoxy 安装
- privoxy 配置
- 启动 privoxy
- 使用 privoxy
- 验证
- Q&A
- 参考资料
背景
我们一般使用 SS 做DL,虽然浏览器可以,但是终端不行。
因为在终端下不支持socks5DL,只支持httpDL,wget、curl、git、brew等命令行工具都会变得很慢。
苹果在新系统中加入了SIP安全机制
会阻止第三方程序向系统目录内(/System,/bin,/sbin,/usr(除了/usr/local))进行写操作,sudo也不行。
办法是先把SIP关了,等装好软件配置好后再打开SIP。或者改用其他软件。
因为懒得去把SIP关了开开了关了,找了另外一个软件privoxy。
它刚好就是安装在/usr/local内,不需要关闭SIP也可以正常使用。
方式一(终端支持socks5DL)
export http_proxy="socks5://127.0.0.1:1080"
export https_proxy="socks5://127.0.0.1:1080"
# or
export ALL_PROXY="socks5://127.0.0.1:1080"
这样只是在当前命令行生效,想永久生效将上面的文件写入到 .bashrc或者.zshrc
还可以在 ~/.bash_profile 加入开关函数,使用起来更方便。
function proxy_off(){unset http_proxyunset https_proxyecho -e "已关闭DL"
}function proxy_on() {export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"export http_proxy="socks5://127.0.0.1:1086"export https_proxy=$http_proxyecho -e "已开启DL"
}function proxy_status() {echo $https_proxycurl cip.cc
}
方式二(终端不支持socks5DL)
privoxy 安装
brew install privoxy
privoxy 配置
vim /usr/local/etc/privoxy/config
底部加入
listen-address 0.0.0.0:8118
forward-socks5 / localhost:1086 .
第一行设置 privoxy 监听任意IP地址的8118端口。
第二行设置本地socks5DL客户端端口。这里要自己去看看
启动 privoxy
因为没有安装在系统目录内,所以启动时要打全路径。
sudo /usr/local/sbin/privoxy /usr/local/etc/privoxy/config
# 查看是否启动成功
netstat -na | grep 8118
使用 privoxy
export http_proxy='http://localhost:8118'
export https_proxy='http://localhost:8118'
原理是将 socks5 DL转化成 http DL给命令行终端使用。
取消
unset http_proxy
unset https_proxy
验证
curl cip.cc
curl https://www.google.com.hk/
Q&A
1、为什么terminal终端不能使用系统DL(WIFI网络设置中的HTTP,SOCKSDL设置)?
答:Shell 早于 macOS 并且有自己的配置DL规则。Shell 对系统偏好设置中的DL设置一无所知,需要单独配置。
2、为什么设置了http_proxy等环境变量,git, curl等命令行工具可以上网了?
答:git,wget, curl,brew等cli,甚至GCP提供的gcloud sdk内部都会读取http_proxy, https_proxy, all_proxy等系统环境变量:
仅仅是应用程序运行时环境变量,没有魔法。比如Node.js应用程序,可以使用process.env.http_proxy来读取程序运行时环境变量。其他语言比如Go, Java, Python, PHP都有各自的内置标准库API或全局变量(比如Node.js的process)来读取系统环境变量。git, wget, curl, brew, gcloud和我们自己写的应用程序一样,没什么特殊的。
node
Welcome to Node.js v14.16.0.
Type ".help" for more information.
> process.env.http_proxy
'http://127.0.0.1:7890'
参考资料
https://double-c.github.io/2018/10/17/mac-ss-cmd/index.html
https://github.com/mrdulin/blog/issues/18
https://www.0x2beace.com/how-to-make-terminal-commands-go-through-proxy/
mac命令行终端下使用DL相关推荐
- mac创建文件服务器,mac命令行终端怎么创建文件 mac命令行终端创建文
导读: 想要在mac os x系统中创建大容量空白文件其实非常简单.今天脚本之家小编为大家介绍两种创建文件教程,第一种就是使用mac命令行终端创建文件,第二种是使用磁盘工具应用... 想要在mac o ...
- mac终端里新建html文件,mac命令行终端怎么创建文件 mac命令行终端创建文件教程...
mac命令行终端怎么创建文件?想要在mac os x系统中创建大容量空白文件其实非常简单.本文小乐哥为大家介绍两种创建文件教程,第一种就是使用mac命令行终端创建文件,第二种是使用磁盘工具应用. ma ...
- 终端 删除php文件内容,Mac_mac命令行终端可以卸载吗?mac命令行终端卸载软件教程, mac os系统卸载软件方式有 - phpStudy...
mac命令行终端可以卸载吗?mac命令行终端卸载软件教程 mac os系统卸载软件方式有多种, 卸载工具,程序图标拖拽到垃圾桶皆可,但对顽固残留软件该怎么办呢?今天phpstudy小编就为大家分享ma ...
- 如何调节MAC 命令行终端字体大小
首先打开一个终端,点击左上角终端->偏好设置 选择描述文件->文本->字体更改 调节到合适字体大小
- Mac 用命令行终端打开app应用程序
转自:http://www.33lc.com/article/51388.html 苹果mac os怎么用命令行终端打开app应用程序?有时在mac os平台上配置文件会需要在mac终端打开app应用 ...
- linux下运行python_在Linux命令行终端中使用python的简单方法(推荐)
Linux终端中的操作均是使用命令行来进行的.因此,对于小白来说,熟记几个基本的命令行和使用方法能够较快的在Linux命令行环境中将python用起来. 打开命令行窗口 打开命令行窗口的快捷键如下: ...
- VMware下Ubuntu图形界面切换到命令行终端模式
在虚拟机中安装了ubuntu,很多命令键与VMware的快捷键冲突,好比这个图形界面的切换, 就很让人郁闷,在网上查了图形到命令行终端是Crtl+Alt+F1/F2/F3/F4/F5 竟全不管用了, ...
- Mac系统打开命令行终端及查看操作系统版本号的方法
原文地址为: Mac系统打开命令行终端及查看操作系统版本号的方法 Mac系统打开命令行终端及查看操作系统版本号的方法 Mac系统打开命令行终端的方法: 应用程序 --> 实用工具 --> ...
- Kali Linux下命令行终端的中英文切换
Kali Linux下命令行终端的中英文切换 由于自己想下载个kali linux学习,但是苦于自己设备受限,下载了kali官网的light版本: kali-linux-light-2019.1a-a ...
最新文章
- 初看jQuery,比较dojo与jQuery的不同点
- 7p后摄像头抖动修复_节气门清洗后怠速还是抖动,到底什么毛病?
- openpyxl 绘制饼形图_openpyxl3.0官方文档(13)—— 饼图
- Python(51)_从100打印到0
- java并发编程(6)--CAS会导致“ABA问题“ 解决方案
- Mahout学习笔记-分类算法之Decision Forest
- Linux下TCP Socket编程实例
- 编写myqq,即时聊天脚本
- 微观交通仿真软件分析比较
- 去掉Dedecms幻灯片的标题文字和绿色背景
- DCMTK之MPPS服务实现
- 写作进度周报【人人都是产品经理:9039】
- java---File类笔记(简单介绍)
- Snipaste截图贴图软件安装包下载免费的超级强大截图软件
- 经典游戏----飞机大战
- python plot如何保存图片_Matplotlib 保存图片、图画接口和显示中文的使用方法
- 如何快速计算汉字笔画数
- STM32F030F4P6 HAL库 PPM信号输出 24L01 PPM接收机制作
- 如何设计标签系统?如果构建用户画像
- .NET Core----Docker The type initializer for ‘Gdip‘ threw an exception异常
热门文章
- tkinter库Button组件
- #程序员公司用粉红键盘!网友:可爱,说话都带骚气,一定是男孩子
- MacOS 开启 2k 屏幕的 HiDPI模式,让中文字体不再模糊
- java volatile内存屏障_volatile 和 内存屏障
- oracle用plsql trance,Oracle执行计划总结
- 计算机中定点数和浮点数表示
- Ext文件上传总是返回.do
- 实验课程】MindSpore1.0:MobileNetV2网络实现微调(关键词:MobileNetV2、Fine Tune)
- 中小学科技创新实验室
- android 背诵方歌项目