socks-over-https 项目使用教程
1. 项目的目录结构及介绍
socks-over-https/
├── config.json
├── main.go
├── README.md
├── LICENSE
└── ...
config.json
: 项目的配置文件,包含日志、设置和代理配置。main.go
: 项目的启动文件,负责初始化和启动服务。README.md
: 项目说明文档,包含项目的基本信息和使用指南。LICENSE
: 项目的许可证文件,本项目采用 MIT 许可证。
2. 项目的启动文件介绍
main.go
是项目的启动文件,主要负责以下功能:
- 读取配置文件
config.json
。 - 初始化日志和设置。
- 启动 SOCKS5 和 HTTP 代理服务。
以下是 main.go
的部分代码示例:
package main
import (
"encoding/json"
"fmt"
"os"
)
type Config struct {
Log map[string]interface{} `json:"log"`
Settings map[string]interface{} `json:"settings"`
Proxies []Proxy `json:"proxies"`
}
type Proxy struct {
Socks SocksConfig `json:"socks"`
Http HttpConfig `json:"http"`
}
type SocksConfig struct {
Address string `json:"address"`
Port int `json:"port"`
User string `json:"user"`
Pass string `json:"pass"`
}
type HttpConfig struct {
Address string `json:"address"`
Port int `json:"port"`
}
func main() {
configFile := "config.json"
file, err := os.Open(configFile)
if err != nil {
fmt.Println("Error opening config file:", err)
return
}
defer file.Close()
var config Config
decoder := json.NewDecoder(file)
err = decoder.Decode(&config)
if err != nil {
fmt.Println("Error decoding config file:", err)
return
}
// 初始化日志和设置
// 启动 SOCKS5 和 HTTP 代理服务
// ...
}
3. 项目的配置文件介绍
config.json
是项目的配置文件,其结构如下:
{
"log": {
"level": "info",
"output": "stdout"
},
"settings": {
"bind_address": "0.0.0.0",
"bind_port": 8080
},
"proxies": [
{
"socks": {
"address": "127.0.0.1",
"port": 10800,
"user": "",
"pass": ""
},
"http": {
"address": "127.0.0.1",
"port": 8081
}
}
]
}
log
: 日志配置,控制日志输出级别和输出位置。settings
: 服务器内部参数配置,如绑定地址和端口。proxies
: SOCKS5 和 HTTP 代理对配置,每个代理对包含 SOCKS5 和 HTTP 配置。
以上是 socks-over-https
项目的基本使用教程,希望对您有所帮助。