虚拟机借用宿主机的代理

某些资源无法直接访问获取,比如docker镜像,github资源等.

这里提供一种方案,但这种方案基于已有代理软件可以访问上述资源的同学.

该方案只是为了方便使用虚拟机时,也可以使用代理去获取外网资源.

核心思路就是配置虚拟机的网络访问,从宿主机的代理端口进行跳转.

这里我以虚拟机NAT网络模式举例:

1.首先,代理软件需要支持开放局域网访问,在软件中找找类似的配置项并开启

2.修改 /etc/profile 文件,加入两行

[宿主机接口ip] -> 比如你的虚拟机ip是192.168.6.188,对应宿主机接口ip一般是192.168.6.1,不确定的话在宿主机用ipconfig命令查找下.

[宿主机代理端口] -> 宿主机上运行的代理软件的端口

export http_proxy=http://[宿主机接口ip]:[宿主机代理端口]/
export https_proxy=http://[宿主机接口ip]:[宿主机代理端口]/

刷新配置

 source /etc/profile

该项配置完成后就可以curl,wget等操作访问你需要的资源,可以测试下

curl https://github.com

3. 类似Docker的软件并没有使用上述的全局配置,他们有自己的守护进程,通过在/etc/systemd/system目录下新建配置去覆盖已有的守护进程,就可以直接拉取想要的镜像.

新建的目录名取决于你要覆盖掉的服务,名称一致,比如要覆盖docker服务,名称就是docker.service.d

mkdir -p /etc/systemd/system/docker.service.d

进入该目录创建任意文件以.conf结尾 

 vim /etc/systemd/system/docker.service.d/proxy.conf

 该文件中写入如下内容

[Service]
Environment="HTTP_PROXY=http://[宿主机接口ip]:[宿主机代理端口]/"
Environment="HTTPS_PROXY=http://[宿主机接口ip]:[宿主机代理端口]/"
Environment="NO_PROXY=localhost,127.0.0.1,.example.com"

刷新配置

systemctl daemon-reload
systemctl restart docker

 然后docker pull 拉取一个国内镜像仓库没有的镜像试试(#^.^#)

如果使用的是桥接网络,上述 [宿主机接口ip] 换成 [宿主机局域网ip] 即可.

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值