分享
  1. 首页
  2. 文章

shadowsocks-go 轉發 golang

Dende · · 2414 次点击 · · 开始浏览
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

源碼(可編譯直接用)

https://github.com/yuanrenguang715/shadowsocks-forward

不說廢話 上代碼

這裏用到只是轉發 ,如需要轉換成代理,需要監聽本地tcp進行代理,

這裏用到只是轉發 ,如需要轉換成代理,需要監聽本地tcp進行代理,
package main
import (
 "io"
 "log"
 "net"
 "net/http"
 "net/url"
 "strconv"
 "time"
 ss "github.com/shadowsocks/shadowsocks-go/shadowsocks"
)
var config struct {
 server string
 port int
 password string
 method string
}
func httpSocks5(uri string) *http.Client {
 parsedURL, err := url.Parse(uri)
 if err != nil {
 log.Fatal(err)
 }
 host, _, err := net.SplitHostPort(parsedURL.Host)
 if err != nil {
 if parsedURL.Scheme == "https" {
 host = net.JoinHostPort(parsedURL.Host, "443")
 } else {
 host = net.JoinHostPort(parsedURL.Host, "80")
 }
 } else {
 host = parsedURL.Host
 }
 rawAddr, err := ss.RawAddr(host)
 if err != nil {
 log.Fatal(err)
 }
 serverAddr := net.JoinHostPort(config.server, strconv.Itoa(config.port))
 cipher, err := ss.NewCipher(config.method, config.password)
 if err != nil {
 log.Fatal(err)
 }
 dailFunc := func(network, addr string) (net.Conn, error) {
 return ss.DialWithRawAddr(rawAddr, serverAddr, cipher.Copy())
 }
 tr := &http.Transport{
 MaxIdleConns: 100,
 IdleConnTimeout: 90 * time.Second,
 TLSHandshakeTimeout: 10 * time.Second,
 ExpectContinueTimeout: 1 * time.Second,
 }
 tr.Dial = dailFunc
 return &http.Client{Transport: tr}
}
func main() {
 config.method = "aes-256-cfb" // method
 config.password = "服務端密碼"
 config.port = 8989 // your port
 config.server = "服務端ip"
 var uri string = "https://www.google.com.hk/?gws_rd=ssl" //轉發的請求
 client := httpSocks5(uri)
 if err != nil {
 log.Fatal(err)
 }
 resp := client.Get(uri)
 defer resp.Body.Close()
 body, err := ioutil.ReadAll(resp.Body)
 if err != nil {
 log.Fatal(err)
 }
 fmt.Println(string(body))
}

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

关注微信
2414 次点击
暂无回复
添加一条新回复 (您需要 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传

用户登录

没有账号?注册
(追記) (追記ここまで)

今日阅读排行

    加载中
(追記) (追記ここまで)

一周阅读排行

    加载中

关注我

  • 扫码关注领全套学习资料 关注微信公众号
  • 加入 QQ 群:
    • 192706294(已满)
    • 731990104(已满)
    • 798786647(已满)
    • 729884609(已满)
    • 977810755(已满)
    • 815126783(已满)
    • 812540095(已满)
    • 1006366459(已满)
    • 692541889

  • 关注微信公众号
  • 加入微信群:liuxiaoyan-s,备注入群
  • 也欢迎加入知识星球 Go粉丝们(免费)

给该专栏投稿 写篇新文章

每篇文章有总共有 5 次投稿机会

收入到我管理的专栏 新建专栏