通过 VPN 的 Python 请求给出 502 Bad Gateway

Jam*_*eld 2 python vpn http-proxy python-3.x python-requests

我正在尝试从我公司网络内的服务器与图书馆获取一些数据requests。我使用 VPN 进入公司网络,并且还设置了公司代理。我尝试访问的地址仅在该公司网络内可见。

import requests

url = "http://some.private.server.net"

r = requests.get(url)
Run Code Online (Sandbox Code Playgroud)

我在我的环境中设置了 HTTP_PROXY 和 HTTPS_PROXY。我运行的是 Windows 7。

我从这段代码中得到错误 502。当我物理连接到公司网络时它起作用了,所以我认为问题在于通过 VPN 而不是代理连接。我可以使用网络浏览器访问该地址。

我对网络了解不多,但我尝试将请求的源地址更改为VPN网络适配器使用的IP地址。

import requests
from requests_toolbelt.adapters.source import SourceAddressAdapter

s = requests.Session()
ip = "y.y.y.y"
s.mount('http://', SourceAddressAdapter(ip))
s.mount('https://', SourceAddressAdapter(ip))

url = "http://some.private.server.net"

response = s.get(url)
Run Code Online (Sandbox Code Playgroud)

这仍然导致与上面相同的错误(502)。

编辑:更仔细地查看 502 错误,代理服务器返回消息“您正在查找的页面的主机名不存在”。

因此,我尝试将 URL 替换为我尝试访问的服务器的 IP 地址,但由于“网关超时”而收到 502。

我可以从命令行 ping 该 IP,没有问题。

Jam*_*eld 7

具有讽刺意味的是,问题是我不需要使用代理来访问该服务器。你可以这样做,

import requests

s = requests.Session()
s.trust_env = False

url = "http://some.private.server.net"

response = s.get(url)
Run Code Online (Sandbox Code Playgroud)