阿里云***(FQ)实战

前言

​ 因为公司涉及国外业务,依赖于google的map服务,生产环境我们使用的是亚马逊服务器,所以访问google地图没问题,但是国内的开发、测试环境,使用的是阿里云,想访问谷歌地图,就歇菜了,因此有了下面的折腾。

​ 做之前我们先捋一捋思路,平时我的mac上都是时刻保持***的状态,但是到了服务版Linux,木有软件可用,需要采用shadowsocks+privoxy配合的方式。shadowsocks链接socket代理服务器,privoxy将socket代理转为http代理。

部署shadowsocks

A. 更新一遍源

# 以Centos为例, Ubuntu等其他系统相应的更改命令yum为apt-get即可
sudo yum update

B. 安装python-pip

# 因为后面安装的shadowsocks是基于Python的,所以需要先安装Python源
sudo yum install python-pip

C. 安装shadowsocks

# 基于Python安装shadowsocks,这里有一点需要说明,shadowsocks是不区分客户端、服务端的,都是一个包,只是用过不同的启动方式来区分是客户端还是服务端
sudo pip install shadowsocks

D. 配置shadowsocks

# shadowsocks客户端的启动方式有两种,第一种方式是指定配置文件启动的方式,第二种是将配置作为启动参数启动。这里我们选择第一种方式,更方便快捷。
sudo vi /etc/shadowsocks.json
# 写入下面的内容,汉字部分,自行替换,注释可以删掉
# 通常只需要`地址``端口``密码``加密方式`
{
    "server":"代理服务器ip", // 代理服务器的访问地址
    "server_port":代理服务器端口, // 代理服务器的访问端口
    "password":"代理服务器访问密码", // 代理服务器的访问密码
    "method":"aes-256-cfb", // 代理服务器访问密码加密方式,大部分默认的都是aes-256-cfb
    "local_address":"127.0.0.1", // 本地socket代理访问地址,这里是设置其他应用***的关键
    "local_port":1080, // 本地socket代理访问端口,这里是设置其他应用***的关键
    "timeout":600
}

E. 启动shadowsocks

# 该步骤,部分机器可能会出错,出错了不要懵逼,属于Python版本兼容的问题,根据错误信息百度自行解决即可
sudo sslocal -c /etc/shadowsocks.json -d start
# 如果没有解决,那么可以使用下面的命令启动,效果一样
nohup sslocal -c /etc/shadowsocks.json /dev/null 2>&1 &
# 想增加开启启动的童鞋,自行百度
> http://www.baidu.com

部署privoxy

前面讲到了,shadowsocks的本地代理只是开放了socket代理方式,对于服务器的使用HTTP方式请求的软件,无法直接使用,需要有一个软件来把http的代理需求转成socket的方式,让shadowsocks去代理,不管听没听懂,接下来如果你想让curl、wget等可以FQ,想让java程序中的http请求可以FQ,那么你需要安装一个privoxy

A. 安装privoxy

# 直接yum安装,Ubuntu等同理apt-get
sudo yum install privoxy

B. 配置privoxy

# 打开privoxy配置文件,更改配置项
sudo vi /etc/privoxy/config

打开后,privoxy的配置文件巨长,其中分章节,耐心往下翻按照步骤,找到对应的章节,进行更改

  • 4.1. listen-address 章节

在该章节下找配置:listen-address 127.0.0.1:8118(8118就是http代理端口),该配置应该位于4.1章节末尾处,如果在4.1章节中找不到该配置,或者该配置被注释了,那么就添加上或者解开注释,通常是默认开启的。

  • 5.2. forward-socks4, forward-socks4a, forward-socks5 and forward-socks5t章节

    在该章节下找配置:forward-socks5t / 127.0.0.1:9050 .注意最后面的.很重要,不要误删了),该配置默认是关闭的,首先要做的是解除#注释,然后修改9050端口为shadowsocks的本地代理端口1080

C. 启动privoxy

# Centos启动
sudo systemctl restart privoxy
# Ubuntu启动
sudo /etc/init.d/privoxy restart
# Centos下尝试上述的启动方式失败,没查到具体原因,改为如下的启动方式
sudo privoxy /etc/privoxy/config

系统代理设置

如果想让curl、wget的命令可以FQ,那么需要配置这一步,如果不需要,请直接略过

# 打开配置文件
sudo vi /etc/profile

# 文件末尾添加如下信息
export http_proxy="127.0.0.1:8118"
export https_proxy="127.0.0.1:8118"
export ftp_proxy="127.0.0.1:8118"

# 刷新配置文件
source /etc/profile

Java 程序代理设置

以spring-boot应用为例,直接上代码

添加配置

# application.yml中添加自定义配置
google:
  proxy:
    host: 127.0.0.1
    port: 8118

添加配置类,不添加yml中的配置的话,该配置类是不起作用的,具体百度“@ConditionalOnProperty”注解

/**
 * 创建googel的代理配置类,读取配置文件,然后设置系统变量
 */
@Slf4j
@Data
@Component
@ConfigurationProperties(prefix = "google.proxy")
@ConditionalOnProperty(prefix = "google.proxy", name = {"host", "port"})
public class GoogleProxyConfig {

    private String host;

    private String port;

    @PostConstruct
    public void init() {

        log.info("初始化google的代理服务");

        System.setProperty("http.proxyHost", host);
        System.setProperty("http.proxyPort", port);
        System.setProperty("https.proxyHost", host);
        System.setProperty("https.proxyPort", port);
    }
}

