做过运维服务工作的敌人肯定有亲身经历:给政府和大型企业、事业单位做运维反对时,发现他们的服务器往往有着严格的平安管理机制,特地是有限度的拜访 Internet。这给运维工作带来了诸多不便。
比方:服务器须要拜访 Github, yum 仓库装置一些软件,如果无法访问,装置软件就十分耗时费劲。
面对这种状况,有没有方法通过一些合规的技术手段,实现咱们冀望的网络拜访形式呢?
当然有的,先看看上面的整体思路。
整体思路
抛开技术不谈。咱们先回顾一下咱们生存中类似的例子:
一个衰弱的人,他能够出门实现各种与衣食住行相干的事件。如果他生病了,被禁锢在病床或病房或医院内,那么他就无奈自在的去流动范畴之外的中央。但非凡状况下,必须来到流动空间之外,应该怎么办?
答案非常简单:委托一个衰弱的、并且能够自由行动的人帮他去实现这些事件。
那咱们当初关注的公有云服务器拜访 Internet 问题,其解决方案是不是也能够借鉴这种 委托 机制呢?
齐全能够,因为在计算机技术中,有一种比拟成熟的技术计划:代理服务。它就是用于解决此类场景的最佳实际之一。
咱们当初的案例中,须要分为三个步骤实现咱们的指标:
- 合规筹备
- 代理服务搭建(私有云服务器)
- 设置本地代理(公有云服务器)
合规筹备
代理服务的应用,首先要保障合规性。一方面合乎所在的单位的网络管理标准,另外一方面遵循国家相干的法律法规。
- 向网络管理员申请应用代理服务的理由和应用范畴,取得批准
- 仔细检查代理服务拜访的拜访,确保符合国家网络相干法律标准
国家对海内网络的拜访有严格的法律要求,请务必做到 100% 合规
代理服务搭建
因为合规性管制问题,市场上没有可供购买的代理服务。因而,须要自行搭建代理服务。
具体的步骤如下:
-
购买一个具备失常拜访互联网的云服务器(简称为:“私有云服务器”)
最低配置(例如:1 核 1G 内存,带宽按量模式 100M)
-
应用 SSH 登录云服务器,运行如下命令搭建根本环境
curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh curl -L "https://github.com/docker/compose/releases/download/1.29.0/docker- compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose ln -sf /usr/local/bin/docker-compose /usr/bin sudo systemctl start docker
-
运行上面的命令,下载代理服务器软件 tinyproxy 到本地
git clone --depth=1 https://github.com/Websoft9/docker-tinyproxy
-
依据所需,批改软件目录下的 .env_all 文件下如下两个参数
BINDIP=35.129.77.19 # 白名单 IP APP_PORT=9094 # 代理端口
BINDIP 代表你的 公有云服务器的公网 IP地址(白名单),设置在此处即表明它能够应用代理服务,未设置的就无奈应用代理服务
- 登录云服务器控制台,放通下面 APP_PORT 对于的端口,例如:TCP:9094
-
本地浏览器拜访 http:// 私有云服务器 IP 地址:9094,如果显示如下反馈信息,即表明代理服务器搭建胜利。
Access denied The administrator of this proxy has not configured it to service requests from your host. Generated by tinyproxy version 1.10.0.
设置本地代理
接下来咱们为公有云服务器上设置本地代理。咱们能够为 Linux 零碎设置全局的代,也能够为指定的软件设总代理(大部分成熟的软件,都反对代理设置)。
假如代理服务器的 IP 为:111.99.190.142,端口为:9094
全局代理
-
登录公有云服务器,运行上面的命令创立一个代理配置文件
touch /etc/profile.d/proxy.sh
-
将上面的代码代码复制到 proxy.sh 文件,依据理论状况批改 export proxy 字段
# 代理服务器的 IP: 端口 export proxy="111.99.190.142:9094" export http_proxy=$proxy export https_proxy=$proxy export ftp_proxy=$proxy export no_proxy="localhost, 127.0.0.1, ::1"
- 保留后,重启开启 Shell 终端,代理失效
部分代理
咱们也能够为指定的软件独自设置代理,上面以 Git, Docker, Yum 为例进行阐明。
Git
应用 SSH 间接运行如下的命令即可(代理服务的 IP 和端口依据理论状况批改)
git config --global https.proxy 111.99.190.142:9094
git config --global https.proxy 111.99.190.142:9094
Docker
批改 Docker 的零碎服务文件 /etc/systemd/system/docker.service
[Service]
Environment="HTTP_PROXY=111.99.190.142:9094/"
Environment="HTTPS_PROXY=111.99.190.142:9094/"
依据理论状况批改保留后,重启 Docker 服务后失效
Yum
批改 /etc/yum.conf,减少上面的代码(代理服务的 IP 和端口依据理论状况批改)
proxy=111.99.190.142:9094
总结
委托与被委托机制,在技术畛域是一个简略无效且被宽泛应用根本架构哲学办法。心愿读者敌人们能够触类旁通,灵便驾驭它。
本文由 Websoft9 原创公布,转载请注明出处。