个人文档
  • AI编程Cursor
  • GPT使用笔记
  • npm常用库合集
  • 同步用
  • 小Demo们
  • 工具网站教程集合
  • HTML、CSS 工具方法集合
    • HTML 全局属性
    • css常用功能
    • font-face 字体|子集相关
    • iframe父子页面传值
    • input输入优化
    • loading状态
    • nodejs使用谷歌邮箱发邮件
    • 为 Dom 自定义事件监听
    • 初始html的head标签配置
    • 拼音输入中文汉字的事件监听
    • 文字颜色效果
    • 文档片段范围 Range
    • 移动端开发-rem
    • 等宽字体推荐
    • 网站SEO优化注意点
    • 邮件html模板
  • JS 工具方法集合
    • Axios 简单使用
    • Axios 简单封装
    • Gitbook的安装和使用
    • Github 登录开发
    • HTML转为纯文本
    • JS 中强大的操作符
    • cookie 操作
    • js 动态加载js资源
    • js 常用功能语句
    • js取代trycatch的方法封装
    • js接口下载二进制
    • script 标签的异步属性
    • 判断当前是移动端还是pc端
    • 刷新token队列管理
    • 前端多线程 Web Worker
    • 加密-AES对称加密
    • 加密-node进行rsa加密解密
    • 地区省市区三级联动的地址数据 + 功能
    • 复制插件
    • 开发时环境变量
    • 得到随机图片
    • 数字格式整理集合
    • 数学计算插件
    • 时间格式整理
    • 获取ip地址
    • 获取url传参
    • 进制转换和位运算符
    • 页面隐藏|激活|关闭的监听
  • JS 知识点研究
    • Babel 历史和原理
    • Babel 配置和使用
    • Function 的 apply、call、bind
    • HTTP浏览器缓存粗解
    • Source map 文件还原为源码
    • TS常用技巧
    • js 的加载和模块化
    • js 的新数据类型 Symbol
    • js的代理对象 proxy 和 defineProperty
    • js的原型链 prototype
    • vite 打包体积优化
    • webpack 可视化打包文件大小插件
    • webpack 基础使用配置
    • webpack 版本5的报错
    • yeoman 开发脚手架的工具
    • 同步异步和微任务宏任务
    • 移动端调试---谷歌工具+eruda+vconsole
    • 转换-Blob URL
    • 转换-FileReader
    • 转换-Js文件类型和转换
    • 转换-前端开发的URL的编码和解码
    • 转换-字符串和Base 64的转换
  • Node 和 Npm 相关
    • Node 开发环境配置
    • express + jwt 校验
    • node 常用方法
    • node后台服务器-PM2
    • node基本使用
    • npm 中依赖的版本问题
    • npm 功能使用
    • npm指令说明和其他对比
    • nvm版本管理+自动切换node版本
  • React 学习
    • React Hook
    • React 项目基础开发
    • React.memo 和 React.PureComponent
    • React懒加载进阶
    • useContext Hook
    • useEffect Hook
    • useMemo 和 useCallback - Hook
    • useRef Hook
    • useState Hook
    • 同步修改变量功能封装 useVal for react
    • 轻便的传值组件
  • Rust 语言相关
    • Rust 基本
    • Rust 基础学习
    • Rust 调用 Object-C 的API
    • Tauri 基本使用
    • Tauri 是什么
  • VUE 学习
    • Vue3 使用
    • Vue3使用hook
    • Vue开发小技术点
    • vue路由切换时的动画效果
    • 花式引入组件和资源-打包时拆包减少js体积
  • Web3相关
    • Web3.0开发上-准备和概念理解
    • Web3.0开发下-功能代码示例
    • 以太坊区块链和Web3.0
    • 开发智能合约
  • python
    • pyenv版本管理工具
    • python初始化
    • python基本概念
    • venv虚拟环境
  • 个人其他
    • Steam Deck的基本设置和插件
  • 其他编程相关
    • Git教程和常用命令
    • Java开发-JDK和Maven的安装和卸载
    • Jenkins安装和基本使用
    • Linux系统指令
    • Mac 使用2K屏幕开启缩放
    • Mac 使用VS code打开项目
    • Mac 安装 Homebrew
    • Mac 的终端 shell 与 zsh
    • Mac 软件和插件
    • MacBook使用建议
    • Mac升降级到指定版本的系统
    • Mac安装Zsh
    • Mac安装软件各种提示
    • Mac系统脚本语言 AppleScript 的使用
    • Mac终端代理工具
    • Markdown(md)文档开发-Typora
    • Mysql 的安装和使用
    • Nginx 安装和基础使用
    • Nginx 稍微高深的配置
    • Slate - Api 的文档开发工具
    • Sublime配置
    • Ubuntu的 apt-get 使用
    • VScode配置
    • Windows 软件和插件
    • curl 工具使用
    • github 网站访问优化
    • host 文件
    • inquirer 终端中和用户交互
    • uTools的插件开发教程
    • vim 文本编辑功能
    • 使用 Github Pages 免费部署网站
    • 压缩指令 zip 和 unzip
    • 油猴的安装和开发(Tampermonkey)
    • 阿里云简略使用
  • 微信开发
    • 微信小程序开发
    • 微信开发必读
    • 微信开发提前购买域名
    • 微信手机打开的页面中授权登录
    • 微信扫码登录
    • 微信服务号登录+推送服务提醒
    • 自定义分享卡片-node.js实现
  • 数据结构与算法
    • KMP算法
    • Wildcard字符串分析算法
    • 二叉树
    • 字典树
    • 时间复杂度浅析
    • 算法神器——动态规划
