https://github.com/kallydev/trojanx
Trojan server framework.
https://github.com/kallydev/trojanx
proxy trojan trojan-go trojanx
Last synced: 5 months ago
JSON representation
Trojan server framework.
- Host: GitHub
- URL: https://github.com/kallydev/trojanx
- Owner: kallydev
- License: mit
- Created: 2022-03-02T11:54:53.000Z (almost 4 years ago)
- Default Branch: develop
- Last Pushed: 2022-03-02T12:07:05.000Z (almost 4 years ago)
- Last Synced: 2025-04-19T16:40:25.044Z (10 months ago)
- Topics: proxy, trojan, trojan-go, trojanx
- Language: Go
- Homepage:
- Size: 7.81 KB
- Stars: 7
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# TrojanX
Trojan server **framework**.
## Example
```go
package main
import (
"context"
"crypto/tls"
"github.com/kallydev/trojanx"
"github.com/sirupsen/logrus"
"net"
)
func main() {
srv := trojanx.New(context.Background(), &trojanx.Config{
Host: net.IPv4zero.String(),
Port: 443,
TLSConfig: &trojanx.TLSConfig{
MinVersion: tls.VersionTLS13,
MaxVersion: tls.VersionTLS13,
CertificateFiles: []trojanx.CertificateFileConfig{
{
PublicKeyFile: "/etc/letsencrypt/live/example.com/fullchain.pem",
PrivateKeyFile: "/etc/letsencrypt/live/example.com/privkey.pem",
},
},
},
ReverseProxyConfig: &trojanx.ReverseProxyConfig{
Scheme: "http",
Host: "127.0.0.1",
Port: 80,
},
})
srv.ConnectHandler = func(ctx context.Context) bool {
// TODO Allow or deny connection requests
return true
}
srv.AuthenticationHandler = func(ctx context.Context, hash string) bool {
switch hash {
// TODO Verify password
default:
return false
}
}
srv.ErrorHandler = func(ctx context.Context, err error) {
logrus.Errorln(err)
}
if err := srv.Run(); err != nil {
logrus.Fatalln(err)
}
}
```
## LICENSE
[MIT License](LICENSE)