我通过 系统偏好设置 -> 网络 -> 高级 -> 代理
在 Mac 上设置了一个代理。
是否可以通过 Bash Shell 编程以编程方式执行相同的操作?
你可以将以下内容放置在你的 .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
是的,可以使用networksetup
命令。针对设置不同类型的代理(例如-setwebproxy
,-setsocksfirewallproxy
等),有单独的选项,并且您需要知道主网络“服务”的名称(例如Ethernet,Airport...基本上是Network首选项窗格侧栏中列出的名称)。这是一个例子:
sudo networksetup -setwebproxy "Ethernet" myproxy.example.com 8000
如果您需要找出服务名称,请使用 networksetup -listnetworkserviceorder
或 networksetup -listallnetworkservices
,然后解析列表以获取所需服务的名称。#!/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
停止隧道。
如果出现“broken pipe”错误,请再次启动./proxy
。
export https_proxy=http://proxy.server.com:@aproxy:portnumber
来代替!(请注意缺少的s
!) - einjohn