Powered by GitBook
On this page

Was this helpful?

  1. 其他编程相关

Mac终端代理工具

title: Mac终端代理工具 id: 710551387f78d1e520a6d2b497d7b276 tags: [] date: 2000/01/01 00:00:00 updated: 2024/09/23 11:43:02 isPublic: true --#|[分隔]|#--

Mac终端代理工具

这篇文章,不是讲如何使用翻墙代理工具的,而是在自己先配置了翻墙后,如何让某些特殊场景,也能走翻墙的。

使用指令配置终端走已配置好的代理

一般使用了代理软件后,是无法代理终端的,这时候就可以通过一些设置和脚本,使终端能够通过代理。

因为ping使用的协议不是http或https协议,所以即使代理成功,使用ping仍然是无法走代理的,所以这时候,可以使用curl www.google.com指令,查看是否代理成功。

1. 只对当前终端生效,新开窗口无效的临时配置,需要在终端中输入以下

# 要输入的格式
export http_proxy=protocol://host:port;export https_proxy=protocol://host:port

# 比如使用 socks5 协议、代理的地址为当前机器的1080端口,则输入的内容为
export http_proxy=socks5://127.0.0.1:1080;export https_proxy=socks5://127.0.0.1:1080

# 比如使用 http 协议、代理的地址为当前机器的1081端口,则输入的内容为
export http_proxy=http://127.0.0.1:1081;export https_proxy=http://127.0.0.1:1081

2. 全局终端生效 在~/目录下新建.bash_profile,添加内容(当然里面的host和port,同上一条需要改成自己的设备的代理):

# 配置终端代理
# 先判断有没有代理,如果有才走代理
thisProxy=`lsof -i:1087 | grep privoxy`;
if [ "$thisProxy" != "" ]; then
export http_proxy="http://localhost:1081"
export https_proxy="http://localhost:1081"
fi

保存,关闭,打开一个终端输入以下指令更新文件:

source ~/.bash_profile

然后所有新开的终端,都可以走代理了,如果本身就有这个文件,则直接在文件最底部加上上面的代码即可。

但是如果发现不行,那么请执行下面的指令,手动重载一下这个文件,使其立即生效:

配置终端走代理的软件proxifier

