如何通过bash shell设置代理?

时间:2011-12-29 10:53:04

标签: macos bash shell proxy

我通过System Preferences -> Network -> Advanced -> Proxies在Mac上设置代理。

是否可以通过bash shell以编程方式执行相同操作?

3 个答案:

答案 0 :(得分:28)

您可以将其放在.profile.bash_profile中,也可以在命令行上手动运行:

export http_proxy=http://proxy.server.com:@aproxy:portnumber
export https_proxy=https://proxy.server.com:@aproxy:portnumber

不使用代理进行本地连接也很常见

export no_proxy=localhost,127.0.0.0/8,*.local

答案 1 :(得分:12)

是的,使用networksetup命令。设置不同类型的代理有单独的选项(例如-setwebproxy-setsocksfirewallproxy等),您需要知道主网络“服务”的名称(例如以太网,机场...基本上,“网络”偏好设置面板侧栏中列出的名称)。这是一个例子:

sudo networksetup -setwebproxy "Ethernet" myproxy.example.com 8000

如果您需要确定服务名称,请使用networksetup -listnetworkserviceordernetworksetup -listallnetworkservices,然后解析列表以获取所需服务的名称。

答案 2 :(得分:5)

我使用此脚本通过我的ssh服务器(而不是Web代理)进行代理。

#!/bin/bash
disable_proxy(){
    sudo networksetup -setsocksfirewallproxystate Wi-Fi off
    sudo networksetup -setsocksfirewallproxystate Ethernet off
    echo "SOCKS proxy disabled."
}
trap disable_proxy INT

sudo networksetup -setsocksfirewallproxy Wi-Fi 127.0.0.1 9999
sudo networksetup -setsocksfirewallproxy Ethernet 127.0.0.1 9999
sudo networksetup -setsocksfirewallproxystate Wi-Fi on
sudo networksetup -setsocksfirewallproxystate Ethernet on
echo "SOCKS proxy enabled."
echo "Tunneling..."
ssh -ND 9999 000.000.000.000 -p 00000

000.000.000.000更改为您自己的服务器的IP并将00000更改为您自己的端口,您应该可以将其重复使用自己的ssh服务器。您可以将此脚本保存在名为proxy的主目录中。

使用./proxy(输入您的密码)启动它,使用CTRL+C停止隧道传输。

如果您忘记停止隧道,请再次启动它并使用CTRL+C停止,第二天您想知道为什么您的互联网连接已关闭。

如果您的管道损坏,请再次启动./proxy