Update:

  • 2021-01-25: 更新本地多网卡的情况

终端设置代理命令之前文章有写过的,趁今天重装了系统完善一下。

我的 Shell 使用 zsh,在 ~/.zshrc 下追加,如果使用 bash 需要修改 ~/.bashrc,可以使用 echo $SHELL 查看当前正在使用的 Shell。

命令用到了 jq 命令,需要先安装 brew install jq,其他平台替换为 yum 或者 apt-get

# 获取内网 IP
getlocalip() {
  local_ip=$(ifconfig | grep 'inet ' | grep -v 127.0.0.1 | awk '{printf("%s / %s; ", $2, $6)}')

  if [ ! "${local_ip}" ]; then
    echo "Your are offline."
  else
    echo "${local_ip}"
  fi
}

# 获取外网 IP
getpublicip() {
  response=$(curl 'https://api.ip.sb/geoip' -Lsk)
  if [ ! "${response}" ]; then
    echo "You are offline."
  else
    ip=$(echo $response | jq -r '.ip')
    country=$(echo $response | jq -r '.country')
    country_code=$(echo $response | jq -r '.country_code')
    city=$(echo $response | jq -r '.city')
    isp=$(echo $response | jq -r '.isp')
    echo "${ip} at ${city} in ${country}(${country_code}) / ${isp}"
  fi
}

# 获取 内外网 IP
getip() {
  echo "Local IP: $(getlocalip)"
  echo "Public IP: $(getpublicip)"
}

# 定义代理地址
export PROXY_URL=127.0.0.1:7890

# 开启代理
proxyon() {
  export https_proxy=http://${PROXY_URL};
  export http_proxy=http://${PROXY_URL};
  export all_proxy=socks5://${PROXY_URL};
  export no_proxy=localhost,127.0.0.1,*.local,*.vanke.com,*.vankeservice.com
  getip
}

# 关闭代理
proxyoff() {
  unset https_proxy http_proxy all_proxy no_proxy;
  getip
}

然后 source ~/.zshrc,就可以使用命令了。

$ getlocalip
10.39.32.* / 10.39.32.255; 10.39.229.* / 10.39.229.255;
$ getpublicip
120.237.94.* at Shenzhen in China(CN) / China Mobile Guangdong
$ getip
Local IP: 10.39.32.* / 10.39.32.255; 10.39.229.* / 10.39.229.255;
Public IP: 58.250.23.228 at Shenzhen in China(CN) / China Unicom Guangdong
$ proxyon
Local IP: 10.39.32.* / 10.39.32.255; 10.39.229.* / 10.39.229.255;
Public IP: 52.175.9.* at Central in Hong Kong(HK) / Microsoft Corporation
$ proxyoff
Local IP: 10.39.32.* / 10.39.32.255; 10.39.229.* / 10.39.229.255;
Public IP: 183.62.230.* at Guangzhou in China(CN) / China Telecom

标签: Shell, Proxy

仅有一条评论

  1. 管家 管家

    有启发

添加新评论