mirror of
https://github.com/p4gefau1t/trojan-go.git
synced 2024-04-21 12:21:34 +00:00
@@ -0,0 +1,19 @@
|
||||
run-type: client
|
||||
local-addr: 127.0.0.1
|
||||
local-port: 1080
|
||||
remote-addr: your_server
|
||||
remote-port: 443
|
||||
password:
|
||||
- your_password
|
||||
ssl:
|
||||
sni: your-domain-name.com
|
||||
mux:
|
||||
enabled: true
|
||||
router:
|
||||
enabled: true
|
||||
bypass: ['geoip:cn', 'geoip:private', 'geosite:cn', 'geosite:geolocation-cn']
|
||||
block: ['geosite:category-ads']
|
||||
proxy: ['geosite:geolocation-!cn']
|
||||
default_policy: proxy
|
||||
geoip: /usr/share/trojan-go/geoip.dat
|
||||
geosite: /usr/share/trojan-go/geosite.dat
|
||||
@@ -0,0 +1,17 @@
|
||||
run-type: server
|
||||
local-addr: 0.0.0.0
|
||||
local-port: 443
|
||||
remote-addr: 127.0.0.1
|
||||
remote-port: 80
|
||||
password:
|
||||
- your_password
|
||||
ssl:
|
||||
cert: your_cert.crt
|
||||
key: your_key.key
|
||||
sni: your-domain-name.com
|
||||
router:
|
||||
enabled: true
|
||||
block:
|
||||
- 'geoip:private'
|
||||
geoip: /usr/share/trojan-go/geoip.dat
|
||||
geosite: /usr/share/trojan-go/geosite.dat
|
||||
+5
-1
@@ -5,6 +5,7 @@ package nat
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/p4gefau1t/trojan-go/common"
|
||||
"github.com/p4gefau1t/trojan-go/config"
|
||||
"github.com/p4gefau1t/trojan-go/proxy"
|
||||
"github.com/p4gefau1t/trojan-go/proxy/client"
|
||||
@@ -17,9 +18,12 @@ const Name = "NAT"
|
||||
func init() {
|
||||
proxy.RegisterProxyCreator(Name, func(ctx context.Context) (*proxy.Proxy, error) {
|
||||
cfg := config.FromContext(ctx, Name).(*client.Config)
|
||||
if cfg.Router.Enabled {
|
||||
return nil, common.NewError("router is not allowed in nat mode")
|
||||
}
|
||||
ctx, cancel := context.WithCancel(ctx)
|
||||
serverStack := []string{tproxy.Name}
|
||||
clientStack := client.GenerateClientTree(cfg.TransportPlugin.Enabled, cfg.Mux.Enabled, cfg.Websocket.Enabled, cfg.Shadowsocks.Enabled, cfg.Router.Enabled)
|
||||
clientStack := client.GenerateClientTree(cfg.TransportPlugin.Enabled, cfg.Mux.Enabled, cfg.Websocket.Enabled, cfg.Shadowsocks.Enabled, false)
|
||||
c, err := proxy.CreateClientStack(ctx, clientStack)
|
||||
if err != nil {
|
||||
cancel()
|
||||
|
||||
Reference in New Issue
Block a user