1 Star 0 Fork 1

快码/tun2socks

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
socks4.go 886 Bytes
一键复制 编辑 原始数据 按行查看 历史
尖斌卡 提交于 2025-02-25 21:46 +08:00 . 换gitee,方便拉代码
package proxy
import (
"context"
"fmt"
"net"
"gitee.com/kuai-ma/tun2socks/v2/dialer"
M "gitee.com/kuai-ma/tun2socks/v2/metadata"
"gitee.com/kuai-ma/tun2socks/v2/proxy/proto"
"gitee.com/kuai-ma/tun2socks/v2/transport/socks4"
)
var _ Proxy = (*Socks4)(nil)
type Socks4 struct {
*Base
userID string
}
func NewSocks4(addr, userID string) (*Socks4, error) {
return &Socks4{
Base: &Base{
addr: addr,
proto: proto.Socks4,
},
userID: userID,
}, nil
}
func (ss *Socks4) DialContext(ctx context.Context, metadata *M.Metadata) (c net.Conn, err error) {
c, err = dialer.DialContext(ctx, "tcp", ss.Addr())
if err != nil {
return nil, fmt.Errorf("connect to %s: %w", ss.Addr(), err)
}
setKeepAlive(c)
defer func(c net.Conn) {
safeConnClose(c, err)
}(c)
err = socks4.ClientHandshake(c, metadata.DestinationAddress(), socks4.CmdConnect, ss.userID)
return
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/kuai-ma/tun2socks.git
git@gitee.com:kuai-ma/tun2socks.git
kuai-ma
tun2socks
tun2socks
v2.6.0

搜索帮助