让AWS虚机访问公司内网资源
今天我需要为AWS上的虚机升级测试版本的kernel,并进行一些测试。 由于公司的网络并不对外开放,因此我们需要手动拷贝YUM源进行升级。用传统的方法,步骤很容易理解:
然而这就遇到一个问题,这个镜像文件有4.2GB大小,上传不仅需要占用带宽资源,而且还要花费很多时间。 解决办法我首先想到将目录 其次,我想到在AWS虚机上安装客户端,通过VPN访问内网资源。这样做当然是可行的,只是openvpn配置起来需要将证书拷来拷去,这使我担心潜在的安全问题,也担心后续会过多地占用VPN服务器资源。 后来,我想到了一个办法,将公司内网的HTTP代理服务器,用反向连接的方式,共享给AWS虚机,用到的命令大概会是这样: ssh -R ec2-13-113-60-192.ap-northeast-1.compute.amazonaws.com:8080:squid.corp.redhat.com:3128 -i ~/.pem/ap-northeast-1-cheshi.pem ec2-user@ec2-13-113-60-192.ap-northeast-1.compute.amazonaws.com
这样做应该是最简单的方案了,但是它还有一个小问题,所有流量都要去公司代理服务器上绕一圈,数据通路看起来会是这样的: 于是,我将这个方案进行了一些改进。我直接将MyHost做成了ProxyServer,并将代理的端口映射到AWS虚机中,这样就不会过多地占用公司的资源,速度也应该会快一些。下面来看我怎么做: ProxyServer我用的是Squid,它是一款开源软件,配置十分简单,几乎不用修改任何配置就可以拿来当HTTP代理服务器用。首先,登录MyHost并执行: [root@dhcp-1-202 ~]# yum install -y squid
[root@dhcp-1-202 ~]# squid -z
[root@dhcp-1-202 ~]# systemctl start squid.service
然后是将本地的 ssh -R 8080:127.0.0.1:3128 -i ~/.pem/ap-northeast-1-cheshi.pem ec2-user@ec2-13-113-60-192.ap-northeast-1.compute.amazonaws.com
随后,来到AWS虚机中,添加YUM源,并为其设置代理服务器( [ec2-user@ip-172-31-10-95 ~]$ cat /etc/yum.repos.d/rhel7u4.repo
[rhel7u4-debug]
name=rhel7u4-debug
baseurl=http://download.eng.pek2.redhat.com/pub/rhel/rel-eng/RHEL-7.4-20170621.0/compose/Server/x86_64/os
enabled=1
gpgcheck=0
proxy=http://127.0.0.1:8080/
[ec2-user@ip-172-31-10-95 ~]$
最后,进行更新即可。 [ec2-user@ip-172-31-10-95 ~]$ sudo yum update --enablerepo=rhel7u4-debug
Loaded plugins: amazon-id,rhui-lb,search-disabled-repos
Resolving Dependencies
--> Running transaction check ---> Package NetworkManager.x86_64 1:1.8.0-0.4.rc3.el7 will be updated ---> Package NetworkManager.x86_64 1:1.8.0-9.el7 will be an update ......
Complete!
[ec2-user@ip-172-31-10-95 ~]$
备注,如果没有设置代理服务器,或者代理服务器不通(通常是由于MyHost上的防火墙所致),就会收到这样的消息: failure: repodata/repomd.xml from rhel7u4-debug: [Errno 256] No more mirrors to try.
http://download.eng.pek2.redhat.com//pub/rhel/rel-eng/RHEL-7.4-20170621.0/compose/Server/x86_64/debug/tree/repodata/repomd.xml: [Errno 14] curl#6 - "Could not resolve host: download.eng.pek2.redhat.com; Name or service not known"
搭建代理服务器有很多好处,比如可以通过 [ec2-user@ip-172-31-10-95 ~]$ export http_proxy=http://127.0.0.1:8080/
[ec2-user@ip-172-31-10-95 ~]$ wget http://download.eng.pek2.redhat.com/pub/rhel/rel-eng/RHEL-7.4-20170621.0/compose/Server/x86_64/os/GPL
......
[ec2-user@ip-172-31-10-95 ~]$
相信大家已经看到,
参考文献:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |