All Projects → txthinking → Socks5

txthinking / Socks5

Licence: mit
SOCKS Protocol Version 5 Library in Go. Full TCP/UDP and IPv4/IPv6 support

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Socks5

Socks5
A full-fledged high-performance socks5 proxy server written in C#. Plugin support included.
Stars: ✭ 286 (-10.9%)
Mutual labels:  proxy, socks5, socks
Tor Socks Proxy
🐳 Tiny Docker(🤏 10MB) image as 🧅 Tor SOCKS5 proxy 🛡
Stars: ✭ 218 (-32.09%)
Mutual labels:  proxy, socks5, socks
Daze
Daze is a tool to help you link to the Internet.
Stars: ✭ 580 (+80.69%)
Mutual labels:  proxy, socks5, socks
Jsocksproxy
SOCKS proxy written in Java
Stars: ✭ 19 (-94.08%)
Mutual labels:  proxy, socks5, socks
3proxy
3proxy - tiny free proxy server
Stars: ✭ 2,263 (+604.98%)
Mutual labels:  proxy, socks5, socks
Reflow
Content-routable socks5 proxy switcher for your entire LAN.
Stars: ✭ 170 (-47.04%)
Mutual labels:  proxy, socks5, socks
Docker Dante Telegram
dante config builder for Telegram SOCKS-proxy & Dockerfile for building image with such proxy
Stars: ✭ 16 (-95.02%)
Mutual labels:  proxy, socks5, socks
V2ray Core
A platform for building proxies to bypass network restrictions.
Stars: ✭ 38,782 (+11981.62%)
Mutual labels:  proxy, socks5, socks
Flynet
A powerful TCP/UDP tool, which support socks5 proxy by tcp and udp, http proxy and NAT traversal. This tool can help you bypass gfw easily
Stars: ✭ 124 (-61.37%)
Mutual labels:  proxy, socks5, socks
Psiphon
A multi-functional version of a popular network circumvention tool
Stars: ✭ 169 (-47.35%)
Mutual labels:  proxy, socks5, socks
Brook
Brook is a cross-platform strong encryption and not detectable proxy. Zero-Configuration. Brook 是一个跨平台的强加密无特征的代理软件. 零配置.
Stars: ✭ 12,694 (+3854.52%)
Mutual labels:  proxy, socks5, socks
Chameleon
Customizable honeypots for monitoring network traffic, bots activities and username\password credentials (DNS, HTTP Proxy, HTTP, HTTPS, SSH, POP3, IMAP, STMP, RDP, VNC, SMB, SOCKS5, Redis, TELNET, Postgres and MySQL)
Stars: ✭ 230 (-28.35%)
Mutual labels:  proxy, socks5
Lightsocks Python
⚡️一个轻巧的网络混淆代理🌏
Stars: ✭ 235 (-26.79%)
Mutual labels:  proxy, socks
Mubeng
An incredibly fast proxy checker & IP rotator with ease.
Stars: ✭ 234 (-27.1%)
Mutual labels:  proxy, socks5
Proxybroker
Proxy [Finder | Checker | Server]. HTTP(S) & SOCKS 🎭
Stars: ✭ 2,767 (+761.99%)
Mutual labels:  proxy, socks
sx
🖖 Fast, modern, easy-to-use network scanner
Stars: ✭ 1,267 (+294.7%)
Mutual labels:  socks, socks5
Nps
一款轻量级、高性能、功能强大的内网穿透代理服务器。支持tcp、udp、socks5、http等几乎所有流量转发,可用来访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析、内网socks5代理等等……,并带有功能强大的web管理端。a lightweight, high-performance, powerful intranet penetration proxy server, with a powerful web management terminal.
Stars: ✭ 19,537 (+5986.29%)
Mutual labels:  socks5, socks
Prox5
🧮 SOCKS5/4/4a 🌾 validating proxy pool and upstream SOCKS5 server for 🤽 LOLXDsoRANDum connections 🎋
Stars: ✭ 39 (-87.85%)
Mutual labels:  socks, socks5
microsocks11
A cross-platform SOCKS5 library and server based on the microsocks project.
Stars: ✭ 22 (-93.15%)
Mutual labels:  socks, socks5
nimSocks
A filtering SOCKS proxy server and client library written in nim.
Stars: ✭ 51 (-84.11%)
Mutual labels:  socks, socks5

socks5

中文

Go Report Card GoDoc Donate Slack

SOCKS Protocol Version 5 Library.

Full TCP/UDP and IPv4/IPv6 support. Goals: KISS, less is more, small API, code is like the original protocol.

Install

$ go get github.com/txthinking/socks5

Struct is like concept in protocol

  • Negotiation:
    • type NegotiationRequest struct
      • func NewNegotiationRequest(methods []byte), in client
      • func (r *NegotiationRequest) WriteTo(w io.Writer), client writes to server
      • func NewNegotiationRequestFrom(r io.Reader), server reads from client
    • type NegotiationReply struct
      • func NewNegotiationReply(method byte), in server
      • func (r *NegotiationReply) WriteTo(w io.Writer), server writes to client
      • func NewNegotiationReplyFrom(r io.Reader), client reads from server
  • User and password negotiation:
    • type UserPassNegotiationRequest struct
      • func NewUserPassNegotiationRequest(username []byte, password []byte), in client
      • func (r *UserPassNegotiationRequest) WriteTo(w io.Writer), client writes to server
      • func NewUserPassNegotiationRequestFrom(r io.Reader), server reads from client
    • type UserPassNegotiationReply struct
      • func NewUserPassNegotiationReply(status byte), in server
      • func (r *UserPassNegotiationReply) WriteTo(w io.Writer), server writes to client
      • func NewUserPassNegotiationReplyFrom(r io.Reader), client reads from server
  • Request:
    • type Request struct
      • func NewRequest(cmd byte, atyp byte, dstaddr []byte, dstport []byte), in client
      • func (r *Request) WriteTo(w io.Writer), client writes to server
      • func NewRequestFrom(r io.Reader), server reads from client
      • After server gets the client's *Request, processes...
  • Reply:
    • type Reply struct
      • func NewReply(rep byte, atyp byte, bndaddr []byte, bndport []byte), in server
      • func (r *Reply) WriteTo(w io.Writer), server writes to client
      • func NewReplyFrom(r io.Reader), client reads from server
  • Datagram:
    • type Datagram struct
      • func NewDatagram(atyp byte, dstaddr []byte, dstport []byte, data []byte)
      • func NewDatagramFromBytes(bb []byte)
      • func (d *Datagram) Bytes()

Advanced API

Server. You can process client's request by yourself after reading Request from client. Also, here is a advanced interfaces.

  • type Server struct
  • type Handler interface
    • TCPHandle(*Server, *net.TCPConn, *Request) error
    • UDPHandle(*Server, *net.UDPAddr, *Datagram) error

Example:

s, _ := NewClassicServer(addr, ip, username, password, tcpTimeout, udpTimeout)
s.ListenAndServe(Handler)
  • If you want a standard socks5 server, pass in nil
  • If you want to handle data by yourself, pass in a custom Handler

Client. Here is a client support both TCP and UDP and return net.Conn.

  • type Client struct

Example:

c, _ := socks5.NewClient(server, username, password, tcpTimeout, udpTimeout)
conn, _ := c.Dial(network, addr)

Users:

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].