日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

php小編柚子今天要為大家介紹的是使用Go語言實(shí)現(xiàn)的socks5代理。在網(wǎng)絡(luò)訪問過程中,我們經(jīng)常遇到需要隱藏真實(shí)IP地址或繞過網(wǎng)絡(luò)封鎖的情況。而使用socks5代理可以幫助我們輕松實(shí)現(xiàn)這些目標(biāo)。Go語言作為一門高效、簡(jiǎn)潔的編程語言,具有豐富的網(wǎng)絡(luò)庫和并發(fā)特性,非常適合用來開發(fā)網(wǎng)絡(luò)代理工具。接下來,我們將詳細(xì)介紹如何使用Go語言編寫一個(gè)簡(jiǎn)單而實(shí)用的socks5代理服務(wù)器。

問題內(nèi)容

我想知道是否可以偵聽本地端口,例如:1080ocks5,并且該端口上的所有連接都可以作為代理以使用外部主機(jī):portsocks5

func main() {
    l, err := net.Listen("tcp", "127.0.0.1:1080")
    if err != nil {
        fmt.Print(err)
    }
    defer l.Close()

    for {
        conn, err := l.Accept()
        if err != nil {
            fmt.Print(err)
        }

        go handle(conn)
    }
}

func handle(conn net.Conn) {
    defer conn.Close()

    dialect, err := proxy.SOCKS5("tcp", "externalhost:externalport", nil, proxy.Direct)

    newConn, err := dialect.Dial("tcp", "targethost:targetport")
    if err != nil {
        log.Printf("Connection error: %s", err.Error())
    }

    go func() {
        _, err = io.Copy(newConn, conn)
        if err != nil {
            log.Printf("Connection error: %s", err.Error())
        }
    }()

    _, err = io.Copy(conn, newConn)
    if err != nil {
        log.Printf("Connection error: %s", err.Error())
    }
}
func handle(conn net.Conn) {
    defer conn.Close()
}

登錄后復(fù)制

我需要獲取目標(biāo)地址并驗(yàn)證連接是否為socks5,然后使用外部ip執(zhí)行代理并將其傳遞到dialect.dial

解決方法

聽起來你想要這個(gè):

    一種使用 TCP 在特定端口偵聽本地計(jì)算機(jī)的工具
    您可以向該端口發(fā)出ocks5協(xié)議請(qǐng)求,它應(yīng)該將這些請(qǐng)求全部轉(zhuǎn)發(fā)到另一臺(tái)遠(yuǎn)程計(jì)算機(jī)上的其他socks5服務(wù)器。
    該socks5服務(wù)器負(fù)責(zé)與socks5協(xié)議請(qǐng)求中的目標(biāo)建立連接

在這種情況下,您只需要一個(gè)基本的 TCP 代理。您的工具不需要查看socks5請(qǐng)求的內(nèi)部,也不需要proxy.SOCKS5來連接到遠(yuǎn)程計(jì)算機(jī)。您只想將與本地端點(diǎn)的所有連接轉(zhuǎn)發(fā)到遠(yuǎn)程端點(diǎn)。

您當(dāng)前的代碼在很大程度上可以工作,例外情況是您應(yīng)該使用 net.Dial (而不是 dialect.Dial)連接到 "externalhost:externalport",并且不需要?jiǎng)?chuàng)建 proxy.SOCKS5 撥號(hào)器。

分享到:
標(biāo)簽:Go語言
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定