go实现简单的反向代理工具

最近Jetbrians系列IDE更新至2017.3版本,激活检测机制也变成了动态封禁域名,导致大部分域名激活被屏蔽了,所以找了下资料,根据ilanyu的代码,改了下地址,实现了本地反向代理激活服务器。

具体Go代码如下test.go:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

package main

import (

"flag"

"log"

"net/http"

"net/http/httputil"

"net/url"

)

type handle struct {

reverseProxy string

}

func (this *handle) ServeHTTP(w http.ResponseWriter, r *http.Request) {

remote, err := url.Parse(this.reverseProxy)

if err != nil {

log.Fatalln(err)

}

proxy := httputil.NewSingleHostReverseProxy(remote)

r.Host = remote.Host

proxy.ServeHTTP(w, r)

log.Println(r.RemoteAddr + " " + r.Method + " " + r.URL.String() + " " + r.Proto + " " + r.UserAgent())

}

func main() {

bind := flag.String("l", "0.0.0.0:8888", "listen on ip:port")

remote := flag.String("r", "http://idea.imsxm.com:80", "reverse proxy addr")

flag.Parse()

log.Printf("Listening on %s, forwarding to %s", *bind, *remote)

h := &handle{reverseProxy: *remote}

err := http.ListenAndServe(*bind, h)

if err != nil {

log.Fatalln("ListenAndServe: ", err)

}

}

使用方法: mac系统,直接 go run test.go

1

2

3

4

5

6

7

直接打开或者命令行加参数

可选参数:

-l string

listen on ip:port (default "0.0.0.0:8888")

-r string

reverse proxy addr (default "http://idea.imsxm.com:80")

暂时只编译了windows X64平台,并且UPX打包,激活时输入http://localhost:8888就行。
下载地址:点我下载V1.0

也可使用nginx/apache等web服务器 反向代理,nginx配置如下,将location段放在server段中

1

2

3

4

5

6

7

location /rpc {

proxy_pass   http://idea.imsxm.com/rpc;

proxy_redirect             off;

proxy_set_header           Host $host;

proxy_set_header           X-Real-IP $remote_addr;

proxy_set_header           X-Forwarded-For $proxy_add_x_forwarded_for;

}

转载:http://www.imsxm.com/2017/12/go-active-proxy-tool.html

原文地址:https://www.cnblogs.com/shengulong/p/8312968.html

时间: 2024-11-03 13:53:59

go实现简单的反向代理工具的相关文章

ngrok 本地反向代理工具

ngrok 本地反向代理工具 昨天在慕课网上看到一篇视频教程,里面用到了本地反向代理,其实我们会经常用到的,例如我们在内网上测试,然后还没发布到外网,但是要在外网上查看数据,测试么.那么我们会想到用反向代理,之前比较知名有花生壳,现在向大家推荐ngrok. 官网上给出的解释是:ngrok是一个反向代理,可以从公网建立一个安全隧道到本地的web服务.ngrok 抓取和分析所有的经过数据,用于之后的检查和重放. 1.下载安装 目前ngrok官网一直打不开,大家可以翻墙,也可以在csdn资源下载,一会

IntelliJ IDEA 2017 反向代理工具新方法激活

来源:http://blog.lanyus.com/archives/317.html 反向代理工具, 可用于激活JRebel  (win64) 1.点击进入 https://github.com/ilanyu/ReverseProxy/releases/tag/v1.0 下载ReverseProxy_windows_amd64.exe 2.双击运行ReverseProxy_windows_amd64.exe 3.打开idea,在License server http://127.0.0.1:8

nginx简单实现反向代理和负载均衡

一.环境 一台nginx做反向代理:192.168.88.142 两台tomcat机器做web:192.168.88.143  192.168.88.144 安装过程略,下一篇详细说明 二.nginx配置文件 nginx:192.168.88.142 user  www www;                     ##用户和组 worker_processes  1;               ##和cpu核数有关 events { use epoll;                

配置简单的反向代理

注意点: 1.location如果不是直接写/,而是/xxx,那么访问的时候就需要输入你的域名/xxx.还有一个问题就是你的静态资源路径需要重写,或者干脆拿nginx当静态资源服务器.一般情况下,为了简单,如果需要代理多个域名或者说网站,可以建多个server,给多个域名,都是80端口 2.proxy_pass的地址http://xxxx.xxx.xxx.xxx:xxx/;最后的“/”要带上 3.确保端口开放了并且未被占用 4.windows下重启nginx可以用nginx.exe -s rel

Nodejs实现简单的反向代理

var http = require('http'), httpProxy = require('http-proxy'); // 新建一个代理 Proxy Server 对象 var proxy = httpProxy.createProxyServer({}); // 捕获异常 proxy.on('error', function (err, req, res) { res.writeHead(500, { 'Content-Type': 'text/plain' }); res.end('

servlet实现简单的反向代理

项目基于Spring 须要的依赖为: <dependency> <groupId>org.mitre.dsmiley.httpproxy</groupId> <artifactId>smiley-http-proxy-servlet</artifactId> <version>1.7</version> </dependency> 只需要添加一个java文件即可,原理有待继续研究 package *.*.*.*

免费反向代理工具, 让您的电脑成为服务器

点击以下地址, 前往  5aVPN http://www.5avpn.com?ch=u10681  

IIS简单的反向代理设置

下载IIS扩展 1.URL Rewrite 地址: https://www.iis.net/downloads/microsoft/url-rewrite 2.Application Request Routing 地址:https://www.iis.net/downloads/microsoft/application-request-routing 操作 原文 https://blogs.msdn.microsoft.com/friis/2016/08/25/setup-iis-with-

nginx简单反向代理和负载均衡(ubuntu)

nginx简单反向代理与负载均衡 环境:三台ubuntu 12.04.5 虚拟机    均装有nginx 1.1.19 以下u1(192.168.240.129) ,u2(192.168.240.130),u3(192.168.240.131)代表三台虚拟机 简单的反向代理配置:(u1反向到u2) u1的配置: server { listen 80 default_server; server_name  a.jh.net; index index.html index.php root /ho