我正在通过SSH和OPENVPN控制远程单元。
在远程单元上,我想使用pip
安装一些Python包,但是:
- 远程公司的防火墙只允许端口22上的流量通过(而不是
pip
所需的443端口); - 远程单元上没有安装DNS;
- 我不能修改任何OPENVPN设置(或者我想避免这个选项,因为它意味着要访问一些远程系统管理员并试图说服他改变配置);
- 所有系统都是Linux(Ubuntu + Debian),没有涉及Windows。
经过数小时的尝试和削减 (我不是系统管理员,关于这个主题我的知识非常有限),想法是打开一个明显的SSH端口转发:
ssh -R 9999:pypi.python.org:443 xxxx@XX.XX.XX.XX
然后,在远程单元上使用pip install
进行操作:
pip install pymodbus==1.3.2 --proxy localhost:9999
但是这个命令返回:
Cannot fetch index base URL https://pypi.python.org/simple/
Could not find any downloads that satisfy the requirement pymodbus==1.3.2
/root/.pip/pip.log
的含义是:
Getting page https://pypi.python.org/simple/pymodbus/
Could not fetch URL https://pypi.python.org/simple/pymodbus/: connection error: ('Connection aborted.', BadStatusLine("''",))
Will skip URL https://pypi.python.org/simple/pymodbus/ when looking for download links for pymodbus==1.3.2
Getting page https://pypi.python.org/simple/
Could not fetch URL https://pypi.python.org/simple/: connection error: ('Connection aborted.', BadStatusLine("''",))
Will skip URL https://pypi.python.org/simple/ when looking for download links for pymodbus==1.3.2
Cannot fetch index base URL https://pypi.python.org/simple/
URLs to search for versions for pymodbus==1.3.2:
* https://pypi.python.org/simple/pymodbus/1.3.2
* https://pypi.python.org/simple/pymodbus/
Getting page https://pypi.python.org/simple/pymodbus/1.3.2
Could not fetch URL https://pypi.python.org/simple/pymodbus/1.3.2: connection error: ('Connection aborted.', BadStatusLine("''",))
Will skip URL https://pypi.python.org/simple/pymodbus/1.3.2 when looking for download links for pymodbus==1.3.2
Getting page https://pypi.python.org/simple/pymodbus/
很明显,远程单元无法读取pypi.python.org上的索引页面,因为连接被拒绝。
我所尝试实现的正确语法是什么?
--proxy https://localhost:9999
。 - Piotr Dobrogost--proxy https://localhost:9999 --no-check-certificate
(--no-check-certificate
是因为否则它会抱怨在localhost
上不存在),但是得到了相同的Cannot fetch index base URL https://pypi.python.org/simple/
。 - Alex Poca