阿里云***(java应用)的更多相关文章

  1. 使用阿里云Java SDK 实现 DDNS

    本代码的实现前提: 1.拥有阿里云域名,且获取了Access Key 及 Access Secret 2.能获取外网IP的页面地址(注意:ip138.com的实际包含ip地址为http://2018. ...

  2. 从0开始搭建一个阿里云java部署环境

    一.购买服务器 https://www.aliyun.com/daily-act/ecs/activity_selection?spm=5176.8112568.738194.8.674c9ed53Y ...

  3. 阿里云Java镜像:基本配置和总体说明

    本文中的内容,来自阿里云镜像系统自带的说明.  下次不想用镜像了,感觉也没有节省多少工作量. 一.软件 1.nginx /usr/local/nginx 2.tomcat-7 /var/tomcat/ ...

  4. 阿里云SDK手册之java SDK

    进行阿里云sdk开发的前提是已经购买阿里云的相关服务才能调用阿里的相关接口进行开发.最近公司在做云管控的项目,于是进行下摘录总结. 一. 环境准备 阿里云针对不同的开发语言提供不同的sdk,由于项目用 ...

  5. 阿里云部署Java web项目初体验(转)

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文主要讲了如何在阿里云上安装JDK.Tomcat以及其配置过程.最后以一个实例来演示在 ...

  6. 阿里云上安装mysql步骤/ 阿里云ECS搭建Java+mysql+tomcat环境

    使用阿里云ECS挺长一段时间了.这两天碰巧朋友小白让我一步一步教他在ECS上搭建Java+mysql+tomcat环境,所以把在这里把步骤在这简单整理了一下,以便需要的人查阅. 我购买的阿里云服务器系 ...

  7. 阿里云部署Java web项目初体验(转)/linux 上配置jdk和安装tomcat

    摘要:本文主要讲了如何在阿里云上安装JDK.Tomcat以及其配置过程.最后以一个实例来演示在阿里云上部署Java web项目. 一.准备工作 购买了阿里云的云解析,和云服务器ecs. 2.下载put ...

  8. JAVA+PHP+阿里云组件纯手工实现POP、SMTP、IMAP开发邮件服务器(二)

    java开发邮件服务器的接收模块 用java建立socket服务端,监听端口25,实现SMTP协议.即可完成邮件服务器的接收模块. 这里要注意的是,SMTP协议其实可以分为两种.一种是你用手机.PC等 ...

  9. 【阿里云产品公测】开放搜索服务 opensearch java jdk 应用体验之 机器人聊天

    作者:阿里云用户啊里新人 需求:基本实现智能聊天! 最近在开发一款机器人,希望实现基本的聊天功能,词库是有的,但是如果是做完全匹配这个出来的效果很悲催,   比如词库:你好,回答是:哈哈,很好啊. 如 ...

  10. 【阿里云产品公测】消息队列服务MQS java SDK 机器人应用初体验

    [阿里云产品公测]消息队列服务MQS java SDK 机器人应用初体验 作者:阿里云用户啊里新人   初体验 之 测评环境 由于MQS支持外网访问,因此我在本地做了一些简单测试(可能有些业余),之后 ...

随机推荐

  1. 【计数】51nod1677 treecnt

    要将答案看做是小问题的贡献和 Description 给定一棵n个节点的树,从1到n标号.选择k个点,你需要选择一些边使得这k个点通过选择的边联通,目标是使得选择的边数最少. 现需要计算对于所有选择k ...

  2. 【DB_MySQL】 limit——取查询结果的子集

    语法:select * from student limit beginIndex,length; 这里结果集的下标同数组一样从0开始,beginIndex表示起始位置,length表示从beginI ...

  3. proto_ops和proto区别

    **proto_ops:**该结构体包含了某个特定的"protocol family"的一系列functions. 其包含的functions和struct proto很类似,但是 ...

  4. Python中threading的join和setDaemon的区别[带例子]

    python的进程和线程经常用到,之前一直不明白threading的join和setDaemon的区别和用法,今天特地研究了一下.multiprocessing中也有这两个方法,同样适用,这里以thr ...

  5. Python模块目录

    阅读目录 模块 模块语法 常用模块 collections模块 time模块 random模块 os模块 sys模块 序列化模块 shelve模块 pickle模块 json模块 configpars ...

  6. 七周成为数据分析师04_Excel

    Excel适用于敏捷.快速.需要立即响应的需求: 而 Python.BI 等适用于常规.频繁.可复用可工程化的需求 设计到 Excel 的内容主要需要进行实操练习,这里只做一个陈列,具体知识请参考: ...

  7. Android开发——Android的消息机制详解

    )子线程默认是没有Looper的,Handler创建前,必须手动创建,否则会报错.通过Looper.prepare()即可为当前线程创建一个Looper,并通过Looper.loop()来开启消息循环 ...

  8. VisionPro显示隐藏搜索区域

    假如我们需要显示两张图,一张显示CogPMAlignTool工具不带搜索区域的,一张显示CogPMAlignTool工具带搜索区域的图像 VisionPro显示隐藏搜索区域 VisionPro显示隐藏 ...

  9. 《C#高级编程》笔记系列第三弹

    我们在开发WinForm时,经常会看到partial关键字,比如,我们新建一个Windows Form时,后台代码自动添加如下: 1 public partial class Form1 : Form ...

  10. pytorch保存模型等相关参数,利用torch.save(),以及读取保存之后的文件

    本文分为两部分,第一部分讲如何保存模型参数,优化器参数等等,第二部分则讲如何读取. 假设网络为model = Net(), optimizer = optim.Adam(model.parameter ...