go - 为什么 Simple dialer(socks) 总是返回 EOF?

标签 go

在任何地址中获取此错误。

ma​​in.go

package main

import (
    "fmt"
    "os"
)

func dialSocks(socks string) (Dial proxy.Dialer, err error) {
    Dial, err = proxy.SOCKS5("tcp", socks, nil, proxy.Direct)
    return
}

func checkError(err error) {
    if err != nil {
        fmt.Fprintf(os.Stderr, "Fatal error: %s", err.Error())
        os.Exit(1)
    }
}

func main() {
    dialSocksProxy, err := dialSocks("202.79.50.167:44926")
    checkError(err)

    dialer, err := dialSocksProxy.Dial("tcp", "smtp.gmail.com:587")
    checkError(err)
}

输出:

fatal error : socks 连接 tcp 202.79.50.167:44926->smtp.gmail.com:587:EOF

最佳答案

这是因为您尝试使用的 socks5 代理无法正常工作。

$> curl --socks5 202.79.50.167:44926 google.com
curl: (7) Unable to receive initial SOCKS5 response.

关于go - 为什么 Simple dialer(socks) 总是返回 EOF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55563812/

相关文章:

go - 来自外部包的 AWS Lambda golang 日志记录

go - 为什么 GoLang 方法给出编译错误?

go - 如何在 golang 中相互转换相同的签名类型?

go - 在 golang 中使用派生 map 类型索引的正确方法

go - 为什么 RethinkDB 很慢?

json - 如何在 json 中显示结构的映射键和值

go - 使用 golang 库 unioffice 填写 docx 中的表单字段

arrays - 我如何在 golang 中定义这种类型的数据

linux - 如何在 GO 中使用 "os/exec"包将文件从一个目录复制到另一个目录

go - 导入对象是预期的 Golang 1.4.2 中的错误