阿里云***(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. Avada v5.0.6 最新版本破解教程如下:

    Avada v5.0.6 最新版本破解教程如下: .找到\themes\Avada\includes\avada-envato-api.php文件,注释掉如下两行代码 $response_code = ...

  2. Spring持久化之MyBatis

    MyBatis是一个优秀的轻量级持久化框架,本文主要介绍MyBatis与Spring集成的配置与用法. 1. Spring MyBatis配置 1.1 添加Maven依赖 在pom.xml文件里添加m ...

  3. centos7 samba配置完成后不管怎么登陆都会显示密码错误的解决方案

    添加系统用户 useradd samba 添加samba用户 smbpasswd -a samba 激活samba用户 smbpasswd -e samba 1.win+r运行secpol.msc打开 ...

  4. [POJ] 2411 Mondriaan's Dream

    Mondriaan's Dream Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 18903 Accepted: 10779 D ...

  5. python插件,pycharm基本用法,markdown文本编写,jupyter notebook的基本操作汇总

    5.14自我总结 一.python插件插件相关技巧汇总 安装在cmd上运行 #比如安装 安装:wxpy模块(支持 Python 3.4-3.+ 以及 2.7 版本):pip3 install wxpy ...

  6. 一、Numpy库与多维数组

    # Author:Zhang Yuan import numpy as np '''重点摘录: 轴的索引axis=i可以理解成是根据[]层数来判断的,0表示[],1表示[[]]... Numpy广播的 ...

  7. web开发框架之DRF

    RESTful架构解释: # Representational State Transfer 表现层状态转化 到底什么是RESTFul架构: 如果一个架构符合REST原则,就称它为RESTful架构. ...

  8. LCD驱动分析(一)字符设备驱动框架分析

    参考:S3C2440 LCD驱动(FrameBuffer)实例开发<一>   S3C2440 LCD驱动(FrameBuffer)实例开发<二> LCD驱动也是字符设备驱动,也 ...

  9. 【实验吧】Once More&&【笔记】 PHP 函数漏洞总结

    <?php if (isset ($_GET['password'])) { if (ereg ("^[a-zA-Z0-9]+$", $_GET['password']) = ...

  10. LeetCode(125) Valid Palindrome

    题目 Given a string, determine if it is a palindrome, considering only alphanumeric characters and ign ...