http://codelife.me/blog/2012/09/02/how-to-set-proxy-for-terminal/

本文介绍如何在MacOS X终端里使用代理访问网络,虽然只在Mountain Lion下测试,但同样适用于装有Bash的系统。

实在无法忍受linode日本机房的高延迟,动手配置了一个goagent服务。但是HTTP代理和VPN不同,没法全局代理(至少不能简单配置),在Terminal里下载最新版本的Ruby,奇慢无比,下面介绍如何让Terminal里执行的程序使用goagent代理。

Socks代理

使用tsocks可以为任意程序提供socks代理 ####安装tsocks brewtapadamv/altbrewtapadamv/altbrew install tsocks ####配置tsocks 打开配置文件/usr/local/etc/tsocks.conf

修改如下

local = 192.168.0.0/255.255.255.0
server = 127.0.0.1
server_type = 5
server_port = 8080

HTTP代理

$ export http_proxy='http://YOUR_USERNAME:YOUR_PASSWORD@PROXY_IP:PROXY_PORT/'

HTTPS代理

$ export https_proxy='http://YOUR_USERNAME:YOUR_PASSWORD@PROXY_IP:PROXY_PORT/'

取消HTTP/HTTPS代理

$ unset http_proxy
$ unset https_proxy

例子

让Terminal里的http访问走goagent的默认端口8087

$ export http_proxy='http://localhost:8087'
$ export https_proxy='http://localhost:8087'
$ tsocks /Applications/Textual.app/Contents/MacOS/Textual

使用Privoxy将socks代理转换为HTTP代理

使用ssh -D可以获得一个socks5代理,privoxy可以将socks转换为http代理

安装privoxy

brew install privoxy

修改配置文件vim /usr/local/etc/privoxy/config

listen-address  0.0.0.0:8118
forward-socks5 / localhost:1080 .

参考文章

  1. HOW TO SET A PROXY FOR THE TERMINAL [QUICK LINUX TIP]
  2. tsocks
  3. 用 Privoxy 在 Mac OS X/Linux/Ubuntu 上将 Socks5 转换为 HTTP 代理
  4. http proxy over ssh, not socks

如何为MacOS X终端设置代理的更多相关文章

  1. 给 iTerm 终端设置代理

    本文介绍如何为自己的终端设置代理,从而实现在命令行中访问Google. 1. 背景 当你使用SS FQ时,大部分浏览器都可以成功访问Google,但是在命令行下执行curl https://www.g ...

  2. mac 命令行终端 设置代理

    环境: macOS Mojave 10.14.3 iTrem 2 3.2.8 酸酸乳1.1.4.4-R8 查看自己命令行的状态 curl ip.gs 正式开始 一.首先检查自己的酸酸乳是否正常,并在高 ...

  3. mac 下对 iterm 终端 设置代理

    vi .profile export http_prox="http://xxxx:port" export https_proxy="http://xxxx:port& ...

  4. centos 终端界面代理设置

    一.centos自带界面设置代理 1. 界面设置 squid默认代理端口3128. 2. firefox设置 设置 -> 局域网设置 -> ip:port / username:passw ...

  5. linux 虚拟机centos64位_6.5+VM10 主机是固定IP局域网设置代理上网,虚机设置固定ip 图文详细步骤

    一种: 虚机是Desktop 安装 1.虚拟机—设置—网络适配器子选项—选择“桥接模式” 2.在虚拟机中选择系统(System)—首选项(Preferences)—网络连接(Network Conne ...

  6. Android Studio设置代理,解决检查更新gradle信息的问题

    Android Studio是基于JetBrains公司的IDEA开发的,Android Studio里的项目都是由Gradle构建的,Gradle集合了Ant和Maven的优点,又解决了他们的缺点, ...

  7. macOS SIP 权限设置

    1.macOS SIP 权限设置 对于 macOS 10.11+ 用户,由于系统启用了 SIP(System Integrity Protection), 导致 root 用户也没有权限修改 /usr ...

  8. (转)在公司的局域网使用git或github 设置代理

    目录 [hide] 1 生成SSH Key 2 git使用http访问 3 git使用ssh进行访问 在公司这样的局域网环境中,向要走网络必须走HTTP代理出去.不能直接访问外面的服务,所以这样安全了 ...

  9. mac SVN 设置代理

    1. 设置代理一种方法:Finder 菜单里面 -> 前往 -> 前往文件夹 -> /Users/username/.subversion -> 编辑文件 servers 在文 ...

随机推荐

  1. [EXP]CVE-2019-1821 Cisco Prime Infrastructure思科未授权远程代码执行漏洞

    CVE-2019-1821 Cisco Prime Infrastructure Remote Code Execution https://srcincite.io/blog/2019/05/17/ ...

  2. Buttons按扭

    到目前为此,我们已经写了一些程序代码,但都只是输出,然而,有时我们也希望板子能处理一些输入,输入输出我们都是针对板子来说的.microbit板子上的两个按键是最显眼的输入,分别是A和B,mPython ...

  3. 源码casino-server剖析(1)--游戏服务的整体架构和实现

    前言: 最近研究了一些游戏服务器的架构和实现, github上找了几个开源的实现. 有几个感觉不错, 打算仔细研读一下. 游戏服务器种类繁多, 这边主要是基于状态同步的棋牌类游戏, 适合入门, ^_^ ...

  4. C++动态规划实现查找最长公共子序列

    问题描述: 给定两个序列X={x1,x2,…,xm}和Y={y1,y2,…,yn},找出X和Y的最长公共子序列.(给定两个序列X和Y,当另一序列Z既是X的子序列又是Y的子序列时,称Z是序列X和Y的公共 ...

  5. C语言创建链表

    一.链表中结点的存储 链表的结点左边一部分是存放的数据,右边一部分是后继指针指向下一个结点的地址.C语言中通常定义一个结构体类型来存储一个结点,如下: struct node { int data; ...

  6. linux 判断一个用户是否存在

    #!/bin/bash read -p "please input a username:" username >&; then echo "user ex ...

  7. php 获取当前IP地址

    function getIP() { return isset($_SERVER["HTTP_X_FORWARDED_FOR"])?$_SERVER["HTTP_X_FO ...

  8. The underlying connection was closed: An unexpected error occurred on a receive

    解决方法 webRequest.KeepAlive = false; ServicePointManager.ServerCertificateValidationCallback += (s, ce ...

  9. Django:RestFramework之-------频率控制

    5.频率控制 5.1频率监控代码实现 import time VISIT_RECORD = {} class VisitThrottle(object): def __init__(self): #定 ...

  10. JS 数组克隆方法总结(不可更改原数组)

    ES5 方法总结 1.slice let arr = [2,4,434,43]; let arr1= arr.slice();//let arr1 = arr.slice(0); arr[0] = ' ...