socks5 搭建代理服务

简介: socks5 搭建代理服务

1.项目地址


2.安装go环境

3.go换源

go env -w GO111MODULE=auto
go env -w GOPROXY=https://goproxy.cn,direct

4.安装依赖、socks5包

go get -u github.com/oov/socks5

5.运行以下代码

go run main.go

package main
import (
  "github.com/oov/socks5"
  "log"
)
func main() {
  srv := socks5.New()
  srv.AuthUsernamePasswordCallback = func(c *socks5.Conn, username, password []byte) error {
    /*账号密码验证*/
    user := string(username)
    passwd := string(password)
    if !((user == "guest" && passwd == "test1234") || (user == "root" && passwd == "test1234")) {
      return socks5.ErrAuthenticationFailed
    }
    log.Printf("Welcome %v!", user)
    c.Data = user
    return nil
  }
  /*代理黑名单*/
  srv.HandleConnectFunc(func(c *socks5.Conn, host string) (newHost string, err error) {
    if host == "example.com:80" {
      return host, socks5.ErrConnectionNotAllowedByRuleset
    }
    if user, ok := c.Data.(string); ok {
      log.Printf("%v connecting to %v", user, host)
    }
    return host, nil
  })
  srv.HandleCloseFunc(func(c *socks5.Conn) {
    if user, ok := c.Data.(string); ok {
      log.Printf("Goodbye %v!", user)
    }
  })
  /*监听8070端口*/
  srv.ListenAndServe(":8070")
}

6.测试代理

7.编译成独立的可执行程序

go build main.go

 

目录
相关文章
|
网络协议 Android开发 数据安全/隐私保护
Android手机上使用Socks5全局代理-教程+软件
Android手机上使用Socks5全局代理-教程+软件
13031 2
|
Linux 数据库 数据安全/隐私保护
如何使用 Docker 安装宝塔面板
Docker 是一个高效、灵活、轻量级的容器化平台,可以在单个操作系统上实现多个容器化应用的隔离和运行。而宝塔面板是一款集成了 Web 服务器、数据库和运行环境的 Linux 服务器管理面板,其功能非常强大且易于使用。在本文中,我们将介绍使用 Docker 安装宝塔面板的优势和详细命令,让您轻松搭建自己的 Web 服务。
9427 3
|
监控 负载均衡 算法
基于docker的haproxy的反向代理
基于docker的haproxy的L7的反向代理
9579 0
|
弹性计算
阿里云服务器开放全部端口给所有IP使用教程
阿里云服务器端口全部开放教程,阿里云端口在安全组中设置,默认只开放22和3389端口,全部开放端口-1/-1,授权给所有IP地址0.0.0.0/0
10911 0
阿里云服务器开放全部端口给所有IP使用教程
|
10月前
|
弹性计算 运维 安全
阿里云轻量应用服务器是什么?看完你就知道了
阿里云轻量应用服务器是面向网站建设、开发测试等轻量场景的云服务器,按套餐售卖,内置多种应用镜像,支持一键部署,操作简单,适合个人开发者和中小企业使用。
1000 0
|
弹性计算 应用服务中间件 Linux
阿里云服务器开放端口完整图文教程
笔者近期开发完成的服务端程序部署在阿里云的ECS云服务器上面,一些应用程序配置文件需要设置监听的端口(如Tomcat的8080、443端口等),虽然通过CentOs 7系统的的「防火墙」开放了对应的端口号,任然无法访问端口号对应的应用程序,后面了解到原来还需要设置云服务器的「安全组规则」,开放相应的端口权限,服务端的接口才能真正开放。
4753 1
阿里云服务器开放端口完整图文教程
|
11月前
|
供应链 API
案例分享:API如何助力小型电商实现月销售额翻倍
"悦居生活"通过接入支付、库存、营销及物流API,优化运营流程,解决库存滞后、营销低效、物流体验差等问题,实现库存周转率提升152%、会员复购率增长128%、月销售额突破32万元。
|
12月前
|
IDE 开发工具 Python
魔搭notebook在web IDE下,使用jupyter notebook,python扩展包无法更新升级
魔搭notebook在web IDE下,使用jupyter notebook,python扩展包无法更新升级,不升级无法使用,安装python扩展包的时候一直停留在installing
323 4
|
11月前
|
存储 SQL 关系型数据库
MySQL 动态分区管理:自动化与优化实践
本文介绍了如何利用 MySQL 的存储过程与事件调度器实现动态分区管理,自动化应对数据增长,提升查询性能与数据管理效率,并详细解析了分区创建、冲突避免及实际应用中的关键注意事项。
461 0