阿里云***(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. shell脚本,awk常见初始化变量的题目。

    文件 内容如下 clone=line1gb=line1gi=line1lib=line1gb=line2gi=line2lib=line2clone=line3gb=line3gi=line3lib= ...

  2. 经典的7种排序算法 原理C++实现

    排序是编程过程中经常遇到的操作,它在很大程度上影响了程序的执行效率. 7种常见的排序算法大致可以分为两类:第一类是低级排序算法,有选择排序.冒泡排序.插入排序:第二类是高级排序算法,有堆排序.排序树. ...

  3. 【动态规划】bzoj1575: [Usaco2009 Jan]气象牛Baric

    预处理普通动态规划:庆祝1A三连 Description 为了研究农场的气候,Betsy帮助农夫John做了N(1 <= N <= 100)次气压测量并按顺序记录了结果M_1...M_N( ...

  4. PHP 把字符转换为 HTML 实体 - htmlentities() 函数

    定义和用法 htmlentities() 函数把字符转换为 HTML 实体. 语法 htmlentities(string,quotestyle,character-set) 参数 描述 string ...

  5. CSS 隐藏 visibility 属性

    定义和用法 visibility 属性规定元素是否可见. 提示:即使不可见的元素也会占据页面上的空间.请使用 "display" 属性来创建不占据页面空间的不可见元素. 说明 这个 ...

  6. 气泡小角的css实现

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr"> ...

  7. LDAP学习小结【仅原理和基础篇】

    此篇文章花费了好几个晚上,大部分是软件翻译的英文文档,加上自己的理解所写,希望学习者能尊重每个人的努力. 我有句话想送给每个看我文章的人: 慢就是快,快就是慢!!! 另外更希望更多人能从认真从原理学习 ...

  8. Hive 执行sql命令报错

    Failed with exception java.io.IOException:java.lang.IllegalArgumentException: java.net.URISyntaxExce ...

  9. luogu2604 [ZJOI2010]网络扩容

    先做一遍普通的dinic 然后再更改源点为超级源,超级源向原源加一条capacity=k && cost=0的边,再加上有费用的边跑最小费用最大流 #include <iostr ...

  10. JSON.parse与eval区别

    两种方式都可以解析json字符串,不过有时候JSON.parse解析会失败,失败原因有多种,下面会指出一种. JSON.parse()解析json格式的数据,会对要解析的字符串进行格式检查,如果格式不 ...