如果是mac的话,即便SS开了全局,终端也是不走代理的(安全限制),可以考虑:

  1. 用类似proxychains,将请求代码到SS。

  2. 用proxifier,将终端请求代理到SS。

  3. 用VPN。

这里我使用方案2成功,所以记录一下过程 。

大致原理说明

首先说明此软件的工作步骤。

平时用的科学上网的翻墙代理,这里就叫做代理软件,正常它可以代理大部分软件的请求,但是不能代理终端和node服务中的请求,所以需要我们的proxifier。

代理软件需要自行去找去买去配置了,这里我自己用的是 TrojanX,用户自行安装配置好代理软件后,就可以进行下面的流程了。

下载proxifier软件,安装和破解

官网地址:https://www.proxifier.com/。

可以去官网下载,收费软件,免费试用30天,可以使用下面的注册码破解。

Proxifier v3.*版本:
用户名:mac
注册码:3CWNN-WYTP4-SD83W-ASDFR-84KEA

然后解压、常规流程进行安装,期间在下面的系统设置处,需要点一下信任软件。

2. 设置本地代理的监听地址

我自己的代理软件就是上面说的 TrojanX 了,这个代理软件会启动一个本地监听,监听本地的 127.0.0.1的1080端口,所有访问了这个地址:端口的请求,都会被 TrojanX 代理到国外。

此时需要按照下图所示的步骤,给 Proxifier 添加代理目标,在 Proxifier 中走代理的请求,会被重定向到这个地址:端口,其实也就是 TrojanX 监听的那个地址:端口。

配置规则

下一步,就是点击Rules,来配置一下自己的规则。

先说一下每一列的作用:

  • Name:自定义的规则名称;

  • Applications:软件名称,这个软件发出的请求,走这条规则(不写就是Any了);

  • Target Hosts:ip地址,访问这个ip的请求,走这条规则(不写就是Any了);

  • Target Ports:端口好,请求访问的是这个端口号的,走这条规则(不写就是Any了);

  • Action:此规则的Profile处理方案:

    • Direct:假装Proxifier不存在,直接放走这个请求;

    • Block:拦截,直接把这个请求摁死,被proxifier卡死,发不出去了;

    • Proxy ...:配置的代理方案,也就是上一步配置的那个,会把走这条规则的请求转发过去。

当一个请求发出时,由上而下依次对比,符合便应用规则,并停止对比。

下面是我的配置:

配置规则时的一个小坑

注意,配置规则这里有一个小坑,就是Applications生效软件的名字。

软件是可以点击加号,从软件列表中选择软件的。。。但其实,它获取的名字是错误的。

正确的方式,是先让所有请求走代理,然后在请求列表监控中,找到需要被代理的请求,查看他Application是什么,再把那个写到规则的软件名字项中,才是对的,有点太坑了。

4. 修改由谁来解析DNS

如下图所示,在DNS中把红框中的对钩修改为和我一样的,这个实测是需要改的,否则有时终端不会走这个工具,比如我用nvm官网提供的curl的方式安装nvm时。

两句的意思分别为:

Detect DNS settings automatically:自动检测DNS设置

Resolve hostnames through proxy: 通过代理解析主机名

这里是改为了让代理去解析主机

5. 其他说明和参考

执行了上面几步,终端代理也就完成了,在我这里,node服务已经可以连接墙外socket、调用墙外接口了。

但如果有人还是没成功,可以参考一下下面这个地址的配置。

我的流程也是参考此教程来的,但他的是window系统,我的是Mac,稍微有些不同,边实边琢磨出来的,地址如下:https://blog.csdn.net/wu_cai_/article/details/80271478

此外,后面这个链接中,比较详细的描述了此软件的用法,可以学习一下:https://www.zybuluo.com/yiranphp/note/611721

PreviousMac系统脚本语言 AppleScript 的使用NextMarkdown(md)文档开发-Typora

Last updated 3 months ago

Was this helpful?