You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无DNS及外网HTTP访问权限的Linux系统如何使用pip安装包?

内网M1机器通过外网M2使用pip安装Python包的解决方案

非root权限优先方案

方案1:SSH端口转发+代理

利用SSH端口转发将M1的请求通过M2中转到互联网,无需修改系统配置:

    1. 在M1上建立SSH端口转发,把本地8080端口绑定到M2的本地端口:
    ssh -L 8080:localhost:8080 m2_username@m2_ip_address
    
    (替换m2_username为你在M2的用户名,m2_ip_address为M2的可访问IP)
    1. 在M2上启动轻量HTTP代理:
      如果M2没装代理工具,先通过系统包管理器安装(比如Debian/Ubuntu用apt install privoxy,RHEL/CentOS用yum install privoxy),确认配置文件/etc/privoxy/config中存在listen-address 127.0.0.1:8080,然后启动服务:
    sudo systemctl start privoxy
    
    若不想装系统包,也可用Python的proxy.py:
    pip install proxy.py
    proxy --port 8080
    
    1. 在M1上通过代理执行pip安装:
    pip install --proxy http://127.0.0.1:8080 your_target_package
    
    要永久生效,可在M1用户目录下创建~/.pip/pip.conf(Python3.4+可放~/.config/pip/pip.conf),写入:
    [global]
    proxy = http://127.0.0.1:8080
    

方案2:离线下载后传输安装

适合需要批量安装或网络不稳定的场景:

    1. 在M2上下载目标包及所有依赖到本地目录:
    pip download -d ~/pip_offline_pkgs your_target_package
    
    1. 从M1通过SCP拉取下载好的包目录:
    scp -r m2_username@m2_ip_address:~/pip_offline_pkgs ~/
    
    1. 在M1上从本地目录安装:
    pip install --no-index --find-links=~/pip_offline_pkgs your_target_package
    

root权限补充方案

如果有root权限,可配置全局代理简化操作:

  • 在M1的/etc/environment中添加代理变量:
    http_proxy=http://127.0.0.1:8080
    https_proxy=http://127.0.0.1:8080
    
    执行source /etc/environment生效后,所有包括pip在内的网络请求都会自动走代理。

注意事项

  • 尽量保持两台机器的pip版本一致,避免依赖包版本兼容问题;
  • 因M1无DNS配置,通过代理时DNS解析由M2完成,无需在M1额外配置hosts;
  • 若使用旧版pip,可能需用--proxy=http://xxx的格式(无空格)。

内容的提问来源于stack exchange,提问作者einpoklum

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 13:12:40