专栏首页websoft9代理服务,让私有云服务器更自由
原创

代理服务,让私有云服务器更自由

2860元腾讯云代金券免费领取,付款直接抵现金,立即领取>>>

腾讯云海外服务器1折限时抢购,2核4G云主机689元/1年,立即抢购>>>

腾讯云服务器1折限时抢购,2核4G云主机689元/3年,立即抢购>>>

做过运维服务工作的朋友一定有亲身经历:给政府和大型企业、事业单位做运维支持时,发现他们的服务器往往有着严格的安全管理机制,特别是有限制的访问 Internet。这给运维工作带来了诸多不便。

比如:服务器需要访问 Github, yum 仓库安装一些软件,如果无法访问,安装软件就非常耗时费力。

面对这种情况,有没有办法通过一些合规的技术手段,实现我们期望的网络访问方式呢?

当然有的,先看看下面的整体思路。

整体思路

抛开技术不谈。我们先回顾一下我们生活中相似的例子:

一个健康的人,他可以出门完成各种与衣食住行相关的事情。如果他生病了,被禁锢在病床或病房或医院内,那么他就无法自由的去活动范围之外的地方。但特殊情况下,必须离开活动空间之外,应该怎么办?

答案非常简单:委托一个健康的、并且可以自由行动的人帮他去完成这些事情。

那我们现在关注的私有云服务器访问Internet问题,其解决方案是不是也可以借鉴这种委托机制呢?

完全可以,因为在计算机技术中,有一种比较成熟的技术方案:代理服务。它就是用于解决此类场景的最佳实践之一。

我们现在的案例中,需要分为三个步骤完成我们的目标:

  1. 合规准备
  2. 代理服务搭建(公有云服务器)
  3. 设置本地代理(私有云服务器)

合规准备

代理服务的使用,首先要保证合规性。一方面符合所在的单位的网络管理规范,另外一方面遵循国家相关的法律法规。

  1. 向网络管理员申请使用代理服务的理由和使用范围,获得同意
  2. 仔细检查代理服务访问的访问,确保符合国家网络相关法律规范

国家对海外网络的访问有严格的法律要求,请务必做到 100% 合规

代理服务搭建

由于合规性控制问题,市场上没有可供购买的代理服务。因此,需要自行搭建代理服务。

具体的步骤如下:

  1. 购买一个具备正常访问互联网的云服务器(简称为:“公有云服务器”) 最低配置(例如:1核1G内存,带宽按量模式 100M)
  2. 使用 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
  3. 运行下面的命令,下载代理服务器软件 tinyproxy 到本地 git clone --depth=1 https://github.com/Websoft9/docker-tinyproxy
  4. 根据所需,修改软件目录下的 .env_all 文件下如下两个参数 BINDIP=35.129.77.19 # 白名单IP APP_PORT=9094 # 代理端口 BINDIP 代表你的私有云服务器的公网IP地址(白名单),设置在此处即表明它可以使用代理服务,未设置的就无法使用代理服务
  5. 登录云服务器控制台,放通上面 APP_PORT 对于的端口,例如:TCP:9094
  6. 本地浏览器访问 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

全局代理

  1. 登录私有云服务器,运行下面的命令创建一个代理配置文件 touch /etc/profile.d/proxy.sh
  2. 将下面的代码代码复制到 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"
  3. 保存后,重启开启 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原创发布,转载请注明出处。

原创声明,本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

登录 后参与评论
0 条评论

推荐阅读

  • 企业如何搭建内部知识库Wiki?为什么需要知识库?

    企业组织架构成长起来之后,经常有大量的业务、内部信息碎片化的散落在各个部门,如果你的员工每次都需要花费一定时间才能找到自己的信息,就把许多宝贵的时间浪费在内部流程&信息的梳理上,而没有办法把时间用来做更重要的有产出的工作。但是许多企业不知道,如何去搭建内部知识库、如何管理,今天我们就来分享一下如何创建一个内部的wiki - 知识库。

    腾讯云HiFlow场景连接器
    腾讯云HiFlow场景连接器
  • 小程序容器技术,加速推动工业互联网平台建设

    “工业互联网”的概念,由美国通用电气公司在2012年提出,其初衷是为了制定一系列通用的标准,以打破技术之间的壁垒,激活传统工业过程,促进物理世界和数字世界的融合,实现各设备厂商的信息集成和共享。

    二山山记
  • 【玩转腾讯云】Windows UEFI+GPT改造BIOS+MBR

    UEFI+GPT不是腾讯云支持的BIOS+MBR,上云会报No bootable device。上云前需要在本地改造。

    shawyang
    云服务器Windows ServerWindows
  • 到底先修改MySQL还是先修改Redis?

    在数据读多写少的情况下作为缓存来使用,恐怕是Redis使用最普遍的场景了。当使用Redis作为缓存的时候,一般流程是这样的。

    蝉沐风
  • 如何设置语雀收藏更新推送、语雀收藏更新提醒?

    「语雀」作为一个「知识创作工具」,孵化自 蚂蚁金服 ,是「体验科技」理念下的一款创新产品,已是 5万+ 阿里员工进行文档编写、知识沉淀的标配。现在已经有很多企业正在使用,帮助企业沉淀、整理内部信息和知识。员工在遇到一些实际问题的时候,比如如何连接公司打印机,或者咨询公司报销的途径和范围,就可以直接前往语雀查询具体解决方法。 但实际在工作中,有一些知识库的内容会进行“默默”更改,但员工仅凭自己记忆的话,就会出现“咦,这个流程怎么改了?”、“这里什么时候更新了?”的情况。 这个问题对于一些日常工作可能影响还好,但对于有一些比如客服、销售、社群运营这类有比较严格SOP操作要求的岗位来说,如果解答错误或者服务标准不规范,甚至会导致品牌舆情危机。

    腾讯云HiFlow场景连接器
    腾讯云HiFlow场景连接器
  • 【玩转 Cloud?Studio】有奖调研征文,千元豪礼等你拿

    腾讯云开发者社区联合腾讯云 Cloud Studio 团队发起【玩转 Cloud Studio】有奖调研征文活动,想听听你玩转的独门秘籍,更有机械键盘、鹅厂公仔、CODING 定制公仔等你来拿!

    腾讯云开发者社区
    腾讯云开发者社区
  • 【玩转 Cloud Studio】在线写代码体验

    作为一个程序员,现在配置电脑,怎么也得内存16G,运行一个IDEA的软件老说才能刚好够用,平常还需要启动一些其余的中间件,所以内存大点肯定是最好的,但是IDEA的运行速度还取决于CPU的运行速度,最新的12代英特尔酷睿

    是小张啊喂
  • 【玩转 Cloud Studio】 Cloud Studio的入门教程

    Cloud Studio是腾讯云发布的云端开发者工具,支持开发者利用Web IDE(集成开发环境),实现远程协作开发和应用部署。

    代码的路
    Cloud StudioPythonJavaSQL
  • 腾讯云发布云端开发者工具Cloud Studio 帮助开发者实现一站式开发

    8月15日,腾讯云发布一站式云端开发工具Cloud Studio ,支持开发者利用Web IDE(集成开发环境),实现远程协作开发和应用部署。

    Cloud Studio
  • 分布式服务接口请求顺序性保证

    服务A调用服务B,先插入再删除。俩请求过去了,落在不同机器上,可能插入请求因为某些原因执行慢一些,导致删除请求先执行了,此时因为没数据所以啥效果也没有;结果这个时候插入请求过来了,好,数据插入进去。

    JavaEdge

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com