【问题标题】:docker exec : vpn: checking ip address shows the ISP ip addressdocker exec : vpn: checks ip address 显示 ISP ip 地址
【发布时间】:2021-02-26 16:00:37
【问题描述】:

我有一个运行 vpn 的 docker 容器

在 docker 内我运行 curl ipinfo.io/$(curl ifconfig.me) 我得到了 vpn ip 和位置

docker exec -it vpnmy /bin/bash
[root@158983fe36a0 /]# curl ipinfo.io/$(curl ifconfig.me)
  "ip": "xxx.xxx.x.xx",
  "city": "New York City",
  "region": "New York",
  "country": "US",

上面我选择的 vpn 位置及其按预期显示。表示 vpn 正在运行

当我尝试时在哪里

$ docker exec -it vpnmy curl ipinfo.io/$(curl ifconfig.me)
  "ip": "xxx.xxx.x.xx",
  "city": "current city",
  "region": "current region",
  "country": "current country",

它显示了我的互联网服务提供商 ip 全局详细信息

但我想继续检查,而无需先进入 bash 提示符并运行 curl

我该怎么做

【问题讨论】:

  • 您可以使用 bash 命令标志 docker exec -it /bin/bash -c “curl ipinfo.io/$(curl ifconfig.me)” 发出命令,记住这将触发命令我不认为输出是可见的。但是,如果您想查看输出,只需生成一个像这样的文件 docker exec -it /bash/bash -c “curl ipinfo.io/$(curl ifconfig.me) >> tee -a result.txt 它只是附加命令会生成一个名为 result 的文件,有很多方法可以做到这一点,这只是一个例子
  • docker exec -it vpmy /bin/bash -c "curl ipinfo.io/$(curl ifconfig.me)" 它输出结果,但不是 vpn ip 而是我的 isp ip
  • 据我了解。当您创建一个容器时,它的网络将与您的主机系统桥接。我相信您需要创建一个 docker-machine ip 并在您的 docker-compose 文件中使用自定义 dns 设置设置一个 docker 网络。

标签: docker containers vpn


【解决方案1】:

当你跑步时

docker exec -it vpnmy curl ipinfo.io/$(curl ifconfig.me)

首先你在 Docker 之外的本地 shell 运行嵌入的 curl 命令;然后它启动一个运行外部curl 命令的容器,其中包含来自嵌入在 URL 中的主机的 IP 地址。

# after the _host_ does command substitution, this runs
docker exec -it vpnmy curl ip-info.io/10.20.30.40
# with the host's IP address

由于您希望该扩展在容器内运行,因此您需要将 docker exec 命令作为一个 shell,并且您需要在 单个 引号中将命令传递给它以防止主机运行命令。 (cmets 中的一个类似示例使用了双引号,这并不能阻止这一点。)

# note `sh -c` wrapper and single quotes
docker exec -it vpnmy sh -c 'curl ipinfo.io/$(curl ifconfig.me)'

如果ipinfo.io 服务器不关心请求来自哪里,另一种选择是在主机上运行外部curl 命令并在容器中运行内部命令。对于您显示的像这样切换层的命令可能会有点混乱,但如果您需要在脚本中进行更多处理,它可能会更容易运行。

curl ipinfo.io/$(docker exec vpnmy curl ifconfig.me)
VPN_IP=$(docker exec vpnmy curl ifconfig.me)
curl "ipinfo.io/$VPN_IP"

【讨论】:

    猜你喜欢
    • 2013-03-14
    • 2013-01-16
    • 2015-02-27
    • 2018-09-23
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    • 2021-08-10
    相关资源
    最近更新